From 88351826ff93484f2cf5863181993fcaf4565d7e Mon Sep 17 00:00:00 2001 From: cdchen-ca Date: Wed, 7 Feb 2024 23:23:16 -0500 Subject: [PATCH] [Flang] Update the fix of PR 80738 to cover generic interface inside modules. --- flang/lib/Semantics/resolve-names.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/flang/lib/Semantics/resolve-names.cpp b/flang/lib/Semantics/resolve-names.cpp index 36deab969456d..2a42c79161468 100644 --- a/flang/lib/Semantics/resolve-names.cpp +++ b/flang/lib/Semantics/resolve-names.cpp @@ -5648,9 +5648,10 @@ void DeclarationVisitor::Post(const parser::ProcDecl &x) { const auto &name{std::get(x.t)}; const Symbol *procInterface{nullptr}; if (interfaceName_) { - procInterface = interfaceName_->symbol->has() - ? interfaceName_->symbol->get().specific() - : interfaceName_->symbol; + Symbol *ultimate{&interfaceName_->symbol->GetUltimate()}; + procInterface = ultimate->has() + ? ultimate->get().specific() + : ultimate; } auto attrs{HandleSaveName(name.source, GetAttrs())}; DerivedTypeDetails *dtDetails{nullptr};