summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2015-01-16 15:37:11 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2015-01-16 15:37:11 +0000
commit694cb5d9b7724a0c6dba3adbf7c855e847a6f0de (patch)
tree4bde9bc747b383e6ec885d63636ff610c88ceb84 /clang/lib/CodeGen
parent5450a9635aefae51216f00eb0223a55271e51bb6 (diff)
downloadbcm5719-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')
-rw-r--r--clang/lib/CodeGen/MicrosoftCXXABI.cpp6
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,
OpenPOWER on IntegriCloud