summaryrefslogtreecommitdiff
path: root/test/ubsan/TestCases/Misc/nonnull.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/ubsan/TestCases/Misc/nonnull.cpp')
-rw-r--r--test/ubsan/TestCases/Misc/nonnull.cpp42
1 files changed, 0 insertions, 42 deletions
diff --git a/test/ubsan/TestCases/Misc/nonnull.cpp b/test/ubsan/TestCases/Misc/nonnull.cpp
deleted file mode 100644
index d5cd2bf763b7..000000000000
--- a/test/ubsan/TestCases/Misc/nonnull.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-// RUN: %clangxx -fsanitize=returns-nonnull-attribute -w %s -O3 -o %t
-// RUN: %run %t foo 2>&1 | count 0
-// RUN: %run %t 2>&1 | FileCheck %s
-// RUN: %clangxx -fsanitize=returns-nonnull-attribute -fno-sanitize-recover=returns-nonnull-attribute -w %s -O3 -o %t.abort
-// RUN: not %run %t.abort &> /dev/null
-
-__attribute__((returns_nonnull)) char *foo(char *a);
-
-char *foo(char *a) {
- // CHECK: nonnull.cpp:[[@LINE+2]]:3: runtime error: null pointer returned from function declared to never return null
- // CHECK-NEXT: nonnull.cpp:[[@LINE-4]]:16: note: returns_nonnull attribute specified here
- return a;
-}
-
-__attribute__((returns_nonnull)) char *bar(int x, char *a) {
- if (x > 10) {
- // CHECK: nonnull.cpp:[[@LINE+2]]:5: runtime error: null pointer returned from function declared to never return null
- // CHECK-NEXT: nonnull.cpp:[[@LINE-3]]:16: note: returns_nonnull attribute specified here
- return a;
- } else {
- // CHECK: nonnull.cpp:[[@LINE+2]]:5: runtime error: null pointer returned from function declared to never return null
- // CHECK-NEXT: nonnull.cpp:[[@LINE-7]]:16: note: returns_nonnull attribute specified here
- return a;
- }
-}
-
-int main(int argc, char **argv) {
- char *a = argv[1];
-
- foo(a);
-
- bar(20, a);
-
- // We expect to see a runtime error the first time we cover the "else"...
- bar(5, a);
-
- // ... but not a second time.
- // CHECK-NOT: runtime error
- bar(5, a);
-
- return 0;
-}