diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-01-16 15:37:11 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-01-16 15:37:11 +0000 |
commit | 694cb5d9b7724a0c6dba3adbf7c855e847a6f0de (patch) | |
tree | 4bde9bc747b383e6ec885d63636ff610c88ceb84 /clang/lib/CodeGen/MicrosoftCXXABI.cpp | |
parent | 5450a9635aefae51216f00eb0223a55271e51bb6 (diff) | |
download | bcm5719-llvm-694cb5d9b7724a0c6dba3adbf7c855e847a6f0de.tar.gz bcm5719-llvm-694cb5d9b7724a0c6dba3adbf7c855e847a6f0de.zip |
Add comdats to constructs and destructor in the microsoft abi.
llvm-svn: 226280
Diffstat (limited to 'clang/lib/CodeGen/MicrosoftCXXABI.cpp')
-rw-r--r-- | clang/lib/CodeGen/MicrosoftCXXABI.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/clang/lib/CodeGen/MicrosoftCXXABI.cpp b/clang/lib/CodeGen/MicrosoftCXXABI.cpp index c80db7d18a1..a7671d80ff5 100644 --- a/clang/lib/CodeGen/MicrosoftCXXABI.cpp +++ b/clang/lib/CodeGen/MicrosoftCXXABI.cpp @@ -3037,7 +3037,8 @@ static void emitCXXConstructor(CodeGenModule &CGM, const CXXConstructorDecl *ctor, StructorType ctorType) { // There are no constructor variants, always emit the complete destructor. - CGM.codegenCXXStructor(ctor, StructorType::Complete); + llvm::Function *Fn = CGM.codegenCXXStructor(ctor, StructorType::Complete); + CGM.maybeSetTrivialComdat(*ctor, *Fn); } static void emitCXXDestructor(CodeGenModule &CGM, const CXXDestructorDecl *dtor, @@ -3063,7 +3064,8 @@ static void emitCXXDestructor(CodeGenModule &CGM, const CXXDestructorDecl *dtor, if (dtorType == StructorType::Base && !CGM.TryEmitBaseDestructorAsAlias(dtor)) return; - CGM.codegenCXXStructor(dtor, dtorType); + llvm::Function *Fn = CGM.codegenCXXStructor(dtor, dtorType); + CGM.maybeSetTrivialComdat(*dtor, *Fn); } void MicrosoftCXXABI::emitCXXStructor(const CXXMethodDecl *MD, |