[flang-commits] [flang] [flang][OpenMP] incorrect handling for local variable in OpenMP parallel workshare firstprivate(P) (PR #195616)
Tom Eccles via flang-commits
flang-commits at lists.llvm.org
Tue May 26 08:59:59 PDT 2026
================
@@ -394,12 +504,46 @@ static void parallelizeRegion(Region &sourceRegion, Region &targetRegion,
allParallelized = false;
}
} else if (auto alloca = dyn_cast<fir::AllocaOp>(&op)) {
- auto hoisted =
- cast<fir::AllocaOp>(allocaBuilder.clone(*alloca, singleMapping));
- rootMapping.map(&*alloca, &*hoisted);
- rootMapping.map(alloca.getResult(), hoisted.getResult());
- copyPrivate.push_back(hoisted);
- allParallelized = false;
+ if (alloca.isDynamic()) {
----------------
tblah wrote:
This will also match `fir.alloca !fir.char<1,?>(%len)`, which doesn't have any such fir.shape.
https://github.com/llvm/llvm-project/pull/195616
More information about the flang-commits
mailing list