diff options
author | Peter Klausler <pklausler@nvidia.com> | 2025-10-10 10:08:39 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-10-10 10:08:39 -0700 |
commit | 8b930895c47ef64b414ddd4e61a361c90b60c4dd (patch) | |
tree | 89ced8012a7e7a46191aa214238d43d2afc989d9 /lldb/source/Plugins/ScriptInterpreter/Python | |
parent | ea291d0e8c93d47d7953eff5ca1048891a5fcc55 (diff) | |
download | llvm-8b930895c47ef64b414ddd4e61a361c90b60c4dd.zip llvm-8b930895c47ef64b414ddd4e61a361c90b60c4dd.tar.gz llvm-8b930895c47ef64b414ddd4e61a361c90b60c4dd.tar.bz2 |
[flang] Don't misinterpret valid component value for ancestor type (#161910)
As a common language extension, this compiler accepts a structure
constructor whose first value has no keyword and whose type matches an
ancestral type as if the constructor had had a keyword whose name was
the ancestral type. For example, given
TYPE PARENT; REAL X; END TYPE
TYPE, EXTENDS(PARENT) :: CHILD; END TYPE
we accept the nonconforming constructor "child(parent(1.))" as if it had
been the conforming "child(1.)" or "child(parent=parent(1.))".
The detection of this case needs to be constrained a bit to avoid a
false positive misinterpretation of conforming code in the case where
the actual first component of the derived type is a POINTER or
ALLOCATABLE whose type and rank would allow it to correspond with the
keywordless first value in the component value list.
Fixes https://github.com/llvm/llvm-project/issues/161887.
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python')
0 files changed, 0 insertions, 0 deletions