summaryrefslogtreecommitdiffstats
path: root/test/Analysis/inlining/dyn-dispatch-bifurcate.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/Analysis/inlining/dyn-dispatch-bifurcate.cpp')
-rw-r--r--test/Analysis/inlining/dyn-dispatch-bifurcate.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/test/Analysis/inlining/dyn-dispatch-bifurcate.cpp b/test/Analysis/inlining/dyn-dispatch-bifurcate.cpp
index fa473ae..3771348 100644
--- a/test/Analysis/inlining/dyn-dispatch-bifurcate.cpp
+++ b/test/Analysis/inlining/dyn-dispatch-bifurcate.cpp
@@ -15,3 +15,19 @@ void testKnown() {
A a;
clang_analyzer_eval(a.get() == 0); // expected-warning{{TRUE}}
}
+
+
+namespace ReinterpretDisruptsDynamicTypeInfo {
+ class Parent {};
+
+ class Child : public Parent {
+ public:
+ virtual int foo() { return 42; }
+ };
+
+ void test(Parent *a) {
+ Child *b = reinterpret_cast<Child *>(a);
+ if (!b) return;
+ clang_analyzer_eval(b->foo() == 42); // expected-warning{{UNKNOWN}}
+ }
+}
OpenPOWER on IntegriCloud