Improve linkage of RTTI data structures. Introduce CodeGenModule::GetAddrOfRTTI which figures out the right linkage of the RTTI information for the given type and whether it should be defined or not. I will migrate clients over to GetAddrOfRTTI in subsequent commits (with tests).
llvm-svn: 91098
diff --git a/clang/lib/CodeGen/CGVtable.cpp b/clang/lib/CodeGen/CGVtable.cpp
index ef680d9..752f69c 100644
--- a/clang/lib/CodeGen/CGVtable.cpp
+++ b/clang/lib/CodeGen/CGVtable.cpp
@@ -203,7 +203,7 @@
LLVMPointerWidth(cgm.getContext().Target.getPointerWidth(0)) {
Ptr8Ty = llvm::PointerType::get(llvm::Type::getInt8Ty(VMContext), 0);
if (BuildVtable)
- rtti = cgm.GenerateRTTIRef(MostDerivedClass);
+ rtti = CGM.GetAddrOfRTTI(MostDerivedClass);
}
// getVtableComponents - Returns a reference to the vtable components.
@@ -1409,8 +1409,6 @@
}
Vtable = GenerateVtable(Linkage, /*GenerateDefinition=*/true, RD, RD, 0);
-
- CGM.GenerateRTTI(RD);
GenerateVTT(Linkage, RD);
}