r202978 - Style fix: replace "1 entries" with "1 entry" in the vftable layout dumping code
Timur Iskhodzhanov
timurrrr at google.com
Wed Mar 5 05:54:07 PST 2014
Author: timurrrr
Date: Wed Mar 5 07:54:07 2014
New Revision: 202978
URL: http://llvm.org/viewvc/llvm-project?rev=202978&view=rev
Log:
Style fix: replace "1 entries" with "1 entry" in the vftable layout dumping code
Modified:
cfe/trunk/lib/AST/VTableBuilder.cpp
cfe/trunk/test/CodeGenCXX/microsoft-abi-vtables-multiple-nonvirtual-inheritance.cpp
cfe/trunk/test/CodeGenCXX/microsoft-abi-vtables-single-inheritance.cpp
cfe/trunk/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance-vtordisps.cpp
cfe/trunk/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp
Modified: cfe/trunk/lib/AST/VTableBuilder.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/VTableBuilder.cpp?rev=202978&r1=202977&r2=202978&view=diff
==============================================================================
--- cfe/trunk/lib/AST/VTableBuilder.cpp (original)
+++ cfe/trunk/lib/AST/VTableBuilder.cpp Wed Mar 5 07:54:07 2014
@@ -3067,7 +3067,8 @@ void VFTableBuilder::dumpLayout(raw_ostr
PrintBasePath(WhichVFPtr.PathToBaseWithVPtr, Out);
Out << "'";
MostDerivedClass->printQualifiedName(Out);
- Out << "' (" << Components.size() << " entries).\n";
+ Out << "' (" << Components.size()
+ << (Components.size() == 1 ? " entry" : " entries") << ").\n";
for (unsigned I = 0, E = Components.size(); I != E; ++I) {
Out << llvm::format("%4d | ", I);
@@ -3412,7 +3413,8 @@ void MicrosoftVTableContext::dumpMethodL
Out << "VFTable indices for ";
Out << "'";
RD->printQualifiedName(Out);
- Out << "' (" << IndicesMap.size() << " entries).\n";
+ Out << "' (" << IndicesMap.size()
+ << (IndicesMap.size() == 1 ? " entry" : " entries") << ").\n";
CharUnits LastVFPtrOffset = CharUnits::fromQuantity(-1);
uint64_t LastVBIndex = 0;
Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-vtables-multiple-nonvirtual-inheritance.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-vtables-multiple-nonvirtual-inheritance.cpp?rev=202978&r1=202977&r2=202978&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-vtables-multiple-nonvirtual-inheritance.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-vtables-multiple-nonvirtual-inheritance.cpp Wed Mar 5 07:54:07 2014
@@ -48,14 +48,14 @@ struct C {
namespace no_thunks {
struct Test1: A, B {
- // NO-THUNKS-Test1: VFTable for 'A' in 'no_thunks::Test1' (1 entries)
+ // NO-THUNKS-Test1: VFTable for 'A' in 'no_thunks::Test1' (1 entry)
// NO-THUNKS-Test1-NEXT: 0 | void no_thunks::Test1::f()
// NO-THUNKS-Test1: VFTable for 'B' in 'no_thunks::Test1' (2 entries)
// NO-THUNKS-Test1-NEXT: 0 | void B::g()
// NO-THUNKS-Test1-NEXT: 1 | void B::h()
- // NO-THUNKS-Test1: VFTable indices for 'no_thunks::Test1' (1 entries)
+ // NO-THUNKS-Test1: VFTable indices for 'no_thunks::Test1' (1 entry)
// NO-THUNKS-Test1-NEXT: 0 | void no_thunks::Test1::f()
// MANGLING-DAG: @"\01??_7Test1 at no_thunks@@6BA@@@"
@@ -68,14 +68,14 @@ struct Test1: A, B {
Test1 t1;
struct Test2: A, B {
- // NO-THUNKS-Test2: VFTable for 'A' in 'no_thunks::Test2' (1 entries)
+ // NO-THUNKS-Test2: VFTable for 'A' in 'no_thunks::Test2' (1 entry)
// NO-THUNKS-Test2-NEXT: 0 | void A::f()
// NO-THUNKS-Test2: VFTable for 'B' in 'no_thunks::Test2' (2 entries)
// NO-THUNKS-Test2-NEXT: 0 | void no_thunks::Test2::g()
// NO-THUNKS-Test2-NEXT: 1 | void B::h()
- // NO-THUNKS-Test2: VFTable indices for 'no_thunks::Test2' (1 entries).
+ // NO-THUNKS-Test2: VFTable indices for 'no_thunks::Test2' (1 entry).
// NO-THUNKS-Test2-NEXT: via vfptr at offset 4
// NO-THUNKS-Test2-NEXT: 0 | void no_thunks::Test2::g()
@@ -95,7 +95,7 @@ struct Test3: A, B {
// NO-THUNKS-Test3-NEXT: 0 | void B::g()
// NO-THUNKS-Test3-NEXT: 1 | void B::h()
- // NO-THUNKS-Test3: VFTable indices for 'no_thunks::Test3' (1 entries).
+ // NO-THUNKS-Test3: VFTable indices for 'no_thunks::Test3' (1 entry).
// NO-THUNKS-Test3-NEXT: 1 | void no_thunks::Test3::i()
// Only adds a new method.
@@ -106,10 +106,10 @@ Test3 t3;
// Only the right base has a vftable, so it's laid out before the left one!
struct Test4 : Empty, A {
- // NO-THUNKS-Test4: VFTable for 'A' in 'no_thunks::Test4' (1 entries)
+ // NO-THUNKS-Test4: VFTable for 'A' in 'no_thunks::Test4' (1 entry)
// NO-THUNKS-Test4-NEXT: 0 | void no_thunks::Test4::f()
- // NO-THUNKS-Test4: VFTable indices for 'no_thunks::Test4' (1 entries).
+ // NO-THUNKS-Test4: VFTable indices for 'no_thunks::Test4' (1 entry).
// NO-THUNKS-Test4-NEXT: 0 | void no_thunks::Test4::f()
// MANGLING-DAG: @"\01??_7Test4 at no_thunks@@6B@"
@@ -129,14 +129,14 @@ struct Test5: Test1, Test2 {
// NO-THUNKS-Test5-NEXT: 0 | void B::g()
// NO-THUNKS-Test5-NEXT: 1 | void B::h()
- // NO-THUNKS-Test5: VFTable for 'A' in 'no_thunks::Test2' in 'no_thunks::Test5' (1 entries)
+ // NO-THUNKS-Test5: VFTable for 'A' in 'no_thunks::Test2' in 'no_thunks::Test5' (1 entry)
// NO-THUNKS-Test5-NEXT: 0 | void A::f()
// NO-THUNKS-Test5: VFTable for 'B' in 'no_thunks::Test2' in 'no_thunks::Test5' (2 entries)
// NO-THUNKS-Test5-NEXT: 0 | void no_thunks::Test2::g()
// NO-THUNKS-Test5-NEXT: 1 | void B::h()
- // NO-THUNKS-Test5: VFTable indices for 'no_thunks::Test5' (1 entries).
+ // NO-THUNKS-Test5: VFTable indices for 'no_thunks::Test5' (1 entry).
// NO-THUNKS-Test5-NEXT: 1 | void no_thunks::Test5::z()
// MANGLING-DAG: @"\01??_7Test5 at no_thunks@@6BA@@Test1 at 1@@"
@@ -150,14 +150,14 @@ struct Test5: Test1, Test2 {
Test5 t5;
struct Test6: Test1 {
- // NO-THUNKS-Test6: VFTable for 'A' in 'no_thunks::Test1' in 'no_thunks::Test6' (1 entries).
+ // NO-THUNKS-Test6: VFTable for 'A' in 'no_thunks::Test1' in 'no_thunks::Test6' (1 entry).
// NO-THUNKS-Test6-NEXT: 0 | void no_thunks::Test6::f()
// NO-THUNKS-Test6: VFTable for 'B' in 'no_thunks::Test1' in 'no_thunks::Test6' (2 entries).
// NO-THUNKS-Test6-NEXT: 0 | void B::g()
// NO-THUNKS-Test6-NEXT: 1 | void B::h()
- // NO-THUNKS-Test6: VFTable indices for 'no_thunks::Test6' (1 entries).
+ // NO-THUNKS-Test6: VFTable indices for 'no_thunks::Test6' (1 entry).
// NO-THUNKS-Test6-NEXT: 0 | void no_thunks::Test6::f()
// MANGLING-DAG: @"\01??_7Test6 at no_thunks@@6BA@@@"
@@ -170,14 +170,14 @@ struct Test6: Test1 {
Test6 t6;
struct Test7: Test2 {
- // NO-THUNKS-Test7: VFTable for 'A' in 'no_thunks::Test2' in 'no_thunks::Test7' (1 entries).
+ // NO-THUNKS-Test7: VFTable for 'A' in 'no_thunks::Test2' in 'no_thunks::Test7' (1 entry).
// NO-THUNKS-Test7-NEXT: 0 | void A::f()
// NO-THUNKS-Test7: VFTable for 'B' in 'no_thunks::Test2' in 'no_thunks::Test7' (2 entries).
// NO-THUNKS-Test7-NEXT: 0 | void no_thunks::Test7::g()
// NO-THUNKS-Test7-NEXT: 1 | void B::h()
- // NO-THUNKS-Test7: VFTable indices for 'no_thunks::Test7' (1 entries).
+ // NO-THUNKS-Test7: VFTable indices for 'no_thunks::Test7' (1 entry).
// NO-THUNKS-Test7-NEXT: via vfptr at offset 4
// NO-THUNKS-Test7-NEXT: 0 | void no_thunks::Test7::g()
@@ -196,7 +196,7 @@ struct Test8: Test3 {
// NO-THUNKS-Test8-NEXT: 0 | void no_thunks::Test8::g()
// NO-THUNKS-Test8-NEXT: 1 | void B::h()
- // NO-THUNKS-Test8: VFTable indices for 'no_thunks::Test8' (1 entries).
+ // NO-THUNKS-Test8: VFTable indices for 'no_thunks::Test8' (1 entry).
// NO-THUNKS-Test8-NEXT: via vfptr at offset 4
// NO-THUNKS-Test8-NEXT: 0 | void no_thunks::Test8::g()
@@ -220,7 +220,7 @@ struct Test9: A, D {
// NO-THUNKS-Test9-NEXT: 0 | void A::f()
// NO-THUNKS-Test9-NEXT: 1 | void no_thunks::D::g()
- // NO-THUNKS-Test9: VFTable indices for 'no_thunks::Test9' (1 entries).
+ // NO-THUNKS-Test9: VFTable indices for 'no_thunks::Test9' (1 entry).
// NO-THUNKS-Test9-NEXT: 1 | void no_thunks::Test9::h()
// MANGLING-DAG: @"\01??_7Test9 at no_thunks@@6BA@@@"
@@ -240,14 +240,14 @@ struct D {
struct Test1: A, D {
- // PURE-VIRTUAL-Test1: VFTable for 'A' in 'pure_virtual::Test1' (1 entries)
+ // PURE-VIRTUAL-Test1: VFTable for 'A' in 'pure_virtual::Test1' (1 entry)
// PURE-VIRTUAL-Test1-NEXT: 0 | void A::f()
// PURE-VIRTUAL-Test1: VFTable for 'pure_virtual::D' in 'pure_virtual::Test1' (2 entries)
// PURE-VIRTUAL-Test1-NEXT: 0 | void pure_virtual::Test1::g()
// PURE-VIRTUAL-Test1-NEXT: 1 | void pure_virtual::D::h()
- // PURE-VIRTUAL-Test1: VFTable indices for 'pure_virtual::Test1' (1 entries).
+ // PURE-VIRTUAL-Test1: VFTable indices for 'pure_virtual::Test1' (1 entry).
// PURE-VIRTUAL-Test1-NEXT: via vfptr at offset 4
// PURE-VIRTUAL-Test1-NEXT: 0 | void pure_virtual::Test1::g()
@@ -270,14 +270,14 @@ struct Test1 : B, C {
// THIS-THUNKS-Test1-NEXT: 0 | void this_adjustment::Test1::g()
// THIS-THUNKS-Test1-NEXT: 1 | void B::h()
- // THIS-THUNKS-Test1: VFTable for 'C' in 'this_adjustment::Test1' (1 entries).
+ // THIS-THUNKS-Test1: VFTable for 'C' in 'this_adjustment::Test1' (1 entry).
// THIS-THUNKS-Test1-NEXT: 0 | void this_adjustment::Test1::g()
// THIS-THUNKS-Test1-NEXT: [this adjustment: -4 non-virtual]
// THIS-THUNKS-Test1: Thunks for 'void this_adjustment::Test1::g()' (1 entry).
// THIS-THUNKS-Test1-NEXT: 0 | [this adjustment: -4 non-virtual]
- // THIS-THUNKS-Test1: VFTable indices for 'this_adjustment::Test1' (1 entries).
+ // THIS-THUNKS-Test1: VFTable indices for 'this_adjustment::Test1' (1 entry).
// THIS-THUNKS-Test1-NEXT: 0 | void this_adjustment::Test1::g()
// MANGLING-DAG: @"\01??_7Test1 at this_adjustment@@6BB@@@"
@@ -289,21 +289,21 @@ struct Test1 : B, C {
Test1 t1;
struct Test2 : A, B, C {
- // THIS-THUNKS-Test2: VFTable for 'A' in 'this_adjustment::Test2' (1 entries).
+ // THIS-THUNKS-Test2: VFTable for 'A' in 'this_adjustment::Test2' (1 entry).
// THIS-THUNKS-Test2-NEXT: 0 | void A::f()
// THIS-THUNKS-Test2: VFTable for 'B' in 'this_adjustment::Test2' (2 entries).
// THIS-THUNKS-Test2-NEXT: 0 | void this_adjustment::Test2::g()
// THIS-THUNKS-Test2-NEXT: 1 | void B::h()
- // THIS-THUNKS-Test2: VFTable for 'C' in 'this_adjustment::Test2' (1 entries).
+ // THIS-THUNKS-Test2: VFTable for 'C' in 'this_adjustment::Test2' (1 entry).
// THIS-THUNKS-Test2-NEXT: 0 | void this_adjustment::Test2::g()
// THIS-THUNKS-Test2-NEXT: [this adjustment: -4 non-virtual]
// THIS-THUNKS-Test2: Thunks for 'void this_adjustment::Test2::g()' (1 entry).
// THIS-THUNKS-Test2-NEXT: 0 | [this adjustment: -4 non-virtual]
- // THIS-THUNKS-Test2: VFTable indices for 'this_adjustment::Test2' (1 entries).
+ // THIS-THUNKS-Test2: VFTable indices for 'this_adjustment::Test2' (1 entry).
// THIS-THUNKS-Test2-NEXT: via vfptr at offset 4
// THIS-THUNKS-Test2-NEXT: 0 | void this_adjustment::Test2::g()
@@ -318,14 +318,14 @@ Test2 t2;
// Overrides methods of two bases at the same time, thus needing thunks.
struct Test3: no_thunks::Test1, no_thunks::Test2 {
- // THIS-THUNKS-Test3: VFTable for 'A' in 'no_thunks::Test1' in 'this_adjustment::Test3' (1 entries).
+ // THIS-THUNKS-Test3: VFTable for 'A' in 'no_thunks::Test1' in 'this_adjustment::Test3' (1 entry).
// THIS-THUNKS-Test3-NEXT: 0 | void this_adjustment::Test3::f()
// THIS-THUNKS-Test3: VFTable for 'B' in 'no_thunks::Test1' in 'this_adjustment::Test3' (2 entries).
// THIS-THUNKS-Test3-NEXT: 0 | void this_adjustment::Test3::g()
// THIS-THUNKS-Test3-NEXT: 1 | void B::h()
- // THIS-THUNKS-Test3: VFTable for 'A' in 'no_thunks::Test2' in 'this_adjustment::Test3' (1 entries).
+ // THIS-THUNKS-Test3: VFTable for 'A' in 'no_thunks::Test2' in 'this_adjustment::Test3' (1 entry).
// THIS-THUNKS-Test3-NEXT: 0 | void this_adjustment::Test3::f()
// THIS-THUNKS-Test3-NEXT: [this adjustment: -8 non-virtual]
@@ -368,14 +368,14 @@ struct Test3 : Test1, Test2 {
// VDTOR-THUNKS-Test3-NEXT: 0 | vdtor::Test3::~Test3() [scalar deleting]
// VDTOR-THUNKS-Test3-NEXT: 1 | void vdtor::Test1::z1()
- // VDTOR-THUNKS-Test3: VFTable for 'vdtor::Test2' in 'vdtor::Test3' (1 entries).
+ // VDTOR-THUNKS-Test3: VFTable for 'vdtor::Test2' in 'vdtor::Test3' (1 entry).
// VDTOR-THUNKS-Test3-NEXT: 0 | vdtor::Test3::~Test3() [scalar deleting]
// VDTOR-THUNKS-Test3-NEXT: [this adjustment: -4 non-virtual]
// VDTOR-THUNKS-Test3: Thunks for 'vdtor::Test3::~Test3()' (1 entry).
// VDTOR-THUNKS-Test3-NEXT: 0 | [this adjustment: -4 non-virtual]
- // VDTOR-THUNKS-Test3: VFTable indices for 'vdtor::Test3' (1 entries).
+ // VDTOR-THUNKS-Test3: VFTable indices for 'vdtor::Test3' (1 entry).
// VDTOR-THUNKS-Test3-NEXT: 0 | vdtor::Test3::~Test3() [scalar deleting]
virtual ~Test3();
};
@@ -390,17 +390,17 @@ struct Test4 {
struct Test5 : Test4, Test2 {
// Implicit virtual dtor here!
- // VDTOR-THUNKS-Test5: VFTable for 'vdtor::Test4' in 'vdtor::Test5' (1 entries).
+ // VDTOR-THUNKS-Test5: VFTable for 'vdtor::Test4' in 'vdtor::Test5' (1 entry).
// VDTOR-THUNKS-Test5-NEXT: 0 | void vdtor::Test4::z4()
- // VDTOR-THUNKS-Test5: VFTable for 'vdtor::Test2' in 'vdtor::Test5' (1 entries).
+ // VDTOR-THUNKS-Test5: VFTable for 'vdtor::Test2' in 'vdtor::Test5' (1 entry).
// VDTOR-THUNKS-Test5-NEXT: 0 | vdtor::Test5::~Test5() [scalar deleting]
// VDTOR-THUNKS-Test5-NEXT: [this adjustment: -4 non-virtual]
// VDTOR-THUNKS-Test5: Thunks for 'vdtor::Test5::~Test5()' (1 entry).
// VDTOR-THUNKS-Test5-NEXT: 0 | [this adjustment: -4 non-virtual]
- // VDTOR-THUNKS-Test5: VFTable indices for 'vdtor::Test5' (1 entries).
+ // VDTOR-THUNKS-Test5: VFTable indices for 'vdtor::Test5' (1 entry).
// VDTOR-THUNKS-Test5-NEXT: -- accessible via vfptr at offset 4 --
// VDTOR-THUNKS-Test5-NEXT: 0 | vdtor::Test5::~Test5() [scalar deleting]
};
@@ -410,17 +410,17 @@ Test5 t5;
struct Test6 : Test4, Test2 {
// Implicit virtual dtor here!
- // VDTOR-THUNKS-Test6: VFTable for 'vdtor::Test4' in 'vdtor::Test6' (1 entries).
+ // VDTOR-THUNKS-Test6: VFTable for 'vdtor::Test4' in 'vdtor::Test6' (1 entry).
// VDTOR-THUNKS-Test6-NEXT: 0 | void vdtor::Test4::z4()
- // VDTOR-THUNKS-Test6: VFTable for 'vdtor::Test2' in 'vdtor::Test6' (1 entries).
+ // VDTOR-THUNKS-Test6: VFTable for 'vdtor::Test2' in 'vdtor::Test6' (1 entry).
// VDTOR-THUNKS-Test6-NEXT: 0 | vdtor::Test6::~Test6() [scalar deleting]
// VDTOR-THUNKS-Test6-NEXT: [this adjustment: -4 non-virtual]
// VDTOR-THUNKS-Test6: Thunks for 'vdtor::Test6::~Test6()' (1 entry).
// VDTOR-THUNKS-Test6-NEXT: 0 | [this adjustment: -4 non-virtual]
- // VDTOR-THUNKS-Test6: VFTable indices for 'vdtor::Test6' (1 entries).
+ // VDTOR-THUNKS-Test6: VFTable indices for 'vdtor::Test6' (1 entry).
// VDTOR-THUNKS-Test6-NEXT: -- accessible via vfptr at offset 4 --
// VDTOR-THUNKS-Test6-NEXT: 0 | vdtor::Test6::~Test6() [scalar deleting]
};
@@ -428,17 +428,17 @@ struct Test6 : Test4, Test2 {
Test6 t6;
struct Test7 : Test5 {
- // VDTOR-THUNKS-Test7: VFTable for 'vdtor::Test4' in 'vdtor::Test5' in 'vdtor::Test7' (1 entries).
+ // VDTOR-THUNKS-Test7: VFTable for 'vdtor::Test4' in 'vdtor::Test5' in 'vdtor::Test7' (1 entry).
// VDTOR-THUNKS-Test7-NEXT: 0 | void vdtor::Test4::z4()
- // VDTOR-THUNKS-Test7: VFTable for 'vdtor::Test2' in 'vdtor::Test5' in 'vdtor::Test7' (1 entries).
+ // VDTOR-THUNKS-Test7: VFTable for 'vdtor::Test2' in 'vdtor::Test5' in 'vdtor::Test7' (1 entry).
// VDTOR-THUNKS-Test7-NEXT: 0 | vdtor::Test7::~Test7() [scalar deleting]
// VDTOR-THUNKS-Test7-NEXT: [this adjustment: -4 non-virtual]
// VDTOR-THUNKS-Test7: Thunks for 'vdtor::Test7::~Test7()' (1 entry).
// VDTOR-THUNKS-Test7-NEXT: 0 | [this adjustment: -4 non-virtual]
- // VDTOR-THUNKS-Test7: VFTable indices for 'vdtor::Test7' (1 entries).
+ // VDTOR-THUNKS-Test7: VFTable indices for 'vdtor::Test7' (1 entry).
// VDTOR-THUNKS-Test7-NEXT: -- accessible via vfptr at offset 4 --
// VDTOR-THUNKS-Test7-NEXT: 0 | vdtor::Test7::~Test7() [scalar deleting]
virtual ~Test7();
@@ -462,7 +462,7 @@ struct Test1 : Ret1 {
// RET-THUNKS-Test1-NEXT: 1 | void return_adjustment::Ret1::z()
// RET-THUNKS-Test1-NEXT: 2 | this_adjustment::Test1 *return_adjustment::Test1::foo()
- // RET-THUNKS-Test1: VFTable indices for 'return_adjustment::Test1' (1 entries).
+ // RET-THUNKS-Test1: VFTable indices for 'return_adjustment::Test1' (1 entry).
// RET-THUNKS-Test1-NEXT: 2 | this_adjustment::Test1 *return_adjustment::Test1::foo()
// MANGLING-DAG: @"\01??_7Test1 at return_adjustment@@6B@"
@@ -483,7 +483,7 @@ struct Test2 : Test1 {
// RET-THUNKS-Test2-NEXT: [return adjustment: 4 non-virtual]
// RET-THUNKS-Test2-NEXT: 3 | return_adjustment::Ret2 *return_adjustment::Test2::foo()
- // RET-THUNKS-Test2: VFTable indices for 'return_adjustment::Test2' (1 entries).
+ // RET-THUNKS-Test2: VFTable indices for 'return_adjustment::Test2' (1 entry).
// RET-THUNKS-Test2-NEXT: 3 | return_adjustment::Ret2 *return_adjustment::Test2::foo()
virtual Ret2* foo();
@@ -502,7 +502,7 @@ struct Test3: B, Ret1 {
// RET-THUNKS-Test3-NEXT: 1 | void return_adjustment::Ret1::z()
// RET-THUNKS-Test3-NEXT: 2 | this_adjustment::Test1 *return_adjustment::Test3::foo()
- // RET-THUNKS-Test3: VFTable indices for 'return_adjustment::Test3' (1 entries).
+ // RET-THUNKS-Test3: VFTable indices for 'return_adjustment::Test3' (1 entry).
// RET-THUNKS-Test3-NEXT: via vfptr at offset 4
// RET-THUNKS-Test3-NEXT: 2 | this_adjustment::Test1 *return_adjustment::Test3::foo()
@@ -524,7 +524,7 @@ struct Test4 : Test3 {
// RET-THUNKS-Test4-NEXT: [return adjustment: 4 non-virtual]
// RET-THUNKS-Test4-NEXT: 3 | return_adjustment::Ret2 *return_adjustment::Test4::foo()
- // RET-THUNKS-Test4: VFTable indices for 'return_adjustment::Test4' (1 entries).
+ // RET-THUNKS-Test4: VFTable indices for 'return_adjustment::Test4' (1 entry).
// RET-THUNKS-Test4-NEXT: -- accessible via vfptr at offset 4 --
// RET-THUNKS-Test4-NEXT: 3 | return_adjustment::Ret2 *return_adjustment::Test4::foo()
@@ -551,7 +551,7 @@ struct Test5 : Ret1, Test1 {
// RET-THUNKS-Test5-NEXT: 3 | return_adjustment::Ret2 *return_adjustment::Test5::foo()
// RET-THUNKS-Test5-NEXT: [this adjustment: -4 non-virtual]
- // RET-THUNKS-Test5: VFTable indices for 'return_adjustment::Test5' (1 entries).
+ // RET-THUNKS-Test5: VFTable indices for 'return_adjustment::Test5' (1 entry).
// RET-THUNKS-Test5-NEXT: 2 | return_adjustment::Ret2 *return_adjustment::Test5::foo()
virtual Ret2* foo();
@@ -570,7 +570,7 @@ struct Test6 : Test1 {
// RET-THUNKS-Test6-NEXT: 2 | return_adjustment::Ret3 *return_adjustment::Test6::foo()
// RET-THUNKS-Test6-NEXT: 3 | return_adjustment::Ret3 *return_adjustment::Test6::foo()
- // RET-THUNKS-Test6: VFTable indices for 'return_adjustment::Test6' (1 entries).
+ // RET-THUNKS-Test6: VFTable indices for 'return_adjustment::Test6' (1 entry).
// RET-THUNKS-Test6-NEXT: 3 | return_adjustment::Ret3 *return_adjustment::Test6::foo()
};
Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-vtables-single-inheritance.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-vtables-single-inheritance.cpp?rev=202978&r1=202977&r2=202978&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-vtables-single-inheritance.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-vtables-single-inheritance.cpp Wed Mar 5 07:54:07 2014
@@ -257,10 +257,10 @@ N n;
struct O { virtual A *f(); };
struct P : O { virtual B *f(); };
P p;
-// CHECK-O: VFTable for 'O' (1 entries)
+// CHECK-O: VFTable for 'O' (1 entry)
// CHECK-O-NEXT: 0 | A *O::f()
-// CHECK-O: VFTable for 'O' in 'P' (1 entries)
+// CHECK-O: VFTable for 'O' in 'P' (1 entry)
// CHECK-O-NEXT: 0 | B *P::f()
struct Q {
Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance-vtordisps.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance-vtordisps.cpp?rev=202978&r1=202977&r2=202978&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance-vtordisps.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance-vtordisps.cpp Wed Mar 5 07:54:07 2014
@@ -237,7 +237,7 @@ struct F : virtual Z, virtual D {
F f;
struct G : virtual simple::A {
- // VTABLE-EXTENDED-G: VFTable for 'extended::G' (1 entries).
+ // VTABLE-EXTENDED-G: VFTable for 'extended::G' (1 entry).
// VTABLE-EXTENDED-G-NEXT: 0 | void extended::G::g()
// VTABLE-EXTENDED-G: VFTable for 'V1' in 'simple::A' in 'extended::G' (2 entries).
Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp?rev=202978&r1=202977&r2=202978&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp Wed Mar 5 07:54:07 2014
@@ -42,7 +42,7 @@ struct C: virtual A {
// VTABLE-C-NEXT: 0 | void C::f()
// VTABLE-C-NEXT: 1 | void A::z()
- // VTABLE-C: VFTable indices for 'C' (1 entries)
+ // VTABLE-C: VFTable indices for 'C' (1 entry)
// VTABLE-C-NEXT: vbtable index 1, vfptr at offset 0
// VTABLE-C-NEXT: 0 | void C::f()
@@ -54,7 +54,7 @@ struct C: virtual A {
C c;
struct D: virtual A {
- // VTABLE-D: VFTable for 'D' (1 entries).
+ // VTABLE-D: VFTable for 'D' (1 entry).
// VTABLE-D-NEXT: 0 | void D::h()
// VTABLE-D: VFTable for 'A' in 'D' (2 entries).
@@ -101,17 +101,17 @@ Z z;
namespace Test2 {
struct X: virtual A, virtual B {
- // TEST2: VFTable for 'Test2::X' (1 entries).
+ // TEST2: VFTable for 'Test2::X' (1 entry).
// TEST2-NEXT: 0 | void Test2::X::h()
// TEST2: VFTable for 'A' in 'Test2::X' (2 entries).
// TEST2-NEXT: 0 | void A::f()
// TEST2-NEXT: 1 | void A::z()
- // TEST2: VFTable for 'B' in 'Test2::X' (1 entries).
+ // TEST2: VFTable for 'B' in 'Test2::X' (1 entry).
// TEST2-NEXT: 0 | void B::g()
- // TEST2: VFTable indices for 'Test2::X' (1 entries).
+ // TEST2: VFTable indices for 'Test2::X' (1 entry).
// TEST2-NEXT: 0 | void Test2::X::h()
// MANGLING-DAG: @"\01??_7X at Test2@@6B01@@"
@@ -176,7 +176,7 @@ struct X : A {
};
struct Y : virtual X {
- // TEST5: VFTable for 'Test5::Y' (1 entries).
+ // TEST5: VFTable for 'Test5::Y' (1 entry).
// TEST5-NEXT: 0 | void Test5::Y::h()
// TEST5: VFTable for 'A' in 'Test5::X' in 'Test5::Y' (3 entries).
@@ -184,7 +184,7 @@ struct Y : virtual X {
// TEST5-NEXT: 1 | void A::z()
// TEST5-NEXT: 2 | void Test5::X::g()
- // TEST5: VFTable indices for 'Test5::Y' (1 entries).
+ // TEST5: VFTable indices for 'Test5::Y' (1 entry).
// TEST5-NEXT: 0 | void Test5::Y::h()
// MANGLING-DAG: @"\01??_7Y at Test5@@6B01@@"
@@ -238,14 +238,14 @@ namespace Test8 {
// This is a typical diamond inheritance with a shared 'A' vbase.
struct X : D, C {
- // TEST8-X: VFTable for 'D' in 'Test8::X' (1 entries).
+ // TEST8-X: VFTable for 'D' in 'Test8::X' (1 entry).
// TEST8-X-NEXT: 0 | void D::h()
// TEST8-X: VFTable for 'A' in 'D' in 'Test8::X' (2 entries).
// TEST8-X-NEXT: 0 | void Test8::X::f()
// TEST8-X-NEXT: 1 | void A::z()
- // TEST8-X: VFTable indices for 'Test8::X' (1 entries).
+ // TEST8-X: VFTable indices for 'Test8::X' (1 entry).
// TEST8-X-NEXT: via vbtable index 1, vfptr at offset 0
// TEST8-X-NEXT: 0 | void Test8::X::f()
@@ -265,7 +265,7 @@ class Z : Y, C {
// TEST8-Z-NEXT: 0 | void Test8::Z::f()
// TEST8-Z-NEXT: 1 | void A::z()
- // TEST8-Z: VFTable indices for 'Test8::Z' (1 entries).
+ // TEST8-Z: VFTable indices for 'Test8::Z' (1 entry).
// TEST8-Z-NEXT: via vbtable index 1, vfptr at offset 0
// TEST8-Z-NEXT: 0 | void Test8::Z::f()
virtual void f();
@@ -278,14 +278,14 @@ namespace Test9 {
struct X : A { };
struct Y : virtual X {
- // TEST9-Y: VFTable for 'Test9::Y' (1 entries).
+ // TEST9-Y: VFTable for 'Test9::Y' (1 entry).
// TEST9-Y-NEXT: 0 | void Test9::Y::h()
// TEST9-Y: VFTable for 'A' in 'Test9::X' in 'Test9::Y' (2 entries).
// TEST9-Y-NEXT: 0 | void A::f()
// TEST9-Y-NEXT: 1 | void A::z()
- // TEST9-Y: VFTable indices for 'Test9::Y' (1 entries).
+ // TEST9-Y: VFTable indices for 'Test9::Y' (1 entry).
// TEST9-Y-NEXT: 0 | void Test9::Y::h()
// MANGLING-DAG: @"\01??_7Y at Test9@@6B01@@"
@@ -297,14 +297,14 @@ struct Y : virtual X {
Y y;
struct Z : Y, virtual B {
- // TEST9-Z: VFTable for 'Test9::Y' in 'Test9::Z' (1 entries).
+ // TEST9-Z: VFTable for 'Test9::Y' in 'Test9::Z' (1 entry).
// TEST9-Z-NEXT: 0 | void Test9::Y::h()
// TEST9-Z: VFTable for 'A' in 'Test9::X' in 'Test9::Y' in 'Test9::Z' (2 entries).
// TEST9-Z-NEXT: 0 | void A::f()
// TEST9-Z-NEXT: 1 | void A::z()
- // TEST9-Z: VFTable for 'B' in 'Test9::Z' (1 entries).
+ // TEST9-Z: VFTable for 'B' in 'Test9::Z' (1 entry).
// TEST9-Z-NEXT: 0 | void B::g()
// TEST9-Z-NOT: VFTable indices for 'Test9::Z'
@@ -318,17 +318,17 @@ struct Z : Y, virtual B {
Z z;
struct W : Z, D, virtual A, virtual B {
- // TEST9-W: VFTable for 'Test9::Y' in 'Test9::Z' in 'Test9::W' (1 entries).
+ // TEST9-W: VFTable for 'Test9::Y' in 'Test9::Z' in 'Test9::W' (1 entry).
// TEST9-W-NEXT: 0 | void Test9::Y::h()
// TEST9-W: VFTable for 'A' in 'Test9::X' in 'Test9::Y' in 'Test9::Z' in 'Test9::W' (2 entries).
// TEST9-W-NEXT: 0 | void A::f()
// TEST9-W-NEXT: 1 | void A::z()
- // TEST9-W: VFTable for 'B' in 'Test9::Z' in 'Test9::W' (1 entries).
+ // TEST9-W: VFTable for 'B' in 'Test9::Z' in 'Test9::W' (1 entry).
// TEST9-W-NEXT: 0 | void B::g()
- // TEST9-W: VFTable for 'D' in 'Test9::W' (1 entries).
+ // TEST9-W: VFTable for 'D' in 'Test9::W' (1 entry).
// TEST9-W-NEXT: 0 | void D::h()
// TEST9-W: VFTable for 'A' in 'D' in 'Test9::W' (2 entries).
@@ -352,17 +352,17 @@ struct W : Z, D, virtual A, virtual B {
W w;
struct T : Z, D, virtual A, virtual B {
- // TEST9-T: VFTable for 'Test9::Y' in 'Test9::Z' in 'Test9::T' (1 entries).
+ // TEST9-T: VFTable for 'Test9::Y' in 'Test9::Z' in 'Test9::T' (1 entry).
// TEST9-T-NEXT: 0 | void Test9::T::h()
// TEST9-T: VFTable for 'A' in 'Test9::X' in 'Test9::Y' in 'Test9::Z' in 'Test9::T' (2 entries).
// TEST9-T-NEXT: 0 | void Test9::T::f()
// TEST9-T-NEXT: 1 | void Test9::T::z()
- // TEST9-T: VFTable for 'B' in 'Test9::Z' in 'Test9::T' (1 entries).
+ // TEST9-T: VFTable for 'B' in 'Test9::Z' in 'Test9::T' (1 entry).
// TEST9-T-NEXT: 0 | void Test9::T::g()
- // TEST9-T: VFTable for 'D' in 'Test9::T' (1 entries).
+ // TEST9-T: VFTable for 'D' in 'Test9::T' (1 entry).
// TEST9-T-NEXT: 0 | void Test9::T::h()
// TEST9-T-NEXT: [this adjustment: -8 non-virtual]
@@ -412,7 +412,7 @@ struct X : virtual C, virtual A {
// TEST10-NEXT: 0 | void Test10::X::f()
// TEST10-NEXT: 1 | void A::z()
- // TEST10: VFTable indices for 'Test10::X' (1 entries).
+ // TEST10: VFTable indices for 'Test10::X' (1 entry).
// TEST10-NEXT: via vbtable index 1, vfptr at offset 0
// TEST10-NEXT: 0 | void Test10::X::f()
virtual void f();
@@ -465,7 +465,7 @@ struct W : Z, X {
};
struct U : virtual W {
- // VDTORS-U: VFTable for 'vdtors::Z' in 'vdtors::W' in 'vdtors::U' (1 entries).
+ // VDTORS-U: VFTable for 'vdtors::Z' in 'vdtors::W' in 'vdtors::U' (1 entry).
// VDTORS-U-NEXT: 0 | void vdtors::Z::z()
// VDTORS-U: VFTable for 'vdtors::X' in 'vdtors::W' in 'vdtors::U' (2 entries).
@@ -476,7 +476,7 @@ struct U : virtual W {
// VDTORS-U: Thunks for 'vdtors::W::~W()' (1 entry).
// VDTORS-U-NEXT: 0 | [this adjustment: -4 non-virtual]
- // VDTORS-U: VFTable indices for 'vdtors::U' (1 entries).
+ // VDTORS-U: VFTable indices for 'vdtors::U' (1 entry).
// VDTORS-U-NEXT: -- accessible via vbtable index 1, vfptr at offset 4 --
// VDTORS-U-NEXT: 0 | vdtors::U::~U() [scalar deleting]
virtual ~U();
@@ -485,7 +485,7 @@ struct U : virtual W {
U u;
struct V : virtual W {
- // VDTORS-V: VFTable for 'vdtors::Z' in 'vdtors::W' in 'vdtors::V' (1 entries).
+ // VDTORS-V: VFTable for 'vdtors::Z' in 'vdtors::W' in 'vdtors::V' (1 entry).
// VDTORS-V-NEXT: 0 | void vdtors::Z::z()
// VDTORS-V: VFTable for 'vdtors::X' in 'vdtors::W' in 'vdtors::V' (2 entries).
@@ -496,7 +496,7 @@ struct V : virtual W {
// VDTORS-V: Thunks for 'vdtors::W::~W()' (1 entry).
// VDTORS-V-NEXT: 0 | [this adjustment: -4 non-virtual]
- // VDTORS-V: VFTable indices for 'vdtors::V' (1 entries).
+ // VDTORS-V: VFTable indices for 'vdtors::V' (1 entry).
// VDTORS-V-NEXT: -- accessible via vbtable index 1, vfptr at offset 4 --
// VDTORS-V-NEXT: 0 | vdtors::V::~V() [scalar deleting]
};
@@ -540,7 +540,7 @@ struct W : Z {
// RET-W-NEXT: [return adjustment: vbase #1, 0 non-virtual]
// RET-W-NEXT: 1 | return_adjustment::X *return_adjustment::W::foo()
- // RET-W: VFTable indices for 'return_adjustment::W' (1 entries).
+ // RET-W: VFTable indices for 'return_adjustment::W' (1 entry).
// RET-W-NEXT: 1 | return_adjustment::X *return_adjustment::W::foo()
virtual X* foo();
@@ -556,7 +556,7 @@ struct T : W {
// RET-T-NEXT: [return adjustment: vbase #2, 0 non-virtual]
// RET-T-NEXT: 2 | return_adjustment::Y *return_adjustment::T::foo()
- // RET-T: VFTable indices for 'return_adjustment::T' (1 entries).
+ // RET-T: VFTable indices for 'return_adjustment::T' (1 entry).
// RET-T-NEXT: 2 | return_adjustment::Y *return_adjustment::T::foo()
virtual Y* foo();
@@ -574,7 +574,7 @@ struct V : Z {
// RET-V-NEXT: [return adjustment: vbptr at offset 4, vbase #1, 0 non-virtual]
// RET-V-NEXT: 1 | return_adjustment::U *return_adjustment::V::foo()
- // RET-V: VFTable indices for 'return_adjustment::V' (1 entries).
+ // RET-V: VFTable indices for 'return_adjustment::V' (1 entry).
// RET-V-NEXT: 1 | return_adjustment::U *return_adjustment::V::foo()
virtual U* foo();
More information about the cfe-commits
mailing list