[cfe-commits] r124540 - in /cfe/trunk: lib/CodeGen/CGVTT.cpp test/CodeGenCXX/vtable-linkage.cpp

Anders Carlsson andersca at mac.com
Sat Jan 29 11:34:20 PST 2011


Author: andersca
Date: Sat Jan 29 13:34:19 2011
New Revision: 124540

URL: http://llvm.org/viewvc/llvm-project?rev=124540&view=rev
Log:
Give VTTs the right visibility.

Modified:
    cfe/trunk/lib/CodeGen/CGVTT.cpp
    cfe/trunk/test/CodeGenCXX/vtable-linkage.cpp

Modified: cfe/trunk/lib/CodeGen/CGVTT.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGVTT.cpp?rev=124540&r1=124539&r2=124540&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/CGVTT.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGVTT.cpp Sat Jan 29 13:34:19 2011
@@ -384,6 +384,9 @@
 
   // Set the correct linkage.
   VTT->setLinkage(Linkage);
+
+  // Set the right visibility.
+  CGM.setTypeVisibility(VTT, RD, /*ForRTTI=*/false);
 }
 
 llvm::GlobalVariable *CodeGenVTables::GetAddrOfVTT(const CXXRecordDecl *RD) {

Modified: cfe/trunk/test/CodeGenCXX/vtable-linkage.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/vtable-linkage.cpp?rev=124540&r1=124539&r2=124540&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/vtable-linkage.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/vtable-linkage.cpp Sat Jan 29 13:34:19 2011
@@ -32,7 +32,7 @@
 
 B::B() { }
 
-struct C {
+struct C : virtual B {
   C();
   virtual void f() { } 
 };
@@ -106,9 +106,11 @@
 // CHECK-2: @_ZTV1C = linkonce_odr unnamed_addr constant
 // CHECK-2: @_ZTS1C = linkonce_odr constant
 // CHECK-2: @_ZTI1C = linkonce_odr unnamed_addr constant
+// CHECK-2: @_ZTT1C = linkonce_odr unnamed_addr constant
 // CHECK-2-HIDDEN: @_ZTV1C = linkonce_odr hidden unnamed_addr constant
 // CHECK-2-HIDDEN: @_ZTS1C = linkonce_odr constant
 // CHECK-2-HIDDEN: @_ZTI1C = linkonce_odr hidden unnamed_addr constant
+// CHECK-2-HIDDEN: @_ZTT1C = linkonce_odr hidden unnamed_addr constant
 
 // D has a key function that is defined in this translation unit so its vtable is
 // defined in the translation unit.





More information about the cfe-commits mailing list