I recently had an issue with Adiar, which uses TPIE. Running the example with clang’s undefined behavior sanitizer revealed unsigned overflows when computing offsets in the following method:
|
void advance(size_t n) {if (forward) elm += n; else elm -= n;} |
The overflow happens e.g. in case of n = (size_t) -1. Using ssize_t (i.e. the signed version of size_t) as argument seems to fix the issue.
I recently had an issue with Adiar, which uses TPIE. Running the example with clang’s undefined behavior sanitizer revealed unsigned overflows when computing offsets in the following method:
tpie/tpie/array.h
Line 56 in 663a261
The overflow happens e.g. in case of
n = (size_t) -1. Usingssize_t(i.e. the signed version ofsize_t) as argument seems to fix the issue.