This is an archive of the discontinued LLVM Phabricator instance.

[flang] Clean up bogus semantic error on procedure pointer assignment
ClosedPublic

Authored by klausler on Jul 22 2022, 12:20 PM.

Details

Summary

When a procedure pointer with no interface is associated with
an EXTERNAL name with no interface information, but it is later
inferred that the procedure pointer must be a subroutine because it
appears in a CALL statement, don't complain that the EXTERNAL name
is not also known to be a subroutine.

Subroutine vs. function errors are still caught in procedure pointer
assignment compatibility checking; this fix simply ensures that those
more nuanced tests are not overridded by the attribute set equality test.

Also, leave in some code for dumping the differing attributes in legitimate
error cases that was added in the coures of debugging the specific problem.

Diff Detail

Event Timeline

klausler created this revision.Jul 22 2022, 12:20 PM
Herald added a project: Restricted Project. · View Herald TranscriptJul 22 2022, 12:20 PM
Herald added a subscriber: jdoerfert. · View Herald Transcript
klausler requested review of this revision.Jul 22 2022, 12:20 PM
vdonaldson accepted this revision.Jul 22 2022, 1:08 PM
This revision is now accepted and ready to land.Jul 22 2022, 1:08 PM