[flang-commits] [flang] [flang][OpenMP] Rewrite min/max with more than 2 arguments (PR #146423)

Krzysztof Parzyszek via flang-commits flang-commits at lists.llvm.org
Tue Jul 1 06:04:04 PDT 2025


================
@@ -350,10 +603,28 @@ genAtomicUpdate(lower::AbstractConverter &converter,
   mlir::Type atomType = fir::unwrapRefType(atomAddr.getType());
 
   // This must exist by now.
-  semantics::SomeExpr input = *evaluate::GetConvertInput(assign.rhs);
-  std::vector<semantics::SomeExpr> args =
-      evaluate::GetTopLevelOperation(input).second;
+  semantics::SomeExpr rhs = assign.rhs;
+  semantics::SomeExpr input = *evaluate::GetConvertInput(rhs);
+  auto [opcode, args] = evaluate::GetTopLevelOperation(input);
   assert(!args.empty() && "Update operation without arguments");
+
+  const semantics::SomeExpr *atomArg = [&]() {
+    for (const semantics::SomeExpr &e : args) {
----------------
kparzysz wrote:

Fixed.

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


More information about the flang-commits mailing list