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 ;

Reply via email to