diff options
Diffstat (limited to 'clang/test/CodeGenCXX/virt.cpp')
-rw-r--r-- | clang/test/CodeGenCXX/virt.cpp | 21 |
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 |