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