[all-commits] [llvm/llvm-project] 3d05ab: [flang] Better error handling and testing of gener...

Peter Klausler via All-commits all-commits at lists.llvm.org
Mon May 22 12:03:57 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 3d05ab6d3e24e76ff53b8d7d623c436b4be5b809
      https://github.com/llvm/llvm-project/commit/3d05ab6d3e24e76ff53b8d7d623c436b4be5b809
  Author: Peter Klausler <pklausler at nvidia.com>
  Date:   2023-05-22 (Mon, 22 May 2023)

  Changed paths:
    M flang/lib/Semantics/resolve-names.cpp
    M flang/test/Semantics/resolve17.f90
    M flang/test/Semantics/resolve18.f90
    A flang/test/Semantics/symbol27.f90

  Log Message:
  -----------
  [flang] Better error handling and testing of generics with homonymous specifics or derived types

Fortran allows a generic procedure interface to have the same name as a derived
type in the same scope or the same name as one of its specific procedures.
(It can't have both since a derived type and specific procedure can't have the
same name in a scope.)

Some popular compilers allow generic interfaces with distinct accessible homonymous
specific procedures to be merged by USE association.  Thsi compiler does not,
and for good reason: it leads to ambiguity in cases where a procedure name appears
outside a reference, such as in a PROCEDURE declaration statement as the procedure's
interface, the target of a procedure pointer assignment statement, or as an
actual argument.

This patch cleans up the code that handles these cases, improves some error
messages, and adds more tests.

Resolves https://github.com/llvm/llvm-project/issues/60228.

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




More information about the All-commits mailing list