[flang-commits] [flang] [flang][OpenMP][DoConcurrent] Emit declare mapper for records (PR #179936)

Kareem Ergawy via flang-commits flang-commits at lists.llvm.org
Mon Mar 9 08:11:50 PDT 2026


================
@@ -2792,7 +2792,20 @@ genTargetOp(lower::AbstractConverter &converter, lower::SymMap &symTable,
                 if (auto recordType = mlir::dyn_cast_or_null<fir::RecordType>(
                         converter.genType(*typeSpec)))
                   mapperId = getOrGenImplicitDefaultDeclareMapper(
-                      converter, loc, recordType, mapperIdName);
+                      converter.getFirOpBuilder(), loc, recordType,
+                      mapperIdName,
+                      [&](std::string &mapperIdName,
----------------
ergawy wrote:

> Why have you peeled out the mangler into a caller provided lambda?

Because the manger used by `ClauseProcessor.cpp` and `OpenMP.cpp` have to acces the semantic scope to provide a mangled name. This is not available to us here. For `do concurrent`, we have to generate names for declare mapper ops differently. I will do that in a follow up PR.

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


More information about the flang-commits mailing list