[flang] Catch bad inquiries in specification expressions
authorPeter Klausler <pklausler@nvidia.com>
Thu, 5 Jan 2023 22:11:54 +0000 (14:11 -0800)
committerPeter Klausler <pklausler@nvidia.com>
Wed, 1 Feb 2023 20:49:20 +0000 (12:49 -0800)
commit05e62db29337fe17cf7983ceb999761bcb52148a
tree30ddeafdc9a2dff5d3bd3b75d9dcd0796f453331
parent2c46051aa9d30dc1740f2183ceb45a235b994cc3
[flang] Catch bad inquiries in specification expressions

When a descriptor inquiry or inquiry function's result is
not constant and is known to be impossible to correctly determine
at runtime, raise an error.  For example, LEN(X) when X is
a local allocatable variable with deferred length.

Differential Revision: https://reviews.llvm.org/D142759
flang/include/flang/Semantics/tools.h
flang/lib/Evaluate/check-expression.cpp
flang/lib/Semantics/check-declarations.cpp
flang/lib/Semantics/compute-offsets.cpp
flang/lib/Semantics/resolve-names.cpp
flang/lib/Semantics/tools.cpp
flang/test/Evaluate/errors01.f90
flang/test/Semantics/resolve89.f90