[flang] Create HostAssocDetails symbols when needed for mis-parsed ArrayRef
authorJean Perier <jperier@nvidia.com>
Wed, 7 Jul 2021 08:06:43 +0000 (10:06 +0200)
committerJean Perier <jperier@nvidia.com>
Wed, 7 Jul 2021 08:07:19 +0000 (10:07 +0200)
commitc2d4d6a1fde127316aae2fdd48b4322857987be3
tree9315071ec606e1c67a34fbf998cf9cc977cdefda
parent0c1a7730f5372e862150f313df4d9c44757352f4
[flang] Create HostAssocDetails symbols when needed for mis-parsed ArrayRef

Name resolution is always creating symbols with HostAssocDetails
for host variable names inside internal procedures. This helps lowering
identifying and dealing with such variables inside internal procedures.

However, the case where the variable appears in an ArrayRef mis-parsed
as a FunctionRef goes through a different name resolution path that did
not create such HostAssocDetails when needed. Pointer assignment RHS
are also skipping this path.

Add the logic to create HostAssocDetails for host symbols inisde internal
procedures that appear in mis-parsed ArrayRef or in pointer assignment RHS.

Differential Revision: https://reviews.llvm.org/D105464
flang/lib/Semantics/resolve-names.cpp
flang/test/Semantics/symbol03.f90