summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/virt.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/CodeGenCXX/virt.cpp')
-rw-r--r--clang/test/CodeGenCXX/virt.cpp21
1 files changed, 20 insertions, 1 deletions
diff --git a/clang/test/CodeGenCXX/virt.cpp b/clang/test/CodeGenCXX/virt.cpp
index e77abaa6f56..7a43026f825 100644
--- a/clang/test/CodeGenCXX/virt.cpp
+++ b/clang/test/CodeGenCXX/virt.cpp
@@ -8,15 +8,26 @@ struct B {
virtual void bar1();
virtual void bar2();
};
+void B::bar1() { }
+void B::bar2() { }
+
+struct C {
+ virtual void bee1();
+ virtual void bee2();
+};
+void C::bee1() { }
+void C::bee2() { }
static_assert (sizeof (B) == (sizeof(void *)), "vtable pointer layout");
-class A : public B {
+class A : public B, public C {
public:
virtual void foo1();
virtual void foo2();
A() { }
} *a;
+void A::foo1() { }
+void A::foo2() { }
int main() {
A a;
@@ -29,6 +40,10 @@ int main() {
// CHECK-LP64: .quad __ZN1B4bar2Ev
// CHECK-LP64: .quad __ZN1A4foo1Ev
// CHECK-LP64: .quad __ZN1A4foo2Ev
+// CHECK-LP64: .quad 18446744073709551608
+// CHECK-LP64: .space 8
+// CHECK-LP64: .quad __ZN1C4bee1Ev
+// CHECK-LP64: .quad __ZN1C4bee2Ev
// CHECK-LP32: __ZTV1A:
// CHECK-LP32: .space 4
@@ -37,3 +52,7 @@ int main() {
// CHECK-LP32: .long __ZN1B4bar2Ev
// CHECK-LP32: .long __ZN1A4foo1Ev
// CHECK-LP32: .long __ZN1A4foo2Ev
+// CHECK-LP32: .long 4294967292
+// CHECK-LP32: .space 4
+// CHECK-LP32: .long __ZN1C4bee1Ev
+// CHECK-LP32: .long __ZN1C4bee2Ev
OpenPOWER on IntegriCloud