summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/MicrosoftCXXABI.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2015-01-16 16:04:45 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2015-01-16 16:04:45 +0000
commit77abc3a7da62e72d93892280041294101e099ca3 (patch)
treedae3b68ca1bf6eda7f5dfd97c5f9b116765e1650 /clang/lib/CodeGen/MicrosoftCXXABI.cpp
parenta8eb9931ad78fd04cd07cdc7e1529e746be451f3 (diff)
downloadbcm5719-llvm-77abc3a7da62e72d93892280041294101e099ca3.tar.gz
bcm5719-llvm-77abc3a7da62e72d93892280041294101e099ca3.zip
Add comdats to dynamic init functions in the microsoft abi.
llvm-svn: 226286
Diffstat (limited to 'clang/lib/CodeGen/MicrosoftCXXABI.cpp')
-rw-r--r--clang/lib/CodeGen/MicrosoftCXXABI.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/MicrosoftCXXABI.cpp b/clang/lib/CodeGen/MicrosoftCXXABI.cpp
index a7671d80ff5..7fe5ec5a738 100644
--- a/clang/lib/CodeGen/MicrosoftCXXABI.cpp
+++ b/clang/lib/CodeGen/MicrosoftCXXABI.cpp
@@ -1861,7 +1861,9 @@ void MicrosoftCXXABI::EmitGuardedInit(CodeGenFunction &CGF, const VarDecl &D,
if (!D.isStaticLocal()) {
assert(GV->hasWeakLinkage() || GV->hasLinkOnceLinkage());
// GlobalOpt is allowed to discard the initializer, so use linkonce_odr.
- CGF.CurFn->setLinkage(llvm::GlobalValue::LinkOnceODRLinkage);
+ llvm::Function *F = CGF.CurFn;
+ F->setLinkage(llvm::GlobalValue::LinkOnceODRLinkage);
+ F->setComdat(CGM.getModule().getOrInsertComdat(F->getName()));
CGF.EmitCXXGlobalVarDeclInit(D, GV, PerformInit);
return;
}
OpenPOWER on IntegriCloud