aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2015-02-19 19:35:18 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2015-02-19 19:35:18 +0000
commitf63bcaa2c576a95e79281515061c307fd7e5dfd8 (patch)
tree01fc9511c4e82507ffde891f4863f039f6d3b303 /clang/lib/CodeGen/CodeGenModule.cpp
parentdb9050fd495f564387aa3179d800c887e2cd9595 (diff)
downloadllvm-f63bcaa2c576a95e79281515061c307fd7e5dfd8.zip
llvm-f63bcaa2c576a95e79281515061c307fd7e5dfd8.tar.gz
llvm-f63bcaa2c576a95e79281515061c307fd7e5dfd8.tar.bz2
CodeGen: Weak reference temporaries belong in a COMDAT
llvm-svn: 229902
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
-rw-r--r--clang/lib/CodeGen/CodeGenModule.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp
index e3c5a2b..6d63c5e 100644
--- a/clang/lib/CodeGen/CodeGenModule.cpp
+++ b/clang/lib/CodeGen/CodeGenModule.cpp
@@ -3104,6 +3104,8 @@ llvm::Constant *CodeGenModule::GetAddrOfGlobalTemporary(
setGlobalVisibility(GV, VD);
GV->setAlignment(
getContext().getTypeAlignInChars(MaterializedType).getQuantity());
+ if (supportsCOMDAT() && GV->isWeakForLinker())
+ GV->setComdat(TheModule.getOrInsertComdat(GV->getName()));
if (VD->getTLSKind())
setTLSMode(GV, *VD);
Slot = GV;