From 463bf964a972aa02bb8ec8cc4dbd9e96266eaf51 Mon Sep 17 00:00:00 2001 From: Jonas Jensen Date: Wed, 13 Nov 2019 11:58:27 +0100 Subject: [PATCH] C++: Test showing FP with -fno-strict-overflow --- .../PointerOverflow/PointerOverflow.expected | 1 + .../Memory Management/PointerOverflow/no_strict_overflow.c | 6 ++++++ 2 files changed, 7 insertions(+) create mode 100644 cpp/ql/test/query-tests/Likely Bugs/Memory Management/PointerOverflow/no_strict_overflow.c 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] +}