1-- { dg-do run }
2-- { dg-options "-gnatp" }
3
4procedure Hyper_Flat is
5
6   type Unsigned is mod 2 ** 32;
7   x : Integer := 0;
8   pragma Volatile (X);
9
10   S : constant String := (1 .. X - 3 => 'A');
11   --  Hyper-flat null string
12
13begin
14   if Unsigned'(S'Length) /= 0 then
15      raise Program_Error;
16   end if;
17end;
18