[flang] Fix misparsed structure constructor in data stmt
authorTim Keith <tkeith@nvidia.com>
Wed, 26 Feb 2020 01:13:56 +0000 (17:13 -0800)
committerTim Keith <tkeith@nvidia.com>
Wed, 26 Feb 2020 01:13:56 +0000 (17:13 -0800)
commit914a91c1c3228c2eb760cc9c597a4dbc955d4954
tree40cf43b7200e70cd45b0615028e714fbf2a9c75b
parent327ec4d2f2945ae44197d1806e4a1b5e2b98d3eb
[flang] Fix misparsed structure constructor in data stmt

In a data statement like `data x / a(1) /`, `a(1)` may be an array
element or a structure constructor. It is parsed as an array element
so if it turns out `a` is a derived type it must be rewritten as a
strucutre constructor.

Original-commit: flang-compiler/f18@a2b2a330e7dbb8d719fdab9bb28921cf84f503ca
Reviewed-on: https://github.com/flang-compiler/f18/pull/1024
flang/include/flang/Parser/parse-tree.h
flang/include/flang/Parser/tools.h
flang/lib/Parser/parse-tree.cpp
flang/lib/Semantics/resolve-names.cpp
flang/test/Semantics/data01.f90