[all-commits] [llvm/llvm-project] ae0d1d: [flang] Fix bogus message on internal subprogram w...

Pete Steinfeld via All-commits all-commits at lists.llvm.org
Fri Jan 8 10:19:09 PST 2021


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: ae0d1d2e5cd3a99da0b2eefc27c8f94b95f03cc6
      https://github.com/llvm/llvm-project/commit/ae0d1d2e5cd3a99da0b2eefc27c8f94b95f03cc6
  Author: Peter Steinfeld <psteinfeld at nvidia.com>
  Date:   2021-01-08 (Fri, 08 Jan 2021)

  Changed paths:
    M flang/include/flang/Common/Fortran.h
    M flang/include/flang/Evaluate/call.h
    M flang/include/flang/Parser/parse-tree.h
    M flang/lib/Evaluate/call.cpp
    M flang/lib/Evaluate/formatting.cpp
    M flang/lib/Semantics/check-call.cpp
    M flang/lib/Semantics/expression.cpp
    A flang/test/Semantics/altreturn06.f90

  Log Message:
  -----------
  [flang] Fix bogus message on internal subprogram with alternate return

Internal subprograms have explicit interfaces.  If an internal subprogram has
an alternate return, we check its explicit interface.  But we were not
putting the label values of alternate returns into the actual argument.

I fixed this by changing the definition of actual arguments to be able
to contain a common::Label and putting the label for an alternate return
into the actual argument.

I also verified that we were already doing all of the semantic checking
required for alternate returns and removed a "TODO" for this.

I also added the test altreturn06.f90.

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




More information about the All-commits mailing list