This is an archive of the discontinued LLVM Phabricator instance.

[flang] Extend characterization & checking for procedure bindings
ClosedPublic

Authored by klausler on Aug 3 2022, 1:07 PM.

Details

Summary

Procedure bindings with explicit interfaces don't work when the
interface is shadowed by a generic interface of the same name,
and can produce spurious semantic error messages. Extend the
characterization and checking code for such things, and the utility
functionns on which they depend, to dig through generics when they
occlude interface-defining subprograms. This is done on demand in
checking code, not once during name resolution, because the
procedures in question may also be forward-referenced.

Diff Detail

Event Timeline

klausler created this revision.Aug 3 2022, 1:07 PM
Herald added a project: Restricted Project. · View Herald TranscriptAug 3 2022, 1:07 PM
Herald added a subscriber: jdoerfert. · View Herald Transcript
klausler requested review of this revision.Aug 3 2022, 1:07 PM
klausler updated this revision to Diff 449787.Aug 3 2022, 2:29 PM

Use updated clang-format.

Clang Format is still unhappy after your formatting change:

changed files:
    flang/lib/Evaluate/characteristics.cpp
    flang/lib/Semantics/check-declarations.cpp
    flang/lib/Semantics/tools.cpp
ERROR   git-clang-format returned an non-zero exit code 1

Otherwise, the change looks good to me

klausler updated this revision to Diff 450287.Aug 5 2022, 7:33 AM

Continue negotiations with clang-format.

This revision was not accepted when it landed; it landed in state Needs Review.Aug 9 2022, 12:02 PM
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.