[clang] [clang] Fix loss of `dllexport` for exported template specialization (PR #93302)
Paul T Robinson via cfe-commits
cfe-commits at lists.llvm.org
Fri May 24 07:30:40 PDT 2024
================
@@ -4849,9 +4852,12 @@ CodeGenModule::GetOrCreateLLVMGlobal(StringRef MangledName, llvm::Type *Ty,
Entry->setLinkage(llvm::Function::ExternalLinkage);
}
- // Handle dropped DLL attributes.
- if (D && !D->hasAttr<DLLImportAttr>() && !D->hasAttr<DLLExportAttr>() &&
- !shouldMapVisibilityToDLLExport(D))
+ // Handle dropped dllimport.
+ if (D &&
+ (Entry->getDLLStorageClass() ==
+ llvm::GlobalVariable::DLLImportStorageClass) &&
+ !D->hasAttr<DLLImportAttr>() &&
+ !shouldMapVisibilityToDLLExport(cast_or_null<NamedDecl>(D)))
----------------
pogo59 wrote:
```suggestion
!shouldMapVisibilityToDLLExport(cast<NamedDecl>(D)))
```
D is non-null here.
https://github.com/llvm/llvm-project/pull/93302
More information about the cfe-commits
mailing list