diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2014-10-08 00:00:09 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2014-10-08 00:00:09 +0000 |
commit | fcfbcc6d103802e15e03d10d5bdec4d4dfa8b371 (patch) | |
tree | 2415285eec1a01b45a35dce21edcad97aa95d598 /clang/lib/CodeGen/CodeGenModule.cpp | |
parent | 880580b88f9deed575104168e85f242401f8a92e (diff) | |
download | bcm5719-llvm-fcfbcc6d103802e15e03d10d5bdec4d4dfa8b371.tar.gz bcm5719-llvm-fcfbcc6d103802e15e03d10d5bdec4d4dfa8b371.zip |
Avoid code duplication by calling setAliasAttributes in EmitAliasDefinition.
llvm-svn: 219258
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
-rw-r--r-- | clang/lib/CodeGen/CodeGenModule.cpp | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp index 6e7da49a44d..a7a65b88c91 100644 --- a/clang/lib/CodeGen/CodeGenModule.cpp +++ b/clang/lib/CodeGen/CodeGenModule.cpp @@ -2362,21 +2362,12 @@ void CodeGenModule::EmitAliasDefinition(GlobalDecl GD) { // Set attributes which are particular to an alias; this is a // specialization of the attributes which may be set on a global // variable/function. - if (D->hasAttr<DLLExportAttr>()) { - if (const auto *FD = dyn_cast<FunctionDecl>(D)) { - // The dllexport attribute is ignored for undefined symbols. - if (FD->hasBody()) - GA->setDLLStorageClass(llvm::GlobalValue::DLLExportStorageClass); - } else { - GA->setDLLStorageClass(llvm::GlobalValue::DLLExportStorageClass); - } - } else if (D->hasAttr<WeakAttr>() || - D->hasAttr<WeakRefAttr>() || - D->isWeakImported()) { + if (D->hasAttr<WeakAttr>() || D->hasAttr<WeakRefAttr>() || + D->isWeakImported()) { GA->setLinkage(llvm::Function::WeakAnyLinkage); } - SetCommonAttributes(D, GA); + setAliasAttributes(D, GA); } llvm::Function *CodeGenModule::getIntrinsic(unsigned IID, |