[flang] Fixed crash on forward referenced `len` parameter
authorPete Steinfeld <psteinfeld@nvidia.com>
Tue, 26 May 2020 22:12:15 +0000 (15:12 -0700)
committerPete Steinfeld <psteinfeld@nvidia.com>
Thu, 4 Jun 2020 20:12:11 +0000 (13:12 -0700)
commit1746c8ed2660c83895c79de94453f44f8e729a94
treea3daba7ec5870fe5a1b9b04d728a75a362e59a4a
parent42048ff97230dcf64a488a1eb5bbbf2c785b47f8
[flang] Fixed crash on forward referenced `len` parameter

Summary:
Using a forward reference to define a `len` parameter causes a crash.
The underlying cause was that a previously declared type had an
erroneous expression for its `LEN` param value.  When this expression
was referenced to evaluate a subsequent expression, bad things happened.
I fixed this by putting in code to detect this case.

Reviewers: tskeith, klausler, DavidTruby

Subscribers: llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D80593
flang/lib/Evaluate/variable.cpp
flang/test/Semantics/resolve91.f90