diff --git a/cpp/ql/test/query-tests/Likely Bugs/Memory Management/PointerOverflow/PointerOverflow.expected b/cpp/ql/test/query-tests/Likely Bugs/Memory Management/PointerOverflow/PointerOverflow.expected index 219588de6f2..91e711adca9 100644 --- a/cpp/ql/test/query-tests/Likely Bugs/Memory Management/PointerOverflow/PointerOverflow.expected +++ b/cpp/ql/test/query-tests/Likely Bugs/Memory Management/PointerOverflow/PointerOverflow.expected @@ -1,2 +1,3 @@ +| no_strict_overflow.c:5:9:5:21 | ... < ... | Range check relying on pointer overflow. | | test.cpp:6:12:6:33 | ... < ... | Range check relying on pointer overflow. | | test.cpp:33:9:33:21 | ... < ... | Range check relying on pointer overflow. | diff --git a/cpp/ql/test/query-tests/Likely Bugs/Memory Management/PointerOverflow/no_strict_overflow.c b/cpp/ql/test/query-tests/Likely Bugs/Memory Management/PointerOverflow/no_strict_overflow.c new file mode 100644 index 00000000000..2bc73d10fd3 --- /dev/null +++ b/cpp/ql/test/query-tests/Likely Bugs/Memory Management/PointerOverflow/no_strict_overflow.c @@ -0,0 +1,6 @@ +// semmle-extractor-options: -fno-strict-overflow + +int not_in_range_nostrict(int *ptr, int *ptr_end, unsigned int a) { + return ptr + a < ptr_end || // GOOD (for the purpose of this test) + ptr + a < ptr; // GOOD (due to compiler options) [FALSE POSITIVE] +}