[all-commits] [llvm/llvm-project] bfc390: [flang] Fix spurious errors from MODULE subprograms

Peter Klausler via All-commits all-commits at lists.llvm.org
Fri Sep 23 13:12:48 PDT 2022

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: bfc39073692550132f49c22f848ad145f7350fbf
  Author: Peter Klausler <pklausler at nvidia.com>
  Date:   2022-09-23 (Fri, 23 Sep 2022)

  Changed paths:
    M flang/include/flang/Semantics/symbol.h
    M flang/lib/Semantics/program-tree.cpp
    M flang/lib/Semantics/resolve-names.cpp
    M flang/lib/Semantics/symbol.cpp
    M flang/test/Semantics/nullify02.f90

  Log Message:
  [flang] Fix spurious errors from MODULE subprograms

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.

Differential Revision: https://reviews.llvm.org/D134446

More information about the All-commits mailing list