[flang] LBOUND() edge case: empty dimension
authorPeter Klausler <pklausler@nvidia.com>
Wed, 9 Mar 2022 21:43:54 +0000 (13:43 -0800)
committerPeter Klausler <pklausler@nvidia.com>
Mon, 14 Mar 2022 18:16:09 +0000 (11:16 -0700)
commit3b61587c9e27747438a0364f8b8cf19273142452
tree769c2bfa3f29df57933c5d533fb8eb27105da0b4
parentc2e7e7595439be81b498de842ee49e4409645c0e
[flang] LBOUND() edge case: empty dimension

LBOUND must return 1 for an empty dimension, no matter what
explicit expression might appear in a declaration or arrive in
a descriptor.

Differential Revision: https://reviews.llvm.org/D121488
13 files changed:
flang/docs/Extensions.md
flang/include/flang/Evaluate/shape.h
flang/include/flang/Runtime/descriptor.h
flang/lib/Evaluate/check-expression.cpp
flang/lib/Evaluate/constant.cpp
flang/lib/Evaluate/fold-designator.cpp
flang/lib/Evaluate/fold-integer.cpp
flang/lib/Evaluate/fold.cpp
flang/lib/Evaluate/shape.cpp
flang/lib/Semantics/runtime-type-info.cpp
flang/runtime/ISO_Fortran_binding.cpp
flang/runtime/pointer.cpp
flang/test/Evaluate/folding08.f90