blob: 5f0a51412e464cbf3e5fe7fe8a99c9904c0e1843 [file] [log] [blame]
-- { dg-do compile }
procedure Generic_Call_CW is
generic
type Subscriber_Type is tagged private;
with procedure On_Changed (Subscriber : in out Subscriber_Type'Class);
package My_Generic is
type Subscriber_Ptr is access all Subscriber_Type'Class;
procedure Update;
Subscriber : Subscriber_Ptr := null;
end;
package body My_Generic is
procedure Update is
begin
if Subscriber /= null then
Subscriber.On_Changed;
end if;
end;
end;
package User is
type Integer_Subscriber is tagged null record;
procedure On_Changed_Int (I : in out Integer_Subscriber'Class) is null;
package P is new My_Generic
(Subscriber_Type => Integer_Subscriber,
On_Changed => On_Changed_Int);
end;
begin
null;
end;