summaryrefslogtreecommitdiff
path: root/tests/test_memory.cpp
diff options
context:
space:
mode:
authorArseny Kapoulkine <arseny.kapoulkine@gmail.com>2017-04-03 23:16:49 -0700
committerArseny Kapoulkine <arseny.kapoulkine@gmail.com>2017-04-03 23:35:24 -0700
commit38edf255aee473ade74d955faa79e4f7a5c38eb1 (patch)
tree770417ac47014dc51f09c4b851e731492e3209b5 /tests/test_memory.cpp
parent24d1a4562b36ecfcd7a6b3b843921d553332a0f0 (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 'tests/test_memory.cpp')
0 files changed, 0 insertions, 0 deletions