[PATCH] D43990: set dso_local on tls init functions
Rafael Avila de Espindola via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Mar 1 17:49:09 PST 2018
espindola created this revision.
espindola added a reviewer: echristo.
We copy the visibility, so copying the dso_local flag seems the natural thing to do.
https://reviews.llvm.org/D43990
Files:
lib/CodeGen/ItaniumCXXABI.cpp
test/CodeGenCXX/runtime-dllstorage.cpp
Index: test/CodeGenCXX/runtime-dllstorage.cpp
===================================================================
--- test/CodeGenCXX/runtime-dllstorage.cpp
+++ test/CodeGenCXX/runtime-dllstorage.cpp
@@ -114,6 +114,7 @@
// CHECK-MS-DAG: declare void @_Init_thread_header(i32*)
// CHECK-MS-DAG: declare void @_Init_thread_footer(i32*)
+// CHECK-IA-DAG: @_ZTH1t = dso_local alias void (), void ()* @__tls_init
// CHECK-IA-DAG: declare i32 @__gxx_personality_v0(...)
// CHECK-IA-DAG: define linkonce_odr hidden void @__clang_call_terminate(i8*)
Index: lib/CodeGen/ItaniumCXXABI.cpp
===================================================================
--- lib/CodeGen/ItaniumCXXABI.cpp
+++ lib/CodeGen/ItaniumCXXABI.cpp
@@ -2399,8 +2399,10 @@
CGM.SetLLVMFunctionAttributes(nullptr, FI, cast<llvm::Function>(Init));
}
- if (Init)
+ if (Init) {
Init->setVisibility(Var->getVisibility());
+ Init->setDSOLocal(Var->isDSOLocal());
+ }
llvm::LLVMContext &Context = CGM.getModule().getContext();
llvm::BasicBlock *Entry = llvm::BasicBlock::Create(Context, "", Wrapper);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D43990.136657.patch
Type: text/x-patch
Size: 1113 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180302/d9acdfce/attachment.bin>
More information about the cfe-commits
mailing list