[flang-commits] [PATCH] D124541: [flang] Allow for host association in ConvertTo(Object|Proc)Entity
Peter Klausler via Phabricator via flang-commits
flang-commits at lists.llvm.org
Wed Apr 27 10:52:57 PDT 2022
klausler created this revision.
klausler added a reviewer: vdonaldson.
klausler added a project: Flang.
Herald added a subscriber: jdoerfert.
Herald added a project: All.
klausler requested review of this revision.
Name resolution fails with a bogus "is not a variable" error message
when a host-associated object appears in a NAMELIST group. The root
cause is that ConvertToObjectEntity() returns false for host-associated
objects. Fix that, and also apply a similar fix to ConvertToProcEntity()
nearby.
https://reviews.llvm.org/D124541
Files:
flang/lib/Semantics/resolve-names.cpp
Index: flang/lib/Semantics/resolve-names.cpp
===================================================================
--- flang/lib/Semantics/resolve-names.cpp
+++ flang/lib/Semantics/resolve-names.cpp
@@ -2423,6 +2423,8 @@
symbol.set_details(ObjectEntityDetails{std::move(*details)});
} else if (auto *useDetails{symbol.detailsIf<UseDetails>()}) {
return useDetails->symbol().has<ObjectEntityDetails>();
+ } else if (auto *hostDetails{symbol.detailsIf<HostAssocDetails>()}) {
+ return hostDetails->symbol().has<ObjectEntityDetails>();
} else {
return false;
}
@@ -2441,6 +2443,10 @@
CHECK(!symbol.test(Symbol::Flag::Subroutine));
symbol.set(Symbol::Flag::Function);
}
+ } else if (auto *useDetails{symbol.detailsIf<UseDetails>()}) {
+ return useDetails->symbol().has<ProcEntityDetails>();
+ } else if (auto *hostDetails{symbol.detailsIf<HostAssocDetails>()}) {
+ return hostDetails->symbol().has<ProcEntityDetails>();
} else {
return false;
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D124541.425569.patch
Type: text/x-patch
Size: 1005 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/flang-commits/attachments/20220427/b6647c69/attachment-0001.bin>
More information about the flang-commits
mailing list