[clang] [clang] Fix loss of `dllexport` for exported template specialization (PR #93302)
Andrew Ng via cfe-commits
cfe-commits at lists.llvm.org
Fri May 24 07:54:02 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)))
----------------
nga888 wrote:
Sorry, the above comment should have been in reply to the instance above. This cast shouldn't be needed at all. I suspect a copy & paste error on my behalf!
https://github.com/llvm/llvm-project/pull/93302
More information about the cfe-commits
mailing list