diff --git a/flang/lib/Optimizer/CodeGen/BoxedProcedure.cpp b/flang/lib/Optimizer/CodeGen/BoxedProcedure.cpp index ad7272eaa9d3f..c7c2dcede8aa6 100644 --- a/flang/lib/Optimizer/CodeGen/BoxedProcedure.cpp +++ b/flang/lib/Optimizer/CodeGen/BoxedProcedure.cpp @@ -69,11 +69,9 @@ class BoxprocTypeRewriter : public mlir::TypeConverter { return false; } if (auto recTy = mlir::dyn_cast(ty)) { - auto visited = visitedTypes.find(ty); - if (visited != visitedTypes.end()) + auto [visited, inserted] = visitedTypes.try_emplace(ty, false); + if (!inserted) return visited->second; - [[maybe_unused]] auto newIt = visitedTypes.try_emplace(ty, false); - assert(newIt.second && "expected ty to not be in the map"); bool wasAlreadyVisitingRecordType = needConversionIsVisitingRecordType; needConversionIsVisitingRecordType = true; bool result = false;