]> granicus.if.org Git - clang/commitdiff
Add another test that we can fully devirtualize now.
authorAnders Carlsson <andersca@mac.com>
Sun, 6 Feb 2011 20:16:20 +0000 (20:16 +0000)
committerAnders Carlsson <andersca@mac.com>
Sun, 6 Feb 2011 20:16:20 +0000 (20:16 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124988 91177308-0d34-0410-b5e6-96231b3b80d8

test/CodeGenCXX/vtable-available-externally.cpp

index f56e3d147f99d29609023a523e7862b86b37cf5a..23baac968c7e1cc9b12d3d82325bd984a51d381a 100644 (file)
@@ -2,6 +2,7 @@
 // RUN: FileCheck --check-prefix=CHECK-TEST1 %s < %t
 // RUN: FileCheck --check-prefix=CHECK-TEST2 %s < %t
 // RUN: FileCheck --check-prefix=CHECK-TEST5 %s < %t
+// RUN: FileCheck --check-prefix=CHECK-TEST7 %s < %t
 
 #include <typeinfo>
 
@@ -144,3 +145,27 @@ struct D : C {
 D::D() { }
 
 }
+
+namespace Test7 {
+
+struct c1 {};
+struct c10 : c1{
+  virtual void foo ();
+};
+struct c11 : c10, c1{
+  virtual void f6 ();
+};
+struct c28 : virtual c11{
+  void f6 ();
+};
+
+// CHECK-TEST7: define void @_ZN5Test79check_c28Ev
+// CHECK-TEST7: call void @_ZN5Test73c282f6Ev
+// CHECK-TEST7: ret void
+void check_c28 () {
+  c28 obj;
+  c11 *ptr = &obj;
+  ptr->f6 ();
+}
+
+}