diff options
| author | Mike Stump <mrs@apple.com> | 2009-08-04 21:58:42 +0000 |
|---|---|---|
| committer | Mike Stump <mrs@apple.com> | 2009-08-04 21:58:42 +0000 |
| commit | 9beac787c17a51a3b1a9b75dcce45f85f057d67c (patch) | |
| tree | 83fc09ea882457bf680804a699aec728bbc04392 /clang/test/CodeGenCXX/virt.cpp | |
| parent | a8720101b583f0000d06624bc17ff097db1125e7 (diff) | |
| download | bcm5719-llvm-9beac787c17a51a3b1a9b75dcce45f85f057d67c.tar.gz bcm5719-llvm-9beac787c17a51a3b1a9b75dcce45f85f057d67c.zip | |
vtable building for simple inheritance. Still in progress.
llvm-svn: 78110
Diffstat (limited to 'clang/test/CodeGenCXX/virt.cpp')
| -rw-r--r-- | clang/test/CodeGenCXX/virt.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/clang/test/CodeGenCXX/virt.cpp b/clang/test/CodeGenCXX/virt.cpp index fdca3f4a15b..e77abaa6f56 100644 --- a/clang/test/CodeGenCXX/virt.cpp +++ b/clang/test/CodeGenCXX/virt.cpp @@ -4,15 +4,20 @@ // RUN: FileCheck -check-prefix LP32 -input-file=%t-32.s %s && // RUN: true -class A { +struct B { + virtual void bar1(); + virtual void bar2(); +}; + +static_assert (sizeof (B) == (sizeof(void *)), "vtable pointer layout"); + +class A : public B { public: virtual void foo1(); virtual void foo2(); A() { } } *a; -static_assert (sizeof (A) == (sizeof(void *)), "vtable pointer layout"); - int main() { A a; } @@ -20,11 +25,15 @@ int main() { // CHECK-LP64: __ZTV1A: // CHECK-LP64: .space 8 // CHECK-LP64: .space 8 +// CHECK-LP64: .quad __ZN1B4bar1Ev +// CHECK-LP64: .quad __ZN1B4bar2Ev // CHECK-LP64: .quad __ZN1A4foo1Ev // CHECK-LP64: .quad __ZN1A4foo2Ev // CHECK-LP32: __ZTV1A: // CHECK-LP32: .space 4 // CHECK-LP32: .space 4 +// CHECK-LP32: .long __ZN1B4bar1Ev +// CHECK-LP32: .long __ZN1B4bar2Ev // CHECK-LP32: .long __ZN1A4foo1Ev // CHECK-LP32: .long __ZN1A4foo2Ev |

