@@ -185,7 +185,8 @@ static void CheckCharacterActual(evaluate::Expr<evaluate::SomeType> &actual,
185
185
} else if (static_cast <std::size_t >(actualOffset->offset ()) >=
186
186
actualOffset->symbol ().size () ||
187
187
!evaluate::IsContiguous (
188
- actualOffset->symbol (), foldingContext)) {
188
+ actualOffset->symbol (), foldingContext)
189
+ .value_or (false )) {
189
190
// If substring, take rest of substring
190
191
if (*actualLength > 0 ) {
191
192
actualChars -=
@@ -598,7 +599,8 @@ static void CheckExplicitDataArg(const characteristics::DummyDataObject &dummy,
598
599
context.IsEnabled (
599
600
common::LanguageFeature::ContiguousOkForSeqAssociation) &&
600
601
actualLastSymbol &&
601
- evaluate::IsContiguous (*actualLastSymbol, foldingContext)};
602
+ evaluate::IsContiguous (*actualLastSymbol, foldingContext)
603
+ .value_or (false )};
602
604
if (actualIsArrayElement && actualLastSymbol &&
603
605
!dummy.ignoreTKR .test (common::IgnoreTKR::Contiguous)) {
604
606
if (IsPointer (*actualLastSymbol)) {
@@ -663,7 +665,8 @@ static void CheckExplicitDataArg(const characteristics::DummyDataObject &dummy,
663
665
} else if (static_cast <std::size_t >(actualOffset->offset ()) >=
664
666
actualOffset->symbol ().size () ||
665
667
!evaluate::IsContiguous (
666
- actualOffset->symbol (), foldingContext)) {
668
+ actualOffset->symbol (), foldingContext)
669
+ .value_or (false )) {
667
670
actualElements = 1 ;
668
671
} else if (auto actualSymType{evaluate::DynamicType::From (
669
672
actualOffset->symbol ())}) {
@@ -1566,10 +1569,10 @@ static bool CheckElementalConformance(parser::ContextualMessages &messages,
1566
1569
" ) corresponding to dummy argument #" + std::to_string (index) +
1567
1570
" ('" + dummy.name + " ')" };
1568
1571
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 ) ) {
1573
1576
return false ;
1574
1577
}
1575
1578
} else {
0 commit comments