[all-commits] [llvm/llvm-project] d1e4a2: [flang] Fix spurious error with separate module pr...

Peter Klausler via All-commits all-commits at lists.llvm.org
Wed Sep 4 10:55:08 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: d1e4a2d300f7c0c6b681ddf719132c81d348aaab
      https://github.com/llvm/llvm-project/commit/d1e4a2d300f7c0c6b681ddf719132c81d348aaab
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-09-04 (Wed, 04 Sep 2024)

  Changed paths:
    M flang/include/flang/Semantics/expression.h
    M flang/include/flang/Semantics/semantics.h
    M flang/lib/Semantics/expression.cpp
    M flang/lib/Semantics/semantics.cpp
    A flang/test/Semantics/smp-proc-ref.f90

  Log Message:
  -----------
  [flang] Fix spurious error with separate module procedures (#106768)

When the implementation of one SMP apparently references another in what
might be a specification expression, semantics may need to resolve it as
a forward reference, and to allow for the replacement of a
SubprogramNameDetails place-holding symbol with the final
SubprogramDetails symbol. Otherwise, as in the bug report below,
confusing error messages may result.

(The reference in question isn't really in the specification part of a
subprogram, but due to the syntactic ambiguity between the array element
assignment statement and a statement function definition, it appears to
be so at the time that the reference is processed.)

I needed to make DumpSymbols() available via SemanticsContext to analyze
this bug, and left that new API in place to make things easier next
time.

Fixes https://github.com/llvm/llvm-project/issues/106705.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list