Author: rafael Date: Wed Mar 14 11:19:26 2018 New Revision: 327544 URL: http://llvm.org/viewvc/llvm-project?rev=327544&view=rev Log: Set dso_local for NSConcreteStackBlock.
Modified: cfe/trunk/lib/CodeGen/CGBlocks.cpp cfe/trunk/test/CodeGen/blocks-windows.c Modified: cfe/trunk/lib/CodeGen/CGBlocks.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGBlocks.cpp?rev=327544&r1=327543&r2=327544&view=diff ============================================================================== --- cfe/trunk/lib/CodeGen/CGBlocks.cpp (original) +++ cfe/trunk/lib/CodeGen/CGBlocks.cpp Wed Mar 14 11:19:26 2018 @@ -2586,11 +2586,11 @@ static void configureBlocksRuntimeObject } } - if (!CGM.getLangOpts().BlocksRuntimeOptional) - return; - - if (GV->isDeclaration() && GV->hasExternalLinkage()) + if (CGM.getLangOpts().BlocksRuntimeOptional && GV->isDeclaration() && + GV->hasExternalLinkage()) GV->setLinkage(llvm::GlobalValue::ExternalWeakLinkage); + + CGM.setDSOLocal(GV); } llvm::Constant *CodeGenModule::getBlockObjectDispose() { Modified: cfe/trunk/test/CodeGen/blocks-windows.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/blocks-windows.c?rev=327544&r1=327543&r2=327544&view=diff ============================================================================== --- cfe/trunk/test/CodeGen/blocks-windows.c (original) +++ cfe/trunk/test/CodeGen/blocks-windows.c Wed Mar 14 11:19:26 2018 @@ -67,7 +67,7 @@ int (*g(void))(void) { return _Block_copy(^{ ++i; return i; }); } -// CHECK-BLOCKS-IN-BLOCKS-DECL: @_NSConcreteStackBlock = external dllexport global i8* +// CHECK-BLOCKS-IN-BLOCKS-DECL: @_NSConcreteStackBlock = external dso_local dllexport global i8* // CHECK-BLOCKS-IN-BLOCKS-DEFN: @_NSConcreteStackBlock = common dso_local dllexport global [5 x i32] // CHECK-BLOCKS-NOT-IN-BLOCKS: @_NSConcreteStackBlock = external dllimport global i8* // CHECK-BLOCKS-NOT-IN-BLOCKS-EXTERN: @_NSConcreteStackBlock = external dllimport global i8* _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits