]> granicus.if.org Git - clang/commitdiff
Add a test for the breakage from r183298
authorTimur Iskhodzhanov <timurrrr@google.com>
Wed, 5 Jun 2013 13:49:11 +0000 (13:49 +0000)
committerTimur Iskhodzhanov <timurrrr@google.com>
Wed, 5 Jun 2013 13:49:11 +0000 (13:49 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183308 91177308-0d34-0410-b5e6-96231b3b80d8

test/CodeGenCXX/vtable-layout.cpp

index 7bbade4b048ab42afa41f90b06767c460b98ebbd..474bf2b57f3cb39a02dbb8666ddfc07b8976137d 100644 (file)
@@ -1889,3 +1889,37 @@ namespace Test39 {
   void B::foo2() {
   }
 }
+
+namespace Test40 {
+  struct A {
+    virtual void foo() = 0;
+  };
+
+  struct B : public A {
+    virtual void foo();
+  };
+
+  struct C: public B {
+    // CHECK-46: VTable indices for 'Test40::C' (8 entries).
+    // CHECK-46-NEXT: 1 | int Test40::C::f(int)
+    // CHECK-46-NEXT: 2 | int Test40::C::f()
+    // CHECK-46-NEXT: 3 | int Test40::C::g(int)
+    // CHECK-46-NEXT: 4 | int Test40::C::g()
+    // CHECK-46-NEXT: 5 | int Test40::C::h(int)
+    // CHECK-46-NEXT: 6 | int Test40::C::h()
+    // CHECK-46-NEXT: 7 | int Test40::C::i(int)
+    // CHECK-46-NEXT: 8 | int Test40::C::i()
+    virtual int f(int);
+    virtual int f();
+    virtual int g(int);
+    virtual int g();
+    virtual int h(int);
+    virtual int h();
+    virtual int i(int);
+    virtual int i();
+  };
+
+  class D : C {};
+
+  D d;
+}