@@ -185,7 +185,8 @@ static void CheckCharacterActual(evaluate::Expr<evaluate::SomeType> &actual,
185185 } else if (static_cast <std::size_t >(actualOffset->offset ()) >=
186186 actualOffset->symbol ().size () ||
187187 !evaluate::IsContiguous (
188- actualOffset->symbol (), foldingContext)) {
188+ actualOffset->symbol (), foldingContext)
189+ .value_or (false )) {
189190 // If substring, take rest of substring
190191 if (*actualLength > 0 ) {
191192 actualChars -=
@@ -598,7 +599,8 @@ static void CheckExplicitDataArg(const characteristics::DummyDataObject &dummy,
598599 context.IsEnabled (
599600 common::LanguageFeature::ContiguousOkForSeqAssociation) &&
600601 actualLastSymbol &&
601- evaluate::IsContiguous (*actualLastSymbol, foldingContext)};
602+ evaluate::IsContiguous (*actualLastSymbol, foldingContext)
603+ .value_or (false )};
602604 if (actualIsArrayElement && actualLastSymbol &&
603605 !dummy.ignoreTKR .test (common::IgnoreTKR::Contiguous)) {
604606 if (IsPointer (*actualLastSymbol)) {
@@ -663,7 +665,8 @@ static void CheckExplicitDataArg(const characteristics::DummyDataObject &dummy,
663665 } else if (static_cast <std::size_t >(actualOffset->offset ()) >=
664666 actualOffset->symbol ().size () ||
665667 !evaluate::IsContiguous (
666- actualOffset->symbol (), foldingContext)) {
668+ actualOffset->symbol (), foldingContext)
669+ .value_or (false )) {
667670 actualElements = 1 ;
668671 } else if (auto actualSymType{evaluate::DynamicType::From (
669672 actualOffset->symbol ())}) {
@@ -1566,10 +1569,10 @@ static bool CheckElementalConformance(parser::ContextualMessages &messages,
15661569 " ) corresponding to dummy argument #" + std::to_string (index) +
15671570 " ('" + dummy.name + " ')" };
15681571 if (shape) {
1569- auto tristate{ evaluate::CheckConformance (messages, *shape,
1570- *argShape, evaluate::CheckConformanceFlags::None,
1571- shapeName. c_str (), argName.c_str ())};
1572- if (tristate && !*tristate ) {
1572+ if (! evaluate::CheckConformance (messages, *shape, *argShape ,
1573+ evaluate::CheckConformanceFlags::None, shapeName. c_str () ,
1574+ argName.c_str ())
1575+ . value_or ( true ) ) {
15731576 return false ;
15741577 }
15751578 } else {
0 commit comments