diff --git a/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp b/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp --- a/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp +++ b/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp @@ -470,7 +470,8 @@ auto linkage = convertLinkageToLLVM(op.linkage()); bool anyExternalLinkage = - (linkage == llvm::GlobalVariable::ExternalLinkage || + ((linkage == llvm::GlobalVariable::ExternalLinkage && + isa(cst)) || linkage == llvm::GlobalVariable::ExternalWeakLinkage); auto addrSpace = op.addr_space().getLimitedValue(); auto *var = new llvm::GlobalVariable(