40
40
#include " mlir/Transforms/RegionUtils.h"
41
41
#include " llvm/ADT/STLExtras.h"
42
42
#include " llvm/Frontend/OpenMP/OMPConstants.h"
43
- #include < string>
44
43
45
44
using namespace Fortran ::lower::omp;
46
45
using namespace Fortran ::common::openmp;
@@ -3127,13 +3126,16 @@ genOMP(lower::AbstractConverter &converter, lower::SymMap &symTable,
3127
3126
const auto &mapperName{std::get<std::optional<parser::Name>>(spec.t )};
3128
3127
const auto &varType{std::get<parser::TypeSpec>(spec.t )};
3129
3128
const auto &varName{std::get<parser::Name>(spec.t )};
3130
- std::stringstream mapperNameStr;
3131
- if (mapperName.has_value ()) {
3132
- mapperNameStr << mapperName->ToString ();
3133
- } else {
3134
- mapperNameStr << " default_"
3135
- << varType.declTypeSpec ->derivedTypeSpec ().name ().ToString ();
3136
- }
3129
+ assert (varType.declTypeSpec ->category () ==
3130
+ semantics::DeclTypeSpec::Category::TypeDerived &&
3131
+ " Expected derived type" );
3132
+
3133
+ std::string mapperNameStr;
3134
+ if (mapperName.has_value ())
3135
+ mapperNameStr = mapperName->ToString ();
3136
+ else
3137
+ mapperNameStr =
3138
+ " default_" + varType.declTypeSpec ->derivedTypeSpec ().name ().ToString ();
3137
3139
3138
3140
mlir::OpBuilder::InsertPoint insPt = firOpBuilder.saveInsertionPoint ();
3139
3141
firOpBuilder.setInsertionPointToStart (converter.getModuleOp ().getBody ());
@@ -3149,7 +3151,7 @@ genOMP(lower::AbstractConverter &converter, lower::SymMap &symTable,
3149
3151
ClauseProcessor cp (converter, semaCtx, clauses);
3150
3152
cp.processMap (converter.getCurrentLocation (), stmtCtx, clauseOps);
3151
3153
auto declMapperOp = firOpBuilder.create <mlir::omp::DeclareMapperOp>(
3152
- converter.getCurrentLocation (), mapperNameStr. str () , varVal, mlirType,
3154
+ converter.getCurrentLocation (), mapperNameStr, varVal, mlirType,
3153
3155
clauseOps.mapVars );
3154
3156
converter.getMLIRSymbolTable ()->insert (declMapperOp.getOperation ());
3155
3157
firOpBuilder.restoreInsertionPoint (insPt);
0 commit comments