diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2018-03-22 23:02:19 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2018-03-22 23:02:19 +0000 |
commit | 1c40647e1c33ae86ac2f80068d0ba9554878f04f (patch) | |
tree | 6ec9c0f00abcc6f05ff2218ff172c9752cc6f6f0 | |
parent | 5bdf02f4fc905b97f653dfab4aac0778a8aba1d8 (diff) | |
download | bcm5719-llvm-1c40647e1c33ae86ac2f80068d0ba9554878f04f.tar.gz bcm5719-llvm-1c40647e1c33ae86ac2f80068d0ba9554878f04f.zip |
Set dso_local on __ImageBase.
llvm-svn: 328266
-rw-r--r-- | clang/lib/CodeGen/MicrosoftCXXABI.cpp | 10 | ||||
-rw-r--r-- | clang/test/CodeGenCXX/dllexport.cpp | 2 |
2 files changed, 8 insertions, 4 deletions
diff --git a/clang/lib/CodeGen/MicrosoftCXXABI.cpp b/clang/lib/CodeGen/MicrosoftCXXABI.cpp index d7fac79c86e..6ee423bb82e 100644 --- a/clang/lib/CodeGen/MicrosoftCXXABI.cpp +++ b/clang/lib/CodeGen/MicrosoftCXXABI.cpp @@ -523,10 +523,12 @@ public: 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) { diff --git a/clang/test/CodeGenCXX/dllexport.cpp b/clang/test/CodeGenCXX/dllexport.cpp index 8820ca8909c..d7a7be8170f 100644 --- a/clang/test/CodeGenCXX/dllexport.cpp +++ b/clang/test/CodeGenCXX/dllexport.cpp @@ -41,6 +41,8 @@ struct External { int v; }; // GNU-NOT: @ExternGlobalDecl __declspec(dllexport) extern int ExternGlobalDecl; +// 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 |