[all-commits] [llvm/llvm-project] 635656: [flang] Expunge needless semantics::ProcInterface

Peter Klausler via All-commits all-commits at lists.llvm.org
Fri Dec 16 10:44:49 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 635656f4ff1e0b74761af109f50d33287477d1db
      https://github.com/llvm/llvm-project/commit/635656f4ff1e0b74761af109f50d33287477d1db
  Author: Peter Klausler <pklausler at nvidia.com>
  Date:   2022-12-16 (Fri, 16 Dec 2022)

  Changed paths:
    M flang/include/flang/Evaluate/characteristics.h
    M flang/include/flang/Semantics/symbol.h
    M flang/include/flang/Semantics/type.h
    M flang/lib/Evaluate/call.cpp
    M flang/lib/Evaluate/characteristics.cpp
    M flang/lib/Evaluate/shape.cpp
    M flang/lib/Evaluate/tools.cpp
    M flang/lib/Semantics/check-declarations.cpp
    M flang/lib/Semantics/mod-file.cpp
    M flang/lib/Semantics/resolve-names-utils.cpp
    M flang/lib/Semantics/resolve-names.cpp
    M flang/lib/Semantics/symbol.cpp
    M flang/lib/Semantics/tools.cpp
    M flang/lib/Semantics/type.cpp
    A flang/test/Semantics/procinterface03.f90

  Log Message:
  -----------
  [flang] Expunge needless semantics::ProcInterface

The ProcInterface structure is used only by ProcEntityDetails; it represents
what a program might have put in parentheses in a procedure-declaration-stmt,
either the name of a procedure interface or a declaration-type-spec.

If a procedure entity has an implicit interface, the function result
type (if any) can be kept in EntityDetails::type_, which already exists
and is currently redundant for ProcEntityDetails symbols.

All that is really needed is a nullable Symbol pointer in ProcEntityDetails
to point to the procedure's explicit interface, when it has one.

Also, catch the case where a procedure has an explicit interface
and a program attempts to also give it a type.

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




More information about the All-commits mailing list