| with Ada.Numerics.Discrete_Random; |
| |
| package Oversize is |
| |
| subtype M1 is Integer range 1 .. 200; -- Won't trigger |
| type R1 (D : M1 := 100) is record |
| Name : String (1 .. D); |
| end record; |
| |
| type M2 is new Integer range 1 .. 200; -- Won't trigger |
| for M2'Size use 64; |
| type M2S is array (M2 range <>) of Character; |
| type R2 (D : M2 := 100) is record |
| Name : M2S (1 .. D); |
| end record; |
| |
| subtype M3 is Integer; -- Will trigger |
| type R3 (D : M3 := 100) -- { dg-error "may raise Storage_Error" } |
| is record |
| Name : String (1 .. D); |
| end record; |
| |
| type M4 is new Positive; -- Will trigger |
| type M4S is array (M4 range <>) of Character; |
| type R4 (D : M4 := 100) -- { dg-error "may raise Storage_Error" } |
| is record |
| Name : M4S (1 .. D); |
| end record; |
| |
| type M5 is new Positive; -- Will trigger |
| for M5'Size use Integer'Size - 1; |
| type M5S is array (M5 range <>) of Character; |
| type R5 (D : M5 := 100) -- { dg-error "may raise Storage_Error" } |
| is record |
| Name : M5S (1 .. D); |
| end record; |
| |
| subtype M6 is Integer range 1 .. (Integer'Last + 1)/2; -- Won't trigger |
| type R6 (D : M6 := 100) is record |
| Name : String (1 .. D); |
| end record; |
| |
| subtype M7 is Integer range 1 .. (Integer'Last + 1)/2+1; -- Will trigger |
| type R7 (D : M7 := 100) -- { dg-error "may raise Storage_Error" } |
| is record |
| Name : String (1 .. D); |
| end record; |
| |
| package P8 is new Ada.Numerics.Discrete_Random (Natural); |
| G8 : P8.Generator; |
| subtype M8 is Integer range 1 .. P8.Random (G8); -- Won't trigger |
| type R8 (D : M8 := 100) is record |
| Name : String (1 .. D); |
| end record; |
| |
| end Oversize; |