Index: lib/CodeGen/ItaniumCXXABI.cpp =================================================================== --- lib/CodeGen/ItaniumCXXABI.cpp +++ lib/CodeGen/ItaniumCXXABI.cpp @@ -2399,8 +2399,10 @@ CGM.SetLLVMFunctionAttributes(nullptr, FI, cast(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); 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*)