This is an archive of the discontinued LLVM Phabricator instance.

[flang] Block containing an interface
ClosedPublic

Authored by vdonaldson on Jun 29 2023, 11:15 AM.

Details

Summary

Name mangling may be invoked for an interface procedure contained in
a block in a context that does not have access to block ID mapping.
Procedures can't be defined inside a block, so name mangling doesn't
need a block map. Relax an assert to account for this.

block
  interface
    subroutine ss(n) bind(c)
      integer :: n
    end subroutine
  end interface
  call ss(5)
end

Diff Detail

Event Timeline

vdonaldson created this revision.Jun 29 2023, 11:15 AM
vdonaldson requested review of this revision.Jun 29 2023, 11:15 AM
PeteSteinfeld accepted this revision.Jun 29 2023, 1:04 PM

All builds and tests correctly and looks good.

This revision is now accepted and ready to land.Jun 29 2023, 1:04 PM