summaryrefslogtreecommitdiffstats
path: root/test/Analysis/diagnostics/explicit-suppression.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/Analysis/diagnostics/explicit-suppression.cpp')
-rw-r--r--test/Analysis/diagnostics/explicit-suppression.cpp80
1 files changed, 80 insertions, 0 deletions
diff --git a/test/Analysis/diagnostics/explicit-suppression.cpp b/test/Analysis/diagnostics/explicit-suppression.cpp
new file mode 100644
index 0000000..79afeed
--- /dev/null
+++ b/test/Analysis/diagnostics/explicit-suppression.cpp
@@ -0,0 +1,80 @@
+// RUN: %clang_cc1 -analyze -analyzer-checker=core,debug.ExprInspection -analyzer-config suppress-c++-stdlib=false -verify %s
+// RUN: %clang_cc1 -analyze -analyzer-checker=core,debug.ExprInspection -analyzer-config suppress-c++-stdlib=true -DSUPPRESSED=1 -verify %s
+
+#ifdef SUPPRESSED
+// expected-no-diagnostics
+#endif
+
+#include "../Inputs/system-header-simulator-cxx.h"
+
+void clang_analyzer_eval(bool);
+
+void testCopyNull(int *I, int *E) {
+ std::copy(I, E, (int *)0);
+#ifndef SUPPRESSED
+ // This line number comes from system-header-simulator-cxx.h.
+ // expected-warning@79 {{Dereference of null pointer}}
+#endif
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// PR15613: expected-* can't refer to diagnostics in other source files.
+// The current implementation only matches line numbers, but has an upper limit
+// of the number of lines in the main source file.
OpenPOWER on IntegriCloud