diff options
Diffstat (limited to 'test/ubsan_minimal/TestCases/nullptr-and-nonzero-offset.c')
-rw-r--r-- | test/ubsan_minimal/TestCases/nullptr-and-nonzero-offset.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/test/ubsan_minimal/TestCases/nullptr-and-nonzero-offset.c b/test/ubsan_minimal/TestCases/nullptr-and-nonzero-offset.c new file mode 100644 index 000000000..ba930341b --- /dev/null +++ b/test/ubsan_minimal/TestCases/nullptr-and-nonzero-offset.c @@ -0,0 +1,22 @@ +// RUN: %clang -fsanitize=pointer-overflow %s -o %t && %run %t 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-C --implicit-check-not="pointer-overflow" +// RUN: %clangxx -fsanitize=pointer-overflow %s -o %t && %run %t 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-CPP --implicit-check-not="pointer-overflow" + +#include <stdlib.h> + +int main(int argc, char *argv[]) { + char *base, *result; + + base = (char *)0; + result = base + 0; + // CHECK-C: pointer-overflow + + base = (char *)0; + result = base + 1; + // CHECK: pointer-overflow + + base = (char *)1; + result = base - 1; + // CHECK: pointer-overflow + + return 0; +} |