diff options
author | Arseny Kapoulkine <arseny.kapoulkine@gmail.com> | 2017-04-03 23:16:49 -0700 |
---|---|---|
committer | Arseny Kapoulkine <arseny.kapoulkine@gmail.com> | 2017-04-03 23:35:24 -0700 |
commit | 38edf255aee473ade74d955faa79e4f7a5c38eb1 (patch) | |
tree | 770417ac47014dc51f09c4b851e731492e3209b5 /contrib | |
parent | 24d1a4562b36ecfcd7a6b3b843921d553332a0f0 (diff) |
Work around -fsanitize=integer issues
Integer sanitizer is flagging unsigned integer overflow in several
functions in pugixml; unsigned integer overflow is well defined but it
may not necessarily be intended.
Apart from hash functions, both string_to_integer and integer_to_string
use unsigned overflow - string_to_integer uses it to perform
two-complement negation so that the bulk of the operation can run using
unsigned integers. This makes it possible to simplify overflow checking.
Similarly integer_to_string negates the number before generating a
decimal representation, but negating is impossible without unsigned
overflow or special-casing certain integer limits.
For now just silence the integer overflow using a special attribute;
also move unsigned overflow into string_to_integer from get_value_* so
that we have fewer functions marked with the attribute.
Fixes #133.
Diffstat (limited to 'contrib')
0 files changed, 0 insertions, 0 deletions