--  { dg-do compile }

procedure Interface6 is

     type TI  is interface;
     type TI2 is interface;

     type Rec_Type is tagged null record;

     type Rec_Type1 is new TI
     with
     record
         A : Integer;
     end record;

     type Rec_Type2 is new Rec_Type1 and TI2
     with
     record
         B : Integer;
     end record;

     type Rec_Type12 is new Rec_Type1 and TI and TI2
     with
     record
         C : Integer;
     end record;

     generic
         type T is new Rec_Type1 and TI2 with private;
     procedure Test;

     procedure Test is
     begin
         null;
     end Test;

     procedure Test_Instance1 is new Test (T => Rec_Type);  --  { dg-error "actual must implement all interfaces of formal \"T\"" }
     procedure Test_Instance1 is new Test (T => Rec_Type1);  -- { dg-error "actual \"Rec_Type1\" must implement interface \"TI2\"" }
     procedure Test_Instance2 is new Test (T => Rec_Type2);
     procedure Test_Instance12 is new Test (T => Rec_Type12);

begin
     null;
end Interface6;
