[flang-commits] [flang] [flang] Silence errors on C_LOC/C_FUNLOC in specification expressions (PR #96108)
via flang-commits
flang-commits at lists.llvm.org
Wed Jun 19 14:09:16 PDT 2024
================
@@ -82,6 +82,8 @@ auto IsVariableHelper::operator()(const Symbol &symbol) const -> Result {
const Symbol &ultimate{symbol.GetUltimate()};
return !IsNamedConstant(ultimate) &&
(ultimate.has<semantics::ObjectEntityDetails>() ||
+ (ultimate.has<semantics::EntityDetails>() &&
+ ultimate.attrs().test(semantics::Attr::TARGET)) ||
----------------
jeanPerier wrote:
I am not sure I fully comprehend this change. Is it because IsVariable may be called on a symbol that is not fully resolved as being an object or a procedure yet by name resolution, but its TARGET argument allows telling it cannot be a procedure?
Is it always the case that the TARGET attribute will be set on time (could the symbol appear on a TARGET statement only late in the specification expressions that would be processed after this IsVariable call is made?).
https://github.com/llvm/llvm-project/pull/96108
More information about the flang-commits
mailing list