-- { dg-do compile }
package Discr6 is
  subtype Index_T is Integer range 0 .. 15;
  type Arr is array (Index_T range <> ) of Long_Long_Integer;
  type Rec2 (Size : Index_T := 2) is record
    A : Arr (2 .. Size);
  end record;
  type Rec3 (D : Boolean := False) is record
    R : Rec2;
    case D is
      when False=> null;
      when True => I : Integer;
    end case;
  end record;
end Discr6;