diff options
Diffstat (limited to 'lib/CodeGen')
-rw-r--r-- | lib/CodeGen/CGVTT.cpp | 3 | ||||
-rw-r--r-- | lib/CodeGen/CGVTables.cpp | 2 |
2 files changed, 3 insertions, 2 deletions
diff --git a/lib/CodeGen/CGVTT.cpp b/lib/CodeGen/CGVTT.cpp index 5a99059f1a..bee87e2887 100644 --- a/lib/CodeGen/CGVTT.cpp +++ b/lib/CodeGen/CGVTT.cpp @@ -399,7 +399,8 @@ CodeGenVTables::GenerateVTT(llvm::GlobalVariable::LinkageTypes Linkage, GV = new llvm::GlobalVariable(CGM.getModule(), Type, /*isConstant=*/true, Linkage, Init, Name); CGM.setGlobalVisibility(GV, RD, /*ForDefinition*/ GenerateDefinition); - GV->setUnnamedAddr(true); + if (GenerateDefinition) + GV->setUnnamedAddr(true); if (OldGV) { GV->takeName(OldGV); diff --git a/lib/CodeGen/CGVTables.cpp b/lib/CodeGen/CGVTables.cpp index ff65e583bb..0e43b1a352 100644 --- a/lib/CodeGen/CGVTables.cpp +++ b/lib/CodeGen/CGVTables.cpp @@ -2982,7 +2982,6 @@ llvm::GlobalVariable *CodeGenVTables::GetAddrOfVTable(const CXXRecordDecl *RD) { llvm::GlobalVariable *GV = GetGlobalVariable(CGM.getModule(), Name, ArrayType, llvm::GlobalValue::ExternalLinkage); - GV->setUnnamedAddr(true); return GV; } @@ -3074,6 +3073,7 @@ CodeGenVTables::GenerateClassData(llvm::GlobalVariable::LinkageTypes Linkage, } VTable = GetAddrOfVTable(RD); + VTable->setUnnamedAddr(true); EmitVTableDefinition(VTable, Linkage, RD); GenerateVTT(Linkage, /*GenerateDefinition=*/true, RD); |