aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Evaluate/check-expression.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'flang/lib/Evaluate/check-expression.cpp')
-rw-r--r--flang/lib/Evaluate/check-expression.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/flang/lib/Evaluate/check-expression.cpp b/flang/lib/Evaluate/check-expression.cpp
index 647eebaaa0..839717d 100644
--- a/flang/lib/Evaluate/check-expression.cpp
+++ b/flang/lib/Evaluate/check-expression.cpp
@@ -1304,10 +1304,12 @@ std::optional<bool> IsContiguous(const A &x, FoldingContext &context,
std::optional<bool> IsContiguous(const ActualArgument &actual,
FoldingContext &fc, bool namedConstantSectionsAreContiguous,
bool firstDimensionStride1) {
- auto *expr{actual.UnwrapExpr()};
- return expr &&
- IsContiguous(
- *expr, fc, namedConstantSectionsAreContiguous, firstDimensionStride1);
+ if (auto *expr{actual.UnwrapExpr()}) {
+ return IsContiguous(
+ *expr, fc, namedConstantSectionsAreContiguous, firstDimensionStride1);
+ } else {
+ return std::nullopt;
+ }
}
template std::optional<bool> IsContiguous(const Expr<SomeType> &,