entity e is end entity;
architecture h of e is
  type p is protected
    type t is range 0 to 2;
    function m return integer;
  end protected;
  type p is protected body
    function m return integer is begin return 123; end function;
  end protected body;
  shared variable v :p;
begin
  assert false report integer'image(v.m) severity note;
end architecture;