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