[PATCH] D44805: Set dso_local on __ImageBase

2018-03-22 Thread Rafael Avila de Espindola via Phabricator via cfe-commits
espindola closed this revision.
espindola added a comment.

328266


https://reviews.llvm.org/D44805



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D44805: Set dso_local on __ImageBase

2018-03-22 Thread Reid Kleckner via Phabricator via cfe-commits
rnk accepted this revision.
rnk added a comment.
This revision is now accepted and ready to land.

lgtm


https://reviews.llvm.org/D44805



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D44805: Set dso_local on __ImageBase

2018-03-22 Thread Rafael Avila de Espindola via Phabricator via cfe-commits
espindola created this revision.
espindola added reviewers: echristo, rnk.

https://reviews.llvm.org/D44805

Files:
  lib/CodeGen/MicrosoftCXXABI.cpp
  test/CodeGenCXX/dllexport.cpp


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
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
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) {
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits