diff options
Diffstat (limited to 'test/Analysis/inlining/dyn-dispatch-bifurcate.cpp')
-rw-r--r-- | test/Analysis/inlining/dyn-dispatch-bifurcate.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/test/Analysis/inlining/dyn-dispatch-bifurcate.cpp b/test/Analysis/inlining/dyn-dispatch-bifurcate.cpp new file mode 100644 index 0000000..fa473ae --- /dev/null +++ b/test/Analysis/inlining/dyn-dispatch-bifurcate.cpp @@ -0,0 +1,17 @@ +// RUN: %clang_cc1 -analyze -analyzer-checker=core,debug.ExprInspection -analyzer-ipa=dynamic-bifurcate -verify %s + +void clang_analyzer_eval(bool); + +class A { +public: + virtual int get() { return 0; } +}; + +void testBifurcation(A *a) { + clang_analyzer_eval(a->get() == 0); // expected-warning{{TRUE}} expected-warning{{UNKNOWN}} +} + +void testKnown() { + A a; + clang_analyzer_eval(a.get() == 0); // expected-warning{{TRUE}} +} |