Index: lib/CodeGen/MicrosoftCXXABI.cpp =================================================================== --- lib/CodeGen/MicrosoftCXXABI.cpp +++ lib/CodeGen/MicrosoftCXXABI.cpp @@ -523,10 +523,12 @@ if (llvm::GlobalVariable *GV = CGM.getModule().getNamedGlobal(Name)) return GV; - return new llvm::GlobalVariable(CGM.getModule(), CGM.Int8Ty, - /*isConstant=*/true, - llvm::GlobalValue::ExternalLinkage, - /*Initializer=*/nullptr, Name); + auto *GV = new llvm::GlobalVariable(CGM.getModule(), CGM.Int8Ty, + /*isConstant=*/true, + llvm::GlobalValue::ExternalLinkage, + /*Initializer=*/nullptr, Name); + CGM.setDSOLocal(GV); + return GV; } llvm::Constant *getImageRelativeConstant(llvm::Constant *PtrVal) { Index: test/CodeGenCXX/dllexport.cpp =================================================================== --- test/CodeGenCXX/dllexport.cpp +++ test/CodeGenCXX/dllexport.cpp @@ -43,6 +43,8 @@ // GNU-DAG: @_ZTVN10__cxxabiv117__class_type_infoE = external dso_local global +// M64-DAG: @__ImageBase = external dso_local constant i8 + // dllexport implies a definition. // MSC-DAG: @"?GlobalDef@@3HA" = dso_local dllexport global i32 0, align 4 // GNU-DAG: @GlobalDef = dso_local dllexport global i32 0, align 4