Avoid code duplication by calling setAliasAttributes in EmitAliasDefinition.
llvm-svn: 219258
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user