diff options
author | David Majnemer <david.majnemer@gmail.com> | 2015-01-21 01:21:31 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2015-01-21 01:21:31 +0000 |
commit | 8c9cdb657302122a5ae35e4a8bdc972a6f6fab48 (patch) | |
tree | 683666b2715ed20daa81ab6f28418c691b380bde /clang/lib/CodeGen/MicrosoftCXXABI.cpp | |
parent | 3072fc885e01e203a0f01f145c26e43d359d0728 (diff) | |
download | bcm5719-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.cpp | 2 |
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); |