diff --git a/flang/lib/Semantics/expression.cpp b/flang/lib/Semantics/expression.cpp --- a/flang/lib/Semantics/expression.cpp +++ b/flang/lib/Semantics/expression.cpp @@ -2434,7 +2434,8 @@ } } if (const auto *details{ultimate.detailsIf()}) { - for (const Symbol &specific : details->specificProcs()) { + for (const Symbol &specific0 : details->specificProcs()) { + const Symbol &specific{BypassGeneric(specific0)}; if (isSubroutine != !IsFunction(specific)) { continue; }