aboutsummaryrefslogtreecommitdiff
path: root/clang/test/Analysis/analyzeOneFunction.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/Analysis/analyzeOneFunction.cpp')
-rw-r--r--clang/test/Analysis/analyzeOneFunction.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/clang/test/Analysis/analyzeOneFunction.cpp b/clang/test/Analysis/analyzeOneFunction.cpp
new file mode 100644
index 0000000..3a362df
--- /dev/null
+++ b/clang/test/Analysis/analyzeOneFunction.cpp
@@ -0,0 +1,18 @@
+// RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.ExprInspection -verify %s \
+// RUN: -analyze-function="Window::overloaded(int)"
+
+// RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.ExprInspection -verify %s \
+// RUN: -analyze-function="c:@S@Window@F@overloaded#I#"
+
+// RUN: %clang_extdef_map %s | FileCheck %s
+// CHECK: 27:c:@S@Window@F@overloaded#I#
+// CHECK-NEXT: 27:c:@S@Window@F@overloaded#C#
+// CHECK-NEXT: 27:c:@S@Window@F@overloaded#d#
+
+void clang_analyzer_warnIfReached();
+
+struct Window {
+ void overloaded(double) { clang_analyzer_warnIfReached(); } // not analyzed, thus not reachable
+ void overloaded(char) { clang_analyzer_warnIfReached(); } // not analyzed, thus not reachable
+ void overloaded(int) { clang_analyzer_warnIfReached(); } // expected-warning {{REACHABLE}}
+};