diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-01-16 16:04:45 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-01-16 16:04:45 +0000 |
commit | 77abc3a7da62e72d93892280041294101e099ca3 (patch) | |
tree | dae3b68ca1bf6eda7f5dfd97c5f9b116765e1650 /clang/lib/CodeGen/MicrosoftCXXABI.cpp | |
parent | a8eb9931ad78fd04cd07cdc7e1529e746be451f3 (diff) | |
download | bcm5719-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.cpp | 4 |
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; } |