This is an archive of the discontinued LLVM Phabricator instance.

flang] Fix spurious errors from MODULE subprograms
ClosedPublic

Authored by klausler on Sep 22 2022, 9:02 AM.

Details

Summary

[When an explicit MODULE procedure is defined in the same (sub)module
as its interface, and the interface was defined in a generic
interface of the same name, bogus errors about symbols already
having been defined will ensue. Cleaning up this aspect of name
resolution and symbol table management requires marking the
place-holding SubprogramNameDetails symbols of explicit MODULE
subprograms as such, ensuring that that attribute is not inherited
if the SubprogramNameDetails symbol is recycled as a SubprogramDetails,
and gathering some code that should have been common between
BeginSubprogram() and BeginMpSubprogram() together in one
new routine.

Diff Detail

Event Timeline

klausler created this revision.Sep 22 2022, 9:02 AM
Herald added a project: Restricted Project. · View Herald TranscriptSep 22 2022, 9:02 AM
Herald added a subscriber: jdoerfert. · View Herald Transcript
klausler requested review of this revision.Sep 22 2022, 9:02 AM
PeteSteinfeld accepted this revision.Sep 22 2022, 10:31 AM

All builds and tests correctly and looks good.

This revision is now accepted and ready to land.Sep 22 2022, 10:31 AM
This revision was automatically updated to reflect the committed changes.