summaryrefslogtreecommitdiff
path: root/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2014-04-29 06:18:53 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2014-04-29 06:18:53 +0000
commitff5d94339ae995223526863d0f2cd21e1828d2f3 (patch)
tree61841c739cd9eae183e46455f847dc393d0497a6 /lib/CodeGen/CodeGenModule.cpp
parent9102e00d24a2149414a5b527dffd91f209153cad (diff)
downloadclang-ff5d94339ae995223526863d0f2cd21e1828d2f3.tar.gz
clang-ff5d94339ae995223526863d0f2cd21e1828d2f3.tar.bz2
clang-ff5d94339ae995223526863d0f2cd21e1828d2f3.tar.xz
CodeGen: Reference temporaries inherit visibility
Reference temporaries inherited many properties from the variable that they correspond to but visibility wasn't one of them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@207496 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CodeGenModule.cpp')
-rw-r--r--lib/CodeGen/CodeGenModule.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/CodeGen/CodeGenModule.cpp b/lib/CodeGen/CodeGenModule.cpp
index bed949db22..6103933300 100644
--- a/lib/CodeGen/CodeGenModule.cpp
+++ b/lib/CodeGen/CodeGenModule.cpp
@@ -2865,6 +2865,8 @@ llvm::Constant *CodeGenModule::GetAddrOfGlobalTemporary(
// Create a global variable for this lifetime-extended temporary.
llvm::GlobalValue::LinkageTypes Linkage =
getLLVMLinkageVarDefinition(VD, Constant);
+ // There is no need for this temporary to have global linkage if the global
+ // variable has external linkage.
if (Linkage == llvm::GlobalVariable::ExternalLinkage)
Linkage = llvm::GlobalVariable::PrivateLinkage;
unsigned AddrSpace = GetGlobalVarAddressSpace(
@@ -2873,6 +2875,7 @@ llvm::Constant *CodeGenModule::GetAddrOfGlobalTemporary(
getModule(), Type, Constant, Linkage, InitialValue, Name.c_str(),
/*InsertBefore=*/nullptr, llvm::GlobalVariable::NotThreadLocal,
AddrSpace);
+ setGlobalVisibility(GV, VD);
GV->setAlignment(
getContext().getTypeAlignInChars(MaterializedType).getQuantity());
if (VD->getTLSKind())