summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Klausler <pklausler@nvidia.com>2021-11-02 16:41:15 -0700
committerPeter Klausler <pklausler@nvidia.com>2021-11-08 11:19:20 -0800
commitf411c1dd95092139c8b992260705ac0b75c8583f (patch)
treef0cfcd1413c6948e89cd2e0a77fe65d934b0edf6
parentc0b298fc213c1b33e97ca72fba58597365375875 (diff)
downloadllvm-f411c1dd95092139c8b992260705ac0b75c8583f.tar.gz
[flang] Fix crash in semantic error recovery situation
A CHECK() in semantics is triggering when analyzing a program with an undefined derived type pointer because the CHECK is expecting a new error message to have been issued in a function but not allowing for the case that a diagnostic could have been produced earlier. Adjust the predicate. Differential Revision: https://reviews.llvm.org/D113307
-rw-r--r--flang/lib/Semantics/expression.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/flang/lib/Semantics/expression.cpp b/flang/lib/Semantics/expression.cpp
index 331b9b2cf5bc..8ee8c9a9c9ce 100644
--- a/flang/lib/Semantics/expression.cpp
+++ b/flang/lib/Semantics/expression.cpp
@@ -1916,7 +1916,7 @@ auto ExpressionAnalyzer::AnalyzeProcedureComponentRef(
"Base of procedure component reference is not a derived-type object"_err_en_US);
}
}
- CHECK(!GetContextualMessages().empty());
+ CHECK(context_.AnyFatalError());
return std::nullopt;
}