diff --git a/clang/test/CodeGenCXX/vtable-layout-abi-examples.cpp b/clang/test/CodeGenCXX/vtable-layout-abi-examples.cpp
index c01c5ef..8f084a9 100644
--- a/clang/test/CodeGenCXX/vtable-layout-abi-examples.cpp
+++ b/clang/test/CodeGenCXX/vtable-layout-abi-examples.cpp
@@ -1,4 +1,15 @@
-// RUN: %clang_cc1 %s -triple=x86_64-apple-darwin10 -emit-llvm-only -fdump-vtable-layouts 2>&1 | FileCheck %s
+// RUN: %clang_cc1 %s -triple=x86_64-apple-darwin10 -emit-llvm-only -fdump-vtable-layouts > %t 2>&1
+// RUN: FileCheck --check-prefix=CHECK-1 %s < %t
+// RUN: FileCheck --check-prefix=CHECK-2 %s < %t
+// RUN: FileCheck --check-prefix=CHECK-3 %s < %t
+// RUN: FileCheck --check-prefix=CHECK-4 %s < %t
+// RUN: FileCheck --check-prefix=CHECK-5 %s < %t
+// RUN: FileCheck --check-prefix=CHECK-6 %s < %t
+// RUN: FileCheck --check-prefix=CHECK-7 %s < %t
+// RUN: FileCheck --check-prefix=CHECK-8 %s < %t
+// RUN: FileCheck --check-prefix=CHECK-9 %s < %t
+// RUN: FileCheck --check-prefix=CHECK-10 %s < %t
+// RUN: FileCheck --check-prefix=CHECK-11 %s < %t
 
 /// Examples from the Itanium C++ ABI specification.
 /// http://www.codesourcery.com/public/cxx-abi/
@@ -7,13 +18,13 @@
   
 // This is from http://www.codesourcery.com/public/cxx-abi/cxx-vtable-ex.html
 
-// CHECK:      Vtable for 'Test1::A' (5 entries).
-// CHECK-NEXT:    0 | offset_to_top (0)
-// CHECK-NEXT:    1 | Test1::A RTTI
-// CHECK-NEXT:        -- (Test1::A, 0) vtable address --
-// CHECK-NEXT:    2 | void Test1::A::f()
-// CHECK-NEXT:    3 | void Test1::A::g()
-// CHECK-NEXT:    4 | void Test1::A::h()
+// CHECK-1:      Vtable for 'Test1::A' (5 entries).
+// CHECK-1-NEXT:    0 | offset_to_top (0)
+// CHECK-1-NEXT:    1 | Test1::A RTTI
+// CHECK-1-NEXT:        -- (Test1::A, 0) vtable address --
+// CHECK-1-NEXT:    2 | void Test1::A::f()
+// CHECK-1-NEXT:    3 | void Test1::A::g()
+// CHECK-1-NEXT:    4 | void Test1::A::h()
 struct A {
   virtual void f ();
   virtual void g ();
@@ -22,24 +33,24 @@
 };
 void A::f() {}
 
-// CHECK:      Vtable for 'Test1::B' (13 entries).
-// CHECK-NEXT:    0 | vbase_offset (16)
-// CHECK-NEXT:    1 | offset_to_top (0)
-// CHECK-NEXT:    2 | Test1::B RTTI
-// CHECK-NEXT:        -- (Test1::B, 0) vtable address --
-// CHECK-NEXT:    3 | void Test1::B::f()
-// CHECK-NEXT:    4 | void Test1::B::h()
-// CHECK-NEXT:    5 | vcall_offset (-16)
-// CHECK-NEXT:    6 | vcall_offset (0)
-// CHECK-NEXT:    7 | vcall_offset (-16)
-// CHECK-NEXT:    8 | offset_to_top (-16)
-// CHECK-NEXT:    9 | Test1::B RTTI
-// CHECK-NEXT:        -- (Test1::A, 16) vtable address --
-// CHECK-NEXT:   10 | void Test1::B::f()
-// CHECK-NEXT:        [this adjustment: 0 non-virtual, -24 vcall offset offset]
-// CHECK-NEXT:   11 | void Test1::A::g()
-// CHECK-NEXT:   12 | void Test1::B::h()
-// CHECK-NEXT:        [this adjustment: 0 non-virtual, -40 vcall offset offset]
+// CHECK-2:      Vtable for 'Test1::B' (13 entries).
+// CHECK-2-NEXT:    0 | vbase_offset (16)
+// CHECK-2-NEXT:    1 | offset_to_top (0)
+// CHECK-2-NEXT:    2 | Test1::B RTTI
+// CHECK-2-NEXT:        -- (Test1::B, 0) vtable address --
+// CHECK-2-NEXT:    3 | void Test1::B::f()
+// CHECK-2-NEXT:    4 | void Test1::B::h()
+// CHECK-2-NEXT:    5 | vcall_offset (-16)
+// CHECK-2-NEXT:    6 | vcall_offset (0)
+// CHECK-2-NEXT:    7 | vcall_offset (-16)
+// CHECK-2-NEXT:    8 | offset_to_top (-16)
+// CHECK-2-NEXT:    9 | Test1::B RTTI
+// CHECK-2-NEXT:        -- (Test1::A, 16) vtable address --
+// CHECK-2-NEXT:   10 | void Test1::B::f()
+// CHECK-2-NEXT:        [this adjustment: 0 non-virtual, -24 vcall offset offset]
+// CHECK-2-NEXT:   11 | void Test1::A::g()
+// CHECK-2-NEXT:   12 | void Test1::B::h()
+// CHECK-2-NEXT:        [this adjustment: 0 non-virtual, -40 vcall offset offset]
 struct B: public virtual A {
   void f ();
   void h ();
@@ -47,24 +58,24 @@
 };
 void B::f() {}
 
-// CHECK:      Vtable for 'Test1::C' (13 entries).
-// CHECK-NEXT:    0 | vbase_offset (16)
-// CHECK-NEXT:    1 | offset_to_top (0)
-// CHECK-NEXT:    2 | Test1::C RTTI
-// CHECK-NEXT:        -- (Test1::C, 0) vtable address --
-// CHECK-NEXT:    3 | void Test1::C::g()
-// CHECK-NEXT:    4 | void Test1::C::h()
-// CHECK-NEXT:    5 | vcall_offset (-16)
-// CHECK-NEXT:    6 | vcall_offset (-16)
-// CHECK-NEXT:    7 | vcall_offset (0)
-// CHECK-NEXT:    8 | offset_to_top (-16)
-// CHECK-NEXT:    9 | Test1::C RTTI
-// CHECK-NEXT:        -- (Test1::A, 16) vtable address --
-// CHECK-NEXT:   10 | void Test1::A::f()
-// CHECK-NEXT:   11 | void Test1::C::g()
-// CHECK-NEXT:        [this adjustment: 0 non-virtual, -32 vcall offset offset]
-// CHECK-NEXT:   12 | void Test1::C::h()
-// CHECK-NEXT:        [this adjustment: 0 non-virtual, -40 vcall offset offset]
+// CHECK-3:      Vtable for 'Test1::C' (13 entries).
+// CHECK-3-NEXT:    0 | vbase_offset (16)
+// CHECK-3-NEXT:    1 | offset_to_top (0)
+// CHECK-3-NEXT:    2 | Test1::C RTTI
+// CHECK-3-NEXT:        -- (Test1::C, 0) vtable address --
+// CHECK-3-NEXT:    3 | void Test1::C::g()
+// CHECK-3-NEXT:    4 | void Test1::C::h()
+// CHECK-3-NEXT:    5 | vcall_offset (-16)
+// CHECK-3-NEXT:    6 | vcall_offset (-16)
+// CHECK-3-NEXT:    7 | vcall_offset (0)
+// CHECK-3-NEXT:    8 | offset_to_top (-16)
+// CHECK-3-NEXT:    9 | Test1::C RTTI
+// CHECK-3-NEXT:        -- (Test1::A, 16) vtable address --
+// CHECK-3-NEXT:   10 | void Test1::A::f()
+// CHECK-3-NEXT:   11 | void Test1::C::g()
+// CHECK-3-NEXT:        [this adjustment: 0 non-virtual, -32 vcall offset offset]
+// CHECK-3-NEXT:   12 | void Test1::C::h()
+// CHECK-3-NEXT:        [this adjustment: 0 non-virtual, -40 vcall offset offset]
 struct C: public virtual A {
   void g ();
   void h ();
@@ -72,33 +83,33 @@
 };
 void C::g() {}
 
-// CHECK:      Vtable for 'Test1::D' (18 entries).
-// CHECK-NEXT:    0 | vbase_offset (32)
-// CHECK-NEXT:    1 | offset_to_top (0)
-// CHECK-NEXT:    2 | Test1::D RTTI
-// CHECK-NEXT:        -- (Test1::B, 0) vtable address --
-// CHECK-NEXT:        -- (Test1::D, 0) vtable address --
-// CHECK-NEXT:    3 | void Test1::B::f()
-// CHECK-NEXT:    4 | void Test1::D::h()
-// CHECK-NEXT:    5 | vbase_offset (16)
-// CHECK-NEXT:    6 | offset_to_top (-16)
-// CHECK-NEXT:    7 | Test1::D RTTI
-// CHECK-NEXT:        -- (Test1::C, 16) vtable address --
-// CHECK-NEXT:    8 | void Test1::C::g()
-// CHECK-NEXT:    9 | void Test1::D::h()
-// CHECK-NEXT:        [this adjustment: -16 non-virtual]
-// CHECK-NEXT:   10 | vcall_offset (-32)
-// CHECK-NEXT:   11 | vcall_offset (-16)
-// CHECK-NEXT:   12 | vcall_offset (-32)
-// CHECK-NEXT:   13 | offset_to_top (-32)
-// CHECK-NEXT:   14 | Test1::D RTTI
-// CHECK-NEXT:        -- (Test1::A, 32) vtable address --
-// CHECK-NEXT:   15 | void Test1::B::f()
-// CHECK-NEXT:        [this adjustment: 0 non-virtual, -24 vcall offset offset]
-// CHECK-NEXT:   16 | void Test1::C::g()
-// CHECK-NEXT:        [this adjustment: 0 non-virtual, -32 vcall offset offset]
-// CHECK-NEXT:   17 | void Test1::D::h()
-// CHECK-NEXT:        [this adjustment: 0 non-virtual, -40 vcall offset offset]
+// CHECK-4:      Vtable for 'Test1::D' (18 entries).
+// CHECK-4-NEXT:    0 | vbase_offset (32)
+// CHECK-4-NEXT:    1 | offset_to_top (0)
+// CHECK-4-NEXT:    2 | Test1::D RTTI
+// CHECK-4-NEXT:        -- (Test1::B, 0) vtable address --
+// CHECK-4-NEXT:        -- (Test1::D, 0) vtable address --
+// CHECK-4-NEXT:    3 | void Test1::B::f()
+// CHECK-4-NEXT:    4 | void Test1::D::h()
+// CHECK-4-NEXT:    5 | vbase_offset (16)
+// CHECK-4-NEXT:    6 | offset_to_top (-16)
+// CHECK-4-NEXT:    7 | Test1::D RTTI
+// CHECK-4-NEXT:        -- (Test1::C, 16) vtable address --
+// CHECK-4-NEXT:    8 | void Test1::C::g()
+// CHECK-4-NEXT:    9 | void Test1::D::h()
+// CHECK-4-NEXT:        [this adjustment: -16 non-virtual]
+// CHECK-4-NEXT:   10 | vcall_offset (-32)
+// CHECK-4-NEXT:   11 | vcall_offset (-16)
+// CHECK-4-NEXT:   12 | vcall_offset (-32)
+// CHECK-4-NEXT:   13 | offset_to_top (-32)
+// CHECK-4-NEXT:   14 | Test1::D RTTI
+// CHECK-4-NEXT:        -- (Test1::A, 32) vtable address --
+// CHECK-4-NEXT:   15 | void Test1::B::f()
+// CHECK-4-NEXT:        [this adjustment: 0 non-virtual, -24 vcall offset offset]
+// CHECK-4-NEXT:   16 | void Test1::C::g()
+// CHECK-4-NEXT:        [this adjustment: 0 non-virtual, -32 vcall offset offset]
+// CHECK-4-NEXT:   17 | void Test1::D::h()
+// CHECK-4-NEXT:        [this adjustment: 0 non-virtual, -40 vcall offset offset]
 struct D: public B, public C {
   void h ();
   int id;
@@ -110,43 +121,43 @@
   virtual void x();
 };
 
-// CHECK:      Vtable for 'Test1::E' (24 entries).
-// CHECK-NEXT:    0 | vbase_offset (56)
-// CHECK-NEXT:    1 | offset_to_top (0)
-// CHECK-NEXT:    2 | Test1::E RTTI
-// CHECK-NEXT:        -- (Test1::E, 0) vtable address --
-// CHECK-NEXT:        -- (Test1::X, 0) vtable address --
-// CHECK-NEXT:    3 | void Test1::X::x()
-// CHECK-NEXT:    4 | void Test1::E::f()
-// CHECK-NEXT:    5 | void Test1::E::h()
-// CHECK-NEXT:    6 | vbase_offset (40)
-// CHECK-NEXT:    7 | offset_to_top (-16)
-// CHECK-NEXT:    8 | Test1::E RTTI
-// CHECK-NEXT:        -- (Test1::B, 16) vtable address --
-// CHECK-NEXT:        -- (Test1::D, 16) vtable address --
-// CHECK-NEXT:    9 | void Test1::E::f()
-// CHECK-NEXT:        [this adjustment: -16 non-virtual]
-// CHECK-NEXT:   10 | void Test1::E::h()
-// CHECK-NEXT:        [this adjustment: -16 non-virtual]
-// CHECK-NEXT:   11 | vbase_offset (24)
-// CHECK-NEXT:   12 | offset_to_top (-32)
-// CHECK-NEXT:   13 | Test1::E RTTI
-// CHECK-NEXT:        -- (Test1::C, 32) vtable address --
-// CHECK-NEXT:   14 | void Test1::C::g()
-// CHECK-NEXT:   15 | void Test1::E::h()
-// CHECK-NEXT:        [this adjustment: -32 non-virtual]
-// CHECK-NEXT:   16 | vcall_offset (-56)
-// CHECK-NEXT:   17 | vcall_offset (-24)
-// CHECK-NEXT:   18 | vcall_offset (-56)
-// CHECK-NEXT:   19 | offset_to_top (-56)
-// CHECK-NEXT:   20 | Test1::E RTTI
-// CHECK-NEXT:        -- (Test1::A, 56) vtable address --
-// CHECK-NEXT:   21 | void Test1::E::f()
-// CHECK-NEXT:        [this adjustment: 0 non-virtual, -24 vcall offset offset]
-// CHECK-NEXT:   22 | void Test1::C::g()
-// CHECK-NEXT:        [this adjustment: 0 non-virtual, -32 vcall offset offset]
-// CHECK-NEXT:   23 | void Test1::E::h()
-// CHECK-NEXT:        [this adjustment: 0 non-virtual, -40 vcall offset offset]
+// CHECK-5:      Vtable for 'Test1::E' (24 entries).
+// CHECK-5-NEXT:    0 | vbase_offset (56)
+// CHECK-5-NEXT:    1 | offset_to_top (0)
+// CHECK-5-NEXT:    2 | Test1::E RTTI
+// CHECK-5-NEXT:        -- (Test1::E, 0) vtable address --
+// CHECK-5-NEXT:        -- (Test1::X, 0) vtable address --
+// CHECK-5-NEXT:    3 | void Test1::X::x()
+// CHECK-5-NEXT:    4 | void Test1::E::f()
+// CHECK-5-NEXT:    5 | void Test1::E::h()
+// CHECK-5-NEXT:    6 | vbase_offset (40)
+// CHECK-5-NEXT:    7 | offset_to_top (-16)
+// CHECK-5-NEXT:    8 | Test1::E RTTI
+// CHECK-5-NEXT:        -- (Test1::B, 16) vtable address --
+// CHECK-5-NEXT:        -- (Test1::D, 16) vtable address --
+// CHECK-5-NEXT:    9 | void Test1::E::f()
+// CHECK-5-NEXT:        [this adjustment: -16 non-virtual]
+// CHECK-5-NEXT:   10 | void Test1::E::h()
+// CHECK-5-NEXT:        [this adjustment: -16 non-virtual]
+// CHECK-5-NEXT:   11 | vbase_offset (24)
+// CHECK-5-NEXT:   12 | offset_to_top (-32)
+// CHECK-5-NEXT:   13 | Test1::E RTTI
+// CHECK-5-NEXT:        -- (Test1::C, 32) vtable address --
+// CHECK-5-NEXT:   14 | void Test1::C::g()
+// CHECK-5-NEXT:   15 | void Test1::E::h()
+// CHECK-5-NEXT:        [this adjustment: -32 non-virtual]
+// CHECK-5-NEXT:   16 | vcall_offset (-56)
+// CHECK-5-NEXT:   17 | vcall_offset (-24)
+// CHECK-5-NEXT:   18 | vcall_offset (-56)
+// CHECK-5-NEXT:   19 | offset_to_top (-56)
+// CHECK-5-NEXT:   20 | Test1::E RTTI
+// CHECK-5-NEXT:        -- (Test1::A, 56) vtable address --
+// CHECK-5-NEXT:   21 | void Test1::E::f()
+// CHECK-5-NEXT:        [this adjustment: 0 non-virtual, -24 vcall offset offset]
+// CHECK-5-NEXT:   22 | void Test1::C::g()
+// CHECK-5-NEXT:        [this adjustment: 0 non-virtual, -32 vcall offset offset]
+// CHECK-5-NEXT:   23 | void Test1::E::h()
+// CHECK-5-NEXT:        [this adjustment: 0 non-virtual, -40 vcall offset offset]
 struct E : X, D {
   int ie;
   void f();
@@ -164,22 +175,22 @@
 struct B : virtual public A { int i; };
 struct C : virtual public A { int j; };
 
-// CHECK:      Vtable for 'Test2::D' (11 entries).
-// CHECK-NEXT:    0 | vbase_offset (0)
-// CHECK-NEXT:    1 | vcall_offset (0)
-// CHECK-NEXT:    2 | offset_to_top (0)
-// CHECK-NEXT:    3 | Test2::D RTTI
-// CHECK-NEXT:        -- (Test2::A, 0) vtable address --
-// CHECK-NEXT:        -- (Test2::B, 0) vtable address --
-// CHECK-NEXT:        -- (Test2::D, 0) vtable address --
-// CHECK-NEXT:    4 | void Test2::A::f()
-// CHECK-NEXT:    5 | void Test2::D::d()
-// CHECK-NEXT:    6 | vbase_offset (-16)
-// CHECK-NEXT:    7 | vcall_offset (-16)
-// CHECK-NEXT:    8 | offset_to_top (-16)
-// CHECK-NEXT:    9 | Test2::D RTTI
-// CHECK-NEXT:        -- (Test2::C, 16) vtable address --
-// CHECK-NEXT:   10 | [unused] void Test2::A::f()
+// CHECK-6:      Vtable for 'Test2::D' (11 entries).
+// CHECK-6-NEXT:    0 | vbase_offset (0)
+// CHECK-6-NEXT:    1 | vcall_offset (0)
+// CHECK-6-NEXT:    2 | offset_to_top (0)
+// CHECK-6-NEXT:    3 | Test2::D RTTI
+// CHECK-6-NEXT:        -- (Test2::A, 0) vtable address --
+// CHECK-6-NEXT:        -- (Test2::B, 0) vtable address --
+// CHECK-6-NEXT:        -- (Test2::D, 0) vtable address --
+// CHECK-6-NEXT:    4 | void Test2::A::f()
+// CHECK-6-NEXT:    5 | void Test2::D::d()
+// CHECK-6-NEXT:    6 | vbase_offset (-16)
+// CHECK-6-NEXT:    7 | vcall_offset (-16)
+// CHECK-6-NEXT:    8 | offset_to_top (-16)
+// CHECK-6-NEXT:    9 | Test2::D RTTI
+// CHECK-6-NEXT:        -- (Test2::C, 16) vtable address --
+// CHECK-6-NEXT:   10 | [unused] void Test2::A::f()
 struct D : public B, public C {
   virtual void d();
 };
@@ -201,40 +212,40 @@
   virtual void f();
 };
 
-// CHECK:      Vtable for 'Test3::C' (14 entries).
-// CHECK-NEXT:    0 | vbase_offset (32)
-// CHECK-NEXT:    1 | vbase_offset (16)
-// CHECK-NEXT:    2 | offset_to_top (0)
-// CHECK-NEXT:    3 | Test3::C RTTI
-// CHECK-NEXT:        -- (Test3::C, 0) vtable address --
-// CHECK-NEXT:    4 | void Test3::C::f()
-// CHECK-NEXT:    5 | vcall_offset (-16)
-// CHECK-NEXT:    6 | offset_to_top (-16)
-// CHECK-NEXT:    7 | Test3::C RTTI
-// CHECK-NEXT:        -- (Test3::V1, 16) vtable address --
-// CHECK-NEXT:    8 | void Test3::C::f()
-// CHECK-NEXT:        [this adjustment: 0 non-virtual, -24 vcall offset offset]
-// CHECK-NEXT:    9 | vcall_offset (-32)
-// CHECK-NEXT:   10 | vbase_offset (-16)
-// CHECK-NEXT:   11 | offset_to_top (-32)
-// CHECK-NEXT:   12 | Test3::C RTTI
-// CHECK-NEXT:        -- (Test3::V2, 32) vtable address --
-// CHECK-NEXT:   13 | void Test3::C::f()
-// CHECK-NEXT:        [this adjustment: 0 non-virtual, -32 vcall offset offset]
+// CHECK-7:      Vtable for 'Test3::C' (14 entries).
+// CHECK-7-NEXT:    0 | vbase_offset (32)
+// CHECK-7-NEXT:    1 | vbase_offset (16)
+// CHECK-7-NEXT:    2 | offset_to_top (0)
+// CHECK-7-NEXT:    3 | Test3::C RTTI
+// CHECK-7-NEXT:        -- (Test3::C, 0) vtable address --
+// CHECK-7-NEXT:    4 | void Test3::C::f()
+// CHECK-7-NEXT:    5 | vcall_offset (-16)
+// CHECK-7-NEXT:    6 | offset_to_top (-16)
+// CHECK-7-NEXT:    7 | Test3::C RTTI
+// CHECK-7-NEXT:        -- (Test3::V1, 16) vtable address --
+// CHECK-7-NEXT:    8 | void Test3::C::f()
+// CHECK-7-NEXT:        [this adjustment: 0 non-virtual, -24 vcall offset offset]
+// CHECK-7-NEXT:    9 | vcall_offset (-32)
+// CHECK-7-NEXT:   10 | vbase_offset (-16)
+// CHECK-7-NEXT:   11 | offset_to_top (-32)
+// CHECK-7-NEXT:   12 | Test3::C RTTI
+// CHECK-7-NEXT:        -- (Test3::V2, 32) vtable address --
+// CHECK-7-NEXT:   13 | void Test3::C::f()
+// CHECK-7-NEXT:        [this adjustment: 0 non-virtual, -32 vcall offset offset]
 
-// CHECK:      Construction vtable for ('Test3::V2', 32) in 'Test3::C' (9 entries).
-// CHECK-NEXT:    0 | vcall_offset (0)
-// CHECK-NEXT:    1 | vbase_offset (-16)
-// CHECK-NEXT:    2 | offset_to_top (0)
-// CHECK-NEXT:    3 | Test3::V2 RTTI
-// CHECK-NEXT:        -- (Test3::V2, 32) vtable address --
-// CHECK-NEXT:    4 | void Test3::V2::f()
-// CHECK-NEXT:    5 | vcall_offset (16)
-// CHECK-NEXT:    6 | offset_to_top (16)
-// CHECK-NEXT:    7 | Test3::V2 RTTI
-// CHECK-NEXT:        -- (Test3::V1, 16) vtable address --
-// CHECK-NEXT:    8 | void Test3::V2::f()
-// CHECK-NEXT:        [this adjustment: 0 non-virtual, -24 vcall offset offset]
+// CHECK-8:      Construction vtable for ('Test3::V2', 32) in 'Test3::C' (9 entries).
+// CHECK-8-NEXT:    0 | vcall_offset (0)
+// CHECK-8-NEXT:    1 | vbase_offset (-16)
+// CHECK-8-NEXT:    2 | offset_to_top (0)
+// CHECK-8-NEXT:    3 | Test3::V2 RTTI
+// CHECK-8-NEXT:        -- (Test3::V2, 32) vtable address --
+// CHECK-8-NEXT:    4 | void Test3::V2::f()
+// CHECK-8-NEXT:    5 | vcall_offset (16)
+// CHECK-8-NEXT:    6 | offset_to_top (16)
+// CHECK-8-NEXT:    7 | Test3::V2 RTTI
+// CHECK-8-NEXT:        -- (Test3::V1, 16) vtable address --
+// CHECK-8-NEXT:    8 | void Test3::V2::f()
+// CHECK-8-NEXT:        [this adjustment: 0 non-virtual, -24 vcall offset offset]
 struct C : virtual V1, virtual V2 {
   int c;
   virtual void f();
@@ -245,63 +256,63 @@
   int b;
 };
 
-// CHECK:      Vtable for 'Test3::D' (15 entries).
-// CHECK-NEXT:    0 | vbase_offset (40)
-// CHECK-NEXT:    1 | vbase_offset (24)
-// CHECK-NEXT:    2 | offset_to_top (0)
-// CHECK-NEXT:    3 | Test3::D RTTI
-// CHECK-NEXT:        -- (Test3::C, 0) vtable address --
-// CHECK-NEXT:        -- (Test3::D, 0) vtable address --
-// CHECK-NEXT:    4 | void Test3::C::f()
-// CHECK-NEXT:    5 | void Test3::D::g()
-// CHECK-NEXT:    6 | vcall_offset (-24)
-// CHECK-NEXT:    7 | offset_to_top (-24)
-// CHECK-NEXT:    8 | Test3::D RTTI
-// CHECK-NEXT:        -- (Test3::V1, 24) vtable address --
-// CHECK-NEXT:    9 | void Test3::C::f()
-// CHECK-NEXT:        [this adjustment: 0 non-virtual, -24 vcall offset offset]
-// CHECK-NEXT:   10 | vcall_offset (-40)
-// CHECK-NEXT:   11 | vbase_offset (-16)
-// CHECK-NEXT:   12 | offset_to_top (-40)
-// CHECK-NEXT:   13 | Test3::D RTTI
-// CHECK-NEXT:        -- (Test3::V2, 40) vtable address --
-// CHECK-NEXT:   14 | void Test3::C::f()
-// CHECK-NEXT:        [this adjustment: 0 non-virtual, -32 vcall offset offset]
+// CHECK-9:      Vtable for 'Test3::D' (15 entries).
+// CHECK-9-NEXT:    0 | vbase_offset (40)
+// CHECK-9-NEXT:    1 | vbase_offset (24)
+// CHECK-9-NEXT:    2 | offset_to_top (0)
+// CHECK-9-NEXT:    3 | Test3::D RTTI
+// CHECK-9-NEXT:        -- (Test3::C, 0) vtable address --
+// CHECK-9-NEXT:        -- (Test3::D, 0) vtable address --
+// CHECK-9-NEXT:    4 | void Test3::C::f()
+// CHECK-9-NEXT:    5 | void Test3::D::g()
+// CHECK-9-NEXT:    6 | vcall_offset (-24)
+// CHECK-9-NEXT:    7 | offset_to_top (-24)
+// CHECK-9-NEXT:    8 | Test3::D RTTI
+// CHECK-9-NEXT:        -- (Test3::V1, 24) vtable address --
+// CHECK-9-NEXT:    9 | void Test3::C::f()
+// CHECK-9-NEXT:        [this adjustment: 0 non-virtual, -24 vcall offset offset]
+// CHECK-9-NEXT:   10 | vcall_offset (-40)
+// CHECK-9-NEXT:   11 | vbase_offset (-16)
+// CHECK-9-NEXT:   12 | offset_to_top (-40)
+// CHECK-9-NEXT:   13 | Test3::D RTTI
+// CHECK-9-NEXT:        -- (Test3::V2, 40) vtable address --
+// CHECK-9-NEXT:   14 | void Test3::C::f()
+// CHECK-9-NEXT:        [this adjustment: 0 non-virtual, -32 vcall offset offset]
 
-// CHECK:      Construction vtable for ('Test3::C', 0) in 'Test3::D' (14 entries).
-// CHECK-NEXT:    0 | vbase_offset (40)
-// CHECK-NEXT:    1 | vbase_offset (24)
-// CHECK-NEXT:    2 | offset_to_top (0)
-// CHECK-NEXT:    3 | Test3::C RTTI
-// CHECK-NEXT:        -- (Test3::C, 0) vtable address --
-// CHECK-NEXT:    4 | void Test3::C::f()
-// CHECK-NEXT:    5 | vcall_offset (-24)
-// CHECK-NEXT:    6 | offset_to_top (-24)
-// CHECK-NEXT:    7 | Test3::C RTTI
-// CHECK-NEXT:        -- (Test3::V1, 24) vtable address --
-// CHECK-NEXT:    8 | void Test3::C::f()
-// CHECK-NEXT:        [this adjustment: 0 non-virtual, -24 vcall offset offset]
-// CHECK-NEXT:    9 | vcall_offset (-40)
-// CHECK-NEXT:   10 | vbase_offset (-16)
-// CHECK-NEXT:   11 | offset_to_top (-40)
-// CHECK-NEXT:   12 | Test3::C RTTI
-// CHECK-NEXT:        -- (Test3::V2, 40) vtable address --
-// CHECK-NEXT:   13 | void Test3::C::f()
-// CHECK-NEXT:        [this adjustment: 0 non-virtual, -32 vcall offset offset]
+// CHECK-10:      Construction vtable for ('Test3::C', 0) in 'Test3::D' (14 entries).
+// CHECK-10-NEXT:    0 | vbase_offset (40)
+// CHECK-10-NEXT:    1 | vbase_offset (24)
+// CHECK-10-NEXT:    2 | offset_to_top (0)
+// CHECK-10-NEXT:    3 | Test3::C RTTI
+// CHECK-10-NEXT:        -- (Test3::C, 0) vtable address --
+// CHECK-10-NEXT:    4 | void Test3::C::f()
+// CHECK-10-NEXT:    5 | vcall_offset (-24)
+// CHECK-10-NEXT:    6 | offset_to_top (-24)
+// CHECK-10-NEXT:    7 | Test3::C RTTI
+// CHECK-10-NEXT:        -- (Test3::V1, 24) vtable address --
+// CHECK-10-NEXT:    8 | void Test3::C::f()
+// CHECK-10-NEXT:        [this adjustment: 0 non-virtual, -24 vcall offset offset]
+// CHECK-10-NEXT:    9 | vcall_offset (-40)
+// CHECK-10-NEXT:   10 | vbase_offset (-16)
+// CHECK-10-NEXT:   11 | offset_to_top (-40)
+// CHECK-10-NEXT:   12 | Test3::C RTTI
+// CHECK-10-NEXT:        -- (Test3::V2, 40) vtable address --
+// CHECK-10-NEXT:   13 | void Test3::C::f()
+// CHECK-10-NEXT:        [this adjustment: 0 non-virtual, -32 vcall offset offset]
 
-// CHECK:      Construction vtable for ('Test3::V2', 40) in 'Test3::D' (9 entries).
-// CHECK-NEXT:    0 | vcall_offset (0)
-// CHECK-NEXT:    1 | vbase_offset (-16)
-// CHECK-NEXT:    2 | offset_to_top (0)
-// CHECK-NEXT:    3 | Test3::V2 RTTI
-// CHECK-NEXT:        -- (Test3::V2, 40) vtable address --
-// CHECK-NEXT:    4 | void Test3::V2::f()
-// CHECK-NEXT:    5 | vcall_offset (16)
-// CHECK-NEXT:    6 | offset_to_top (16)
-// CHECK-NEXT:    7 | Test3::V2 RTTI
-// CHECK-NEXT:        -- (Test3::V1, 24) vtable address --
-// CHECK-NEXT:    8 | void Test3::V2::f()
-// CHECK-NEXT:        [this adjustment: 0 non-virtual, -24 vcall offset offset]
+// CHECK-11:      Construction vtable for ('Test3::V2', 40) in 'Test3::D' (9 entries).
+// CHECK-11-NEXT:    0 | vcall_offset (0)
+// CHECK-11-NEXT:    1 | vbase_offset (-16)
+// CHECK-11-NEXT:    2 | offset_to_top (0)
+// CHECK-11-NEXT:    3 | Test3::V2 RTTI
+// CHECK-11-NEXT:        -- (Test3::V2, 40) vtable address --
+// CHECK-11-NEXT:    4 | void Test3::V2::f()
+// CHECK-11-NEXT:    5 | vcall_offset (16)
+// CHECK-11-NEXT:    6 | offset_to_top (16)
+// CHECK-11-NEXT:    7 | Test3::V2 RTTI
+// CHECK-11-NEXT:        -- (Test3::V1, 24) vtable address --
+// CHECK-11-NEXT:    8 | void Test3::V2::f()
+// CHECK-11-NEXT:        [this adjustment: 0 non-virtual, -24 vcall offset offset]
 struct D : B, C {
   int d;
   virtual void g();
