[clang] [Clang] Fix clang crash for fopenmp statement(for) inside lambda function (PR #146772)

Shivam Gupta via cfe-commits cfe-commits at lists.llvm.org
Mon Mar 2 01:45:34 PST 2026


================
@@ -2332,6 +2332,12 @@ void CodeGenFunction::EmitOMPPrivateLoopCounters(
   for (const Expr *E : S.counters()) {
     const auto *VD = cast<VarDecl>(cast<DeclRefExpr>(E)->getDecl());
     const auto *PrivateVD = cast<VarDecl>(cast<DeclRefExpr>(*I)->getDecl());
+    // Privatize original counter variable (e.g., __beginN, __endN, __rangeN)
+    if (!LocalDeclMap.count(VD)) {
+      Address Addr = CreateMemTemp(VD->getType(), VD->getName());
+      LocalDeclMap.insert({VD, Addr});
+      (void)LoopScope.addPrivate(VD, Addr);
+    }
----------------
xgupta wrote:

In my analysis ordering of emitting loop counter variables was not correct in emitPreInitStmt.

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


More information about the cfe-commits mailing list