1-- { dg-do compile } 2 3procedure Interface6 is 4 5 type TI is interface; 6 type TI2 is interface; 7 8 type Rec_Type is tagged null record; 9 10 type Rec_Type1 is new TI 11 with 12 record 13 A : Integer; 14 end record; 15 16 type Rec_Type2 is new Rec_Type1 and TI2 17 with 18 record 19 B : Integer; 20 end record; 21 22 type Rec_Type12 is new Rec_Type1 and TI and TI2 23 with 24 record 25 C : Integer; 26 end record; 27 28 generic 29 type T is new Rec_Type1 and TI2 with private; 30 procedure Test; 31 32 procedure Test is 33 begin 34 null; 35 end Test; 36 37 procedure Test_Instance1 is new Test (T => Rec_Type); -- { dg-error "actual must implement all interfaces of formal \"T\"" } 38 procedure Test_Instance1 is new Test (T => Rec_Type1); -- { dg-error "Actual \"Rec_Type1\" must implement interface \"TI2\"" } 39 procedure Test_Instance2 is new Test (T => Rec_Type2); 40 procedure Test_Instance12 is new Test (T => Rec_Type12); 41 42begin 43 null; 44end Interface6; 45