1-- { dg-do run }
2
3procedure Sizetype2 is
4
5  function Ident_Int (X : Integer) return Integer is
6  begin
7     return X;
8  end;
9
10  type A is array (Integer range <>) of Boolean;
11  subtype T1 is A (Ident_Int (- 6) .. Ident_Int (Integer'Last - 4));
12  subtype T2 is A (- 6 .. Ident_Int (Integer'Last - 4));
13  subtype T3 is A (Ident_Int (- 6) .. Integer'Last - 4);
14
15begin
16  if T1'Size /= 17179869200 then
17    raise Program_Error;
18  end if;
19
20  if T2'Size /= 17179869200 then
21    raise Program_Error;
22  end if;
23
24  if T3'Size /= 17179869200 then
25    raise Program_Error;
26  end if;
27end;
28