summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/MicrosoftCXXABI.cpp
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2015-01-21 01:21:31 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2015-01-21 01:21:31 +0000
commit8c9cdb657302122a5ae35e4a8bdc972a6f6fab48 (patch)
tree683666b2715ed20daa81ab6f28418c691b380bde /clang/lib/CodeGen/MicrosoftCXXABI.cpp
parent3072fc885e01e203a0f01f145c26e43d359d0728 (diff)
downloadbcm5719-llvm-8c9cdb657302122a5ae35e4a8bdc972a6f6fab48.tar.gz
bcm5719-llvm-8c9cdb657302122a5ae35e4a8bdc972a6f6fab48.zip
MS ABI: Virtual member pointer thunks should be in COMDAT groups
They can be emitted by multiple translation units and thus belong in a COMDAT group. llvm-svn: 226630
Diffstat (limited to 'clang/lib/CodeGen/MicrosoftCXXABI.cpp')
-rw-r--r--clang/lib/CodeGen/MicrosoftCXXABI.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/MicrosoftCXXABI.cpp b/clang/lib/CodeGen/MicrosoftCXXABI.cpp
index 71d6e7800d7..0741e5d7385 100644
--- a/clang/lib/CodeGen/MicrosoftCXXABI.cpp
+++ b/clang/lib/CodeGen/MicrosoftCXXABI.cpp
@@ -1534,6 +1534,8 @@ llvm::Function *MicrosoftCXXABI::EmitVirtualMemPtrThunk(
ThunkFn->setLinkage(MD->isExternallyVisible()
? llvm::GlobalValue::LinkOnceODRLinkage
: llvm::GlobalValue::InternalLinkage);
+ if (MD->isExternallyVisible())
+ ThunkFn->setComdat(CGM.getModule().getOrInsertComdat(ThunkFn->getName()));
CGM.SetLLVMFunctionAttributes(MD, FnInfo, ThunkFn);
CGM.SetLLVMFunctionAttributesForDefinition(MD, ThunkFn);
OpenPOWER on IntegriCloud