[cfe-commits] r85925 - /cfe/trunk/test/CodeGenCXX/virt.cpp

Mike Stump mrs at apple.com
Tue Nov 3 11:28:52 PST 2009


Author: mrs
Date: Tue Nov  3 13:28:52 2009
New Revision: 85925

URL: http://llvm.org/viewvc/llvm-project?rev=85925&view=rev
Log:
vtable testcase for recent work on vcall/vbase offsets.

Modified:
    cfe/trunk/test/CodeGenCXX/virt.cpp

Modified: cfe/trunk/test/CodeGenCXX/virt.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/virt.cpp?rev=85925&r1=85924&r2=85925&view=diff

==============================================================================
--- cfe/trunk/test/CodeGenCXX/virt.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/virt.cpp Tue Nov  3 13:28:52 2009
@@ -1091,7 +1091,7 @@
 
 class test17_D : public test17_B2 {
   void bar() { }
-} test17_d;
+};
 
 
 // CHECK-LP64:__ZTV8test17_D:
@@ -1143,7 +1143,85 @@
 
 struct test18_D : test18_NV1, virtual test18_B2 {
   virtual test18_D& foo1() { return *this; }
-} d;
+};
+
+
+struct test19_VB1 { };
+struct test19_B1 : public virtual test19_VB1 {
+  virtual void fB1() { }
+  virtual void foB1B2() { }
+  virtual void foB1B3() { }
+  virtual void foB1B4() { }
+};
+
+struct test19_VB2 { };
+struct test19_B2: public test19_B1, public virtual test19_VB2 {
+  virtual void foB1B2() { }
+  virtual void foB1B3() { }
+  virtual void foB1B4() { }
+
+  virtual void fB2() { }
+  virtual void foB2B3() { }
+  virtual void foB2B4() { }
+};
+
+struct test19_VB3 { };
+struct test19_B3: virtual public test19_B2, public virtual test19_VB3 {
+  virtual void foB1B3() { }
+  virtual void foB1B4() { }
+
+  virtual void foB2B3() { }
+  virtual void foB2B4() { }
+
+  virtual void fB3() { }
+  virtual void foB3B4() { }
+};
+
+struct test19_VB4 { };
+struct test19_B4: public test19_B3, public virtual test19_VB4 {
+  virtual void foB1B4() { }
+
+  virtual void foB2B4() { }
+
+  virtual void foB3B4() { }
+
+  virtual void fB4() { }
+};
+
+struct test19_D : virtual test19_B4 {
+};
+
+
+// CHECK-LP64: __ZTV8test19_D:
+// CHECK-LP64-NEXT: .space 8
+// CHECK-LP64-NEXT: .space 8
+// CHECK-LP64-NEXT: .space 8
+// CHECK-LP64-NEXT: .space 8
+// CHECK-LP64-NEXT: .space 8
+// CHECK-LP64-NEXT: .space 8
+// CHECK-LP64-NEXT: .space 8
+// CHECK-LP64-NEXT: .space 8
+// CHECK-LP64-NEXT: .space 8
+// CHECK-LP64-NEXT: .space 8
+// CHECK-LP64-NEXT: .space 8
+// CHECK-LP64-NEXT: .space 8
+// CHECK-LP64-NEXT: .space 8
+// CHECK-LP64-NEXT: .space 8
+// CHECK-LP64-NEXT: .space 8
+// CHECK-LP64-NEXT: .space 8
+// CHECK-LP64-NEXT: .space 8
+// CHECK-LP64-NEXT: .quad __ZTI8test19_D
+// CHECK-LP64-NEXT .quad __ZN9test19_B13fB1Ev
+// CHECK-LP64-NEXT .quad __ZN9test19_B26foB1B2Ev
+// CHECK-LP64-NEXT .quad __ZN9test19_B36foB1B3Ev
+// CHECK-LP64-NEXT .quad __ZN9test19_B46foB1B4Ev
+// CHECK-LP64-NEXT .quad __ZN9test19_B23fB2Ev
+// CHECK-LP64-NEXT .quad __ZN9test19_B36foB2B3Ev
+// CHECK-LP64-NEXT .quad __ZN9test19_B46foB2B4Ev
+// CHECK-LP64-NEXT .quad __ZN9test19_B33fB3Ev
+// CHECK-LP64-NEXT .quad __ZN9test19_B46foB3B4Ev
+// CHECK-LP64-NEXT .quad __ZN9test19_B43fB4Ev
+
 
 
 // CHECK-LP64: __ZTV1B:
@@ -1224,6 +1302,9 @@
 // CHECK-LP64-NEXT: .quad __ZN2D14bar4Ev
 // CHECK-LP64-NEXT: .quad __ZN2D14bar5Ev
 
+test19_D d19;
+test18_D d18;
+test17_D d17;
 test16_D d16;
 test15_D d15;
 test13_D d13;





More information about the cfe-commits mailing list