[clang] [OpenMP] Mark critical region lock variables dso_local for static relocation model (PR #201157)

Fangrui Song via cfe-commits cfe-commits at lists.llvm.org
Wed Jun 3 23:03:38 PDT 2026


================
@@ -2069,7 +2069,12 @@ Address CGOpenMPRuntime::emitThreadIDAddress(CodeGenFunction &CGF,
 llvm::Value *CGOpenMPRuntime::getCriticalRegionLock(StringRef CriticalName) {
   std::string Prefix = Twine("gomp_critical_user_", CriticalName).str();
   std::string Name = getName({Prefix, "var"});
-  return OMPBuilder.getOrCreateInternalVariable(KmpCriticalNameTy, Name);
+
+  llvm::GlobalVariable *GV =
+      OMPBuilder.getOrCreateInternalVariable(KmpCriticalNameTy, Name);
+  CGM.setDSOLocal(GV);
+
----------------
MaskRay wrote:

unneeded blank line

https://github.com/llvm/llvm-project/pull/201157


More information about the cfe-commits mailing list