add a case we fail to devirt.
authorChris Lattner <sabre@nondot.org>
Tue, 9 Nov 2010 19:37:28 +0000 (19:37 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 9 Nov 2010 19:37:28 +0000 (19:37 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118608 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/README.txt

index e63df536ae076c78a1288a77606060f68a50b74a..6d42d812a00bf3753843531996f3021a0d60c792 100644 (file)
@@ -1963,3 +1963,23 @@ bb3:            ; preds = %entry
         ret i32 %b
 }
 //===---------------------------------------------------------------------===//
+
+clang -O3 fails to devirtualize this virtual inheritance case: (GCC PR45875)
+
+struct c1 {};
+struct c10 : c1{
+  virtual void foo ();
+};
+struct c11 : c10, c1{
+  virtual void f6 ();
+};
+struct c28 : virtual c11{
+  void f6 ();
+};
+void check_c28 () {
+  c28 obj;
+  c11 *ptr = &obj;
+  ptr->f6 ();
+}
+
+//===---------------------------------------------------------------------===//