https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108183
--- Comment #10 from Iain Sandoe <iains at gcc dot gnu.org> ---
It looks to me that we never check if Sym is a definition/implementation - only
that the containing scope is.
I probably miss something subtle - but perhaps
IF NOT IsDefImp(Sym)
RETURN ( TRUE )
before the mod := line
?
(*
IsExternal -
*)
PROCEDURE IsExternal (sym: CARDINAL) : BOOLEAN ;
VAR
mod: CARDINAL ;
BEGIN
mod := GetScope(sym) ;
REPEAT
IF mod=NulSym
THEN
RETURN( FALSE )
ELSIF IsDefImp(mod)
THEN
RETURN( mod#GetMainModule() )
END ;
mod := GetScope(mod)
UNTIL mod=NulSym ;
RETURN( FALSE )
END IsExternal ;