[flang] Extend characterization & checking for procedure bindings
authorPeter Klausler <pklausler@nvidia.com>
Tue, 9 Aug 2022 16:01:50 +0000 (09:01 -0700)
committerPeter Klausler <pklausler@nvidia.com>
Tue, 9 Aug 2022 19:01:45 +0000 (12:01 -0700)
commit46c49e66d8b2173b8b0467b907fb6d6b65e5e615
treed0a28318da06a01fc75ab3ce0d50f1f1fc7f696e
parent60076a9eaf5e1c0d66a5238aff3a776078911e4e
[flang] Extend characterization & checking for procedure bindings

Procedure bindings with explicit interfaces don't work when the
interface is shadowed by a generic interface of the same name,
and can produce spurious semantic error messages.  Extend the
characterization and checking code for such things, and the utility
functionns on which they depend, to dig through generics when they
occlude interface-defining subprograms.  This is done on demand in
checking code, not once during name resolution, because the
procedures in question may also be forward-referenced.

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

diff --git a/flang/include/flang/Semantics/symbol.h b/flang/include/flang/Semantics/symbol.h
index e79f8ab6503e..0b03bf06eb73 100644
--- a/flang/include/flang/Semantics/symbol.h
flang/include/flang/Semantics/symbol.h
flang/lib/Evaluate/characteristics.cpp
flang/lib/Semantics/check-declarations.cpp
flang/lib/Semantics/resolve-names.cpp
flang/lib/Semantics/tools.cpp
flang/test/Semantics/resolve20.f90