summaryrefslogtreecommitdiffstats
path: root/clang/test/Sema/exprs.c
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2011-02-23 02:15:19 +0000
committerTed Kremenek <kremenek@apple.com>2011-02-23 02:15:19 +0000
commitef59fe78455c6d2789daa5c11026ab92b3ee18b4 (patch)
tree6b32d3c6455ba5e647c5f418e22b287b53e43afb /clang/test/Sema/exprs.c
parent5278cd11baa850e56c0c04abc5e1ca6998e6288f (diff)
downloadbcm5719-llvm-ef59fe78455c6d2789daa5c11026ab92b3ee18b4.tar.gz
bcm5719-llvm-ef59fe78455c6d2789daa5c11026ab92b3ee18b4.zip
Add test case (from PR 8876) for suppressing 'indirection of non-volatile null pointer...' warning due to reachability analysis.
llvm-svn: 126294
Diffstat (limited to 'clang/test/Sema/exprs.c')
-rw-r--r--clang/test/Sema/exprs.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/clang/test/Sema/exprs.c b/clang/test/Sema/exprs.c
index e88f7fc08bc..5917e085ea7 100644
--- a/clang/test/Sema/exprs.c
+++ b/clang/test/Sema/exprs.c
@@ -1,5 +1,23 @@
// RUN: %clang_cc1 %s -verify -pedantic -fsyntax-only
+// PR 8876 - don't warn about trivially unreachable null derefs. Note that
+// we put this here because the reachability analysis only kicks in for
+// suppressing false positives when code has no errors.
+#define PR8876(err_ptr) do {\
+ if (err_ptr) *(int*)(err_ptr) = 1;\
+ } while (0)
+
+#define PR8876_pos(err_ptr) do {\
+ if (!err_ptr) *(int*)(err_ptr) = 1;\
+ } while (0)
+
+
+int test_pr8876() {
+ PR8876(0); // no-warning
+ PR8876_pos(0); // expected-warning{{indirection of non-volatile null pointer will be deleted, not trap}} expected-note{{consider using __builtin_trap() or qualifying pointer with 'volatile'}}
+ return 0;
+}
+
// PR1966
_Complex double test1() {
return __extension__ 1.0if;
OpenPOWER on IntegriCloud