package pa is type t is range 0 to 3; end package; use work.pa.t; package pb is function f (a,b:t) return t ; function "="(a,b:t) return boolean; end package; use work.pa."+"; -- This side note is not part of the bug report: with vhdl pre-2008 this use clause should be required (I think) and it is not -- use work.pa."="; package body pb is function f (a,b:t) return t is begin return a+b; end function; function "="(a,b:t) return boolean is begin return a=b; end function; end package body; use work.pa.all; -- fails with and without this use clause use work.pb.f; use work.pb."="; -- this causes the problem entity e is begin assert f(1,2)=0 severity note; end entity; architecture a of e is begin end architecture;