1generic
2package Abstract_Private is
3
4   type T1 is abstract tagged private;
5   procedure P1 (X : T1) is abstract;
6
7   type T2 is abstract tagged private;
8
9private
10
11   type T1 is abstract tagged null record;
12   procedure P2 (X : T1) is abstract; -- { dg-error "must be visible" }
13
14   type T2 is abstract new T1 with null record;
15   procedure P1 (X : T2) is abstract;
16
17end Abstract_Private;
18