131
|
1 -- { dg-do run }
|
|
2
|
|
3 procedure Float_Attributes_Overflows is
|
|
4
|
|
5 generic
|
|
6 type Float_Type is digits <>;
|
|
7 procedure Test_Float_Type;
|
|
8
|
|
9 procedure Test_Float_Type is
|
|
10 Biggest_Positive_float : Float_Type := Float_Type'Last;
|
|
11 Biggest_Negative_Float : Float_Type := Float_Type'First;
|
|
12 Float_Var : Float_Type;
|
|
13
|
|
14 begin
|
|
15 begin
|
|
16 Float_Var := Float_Type'succ (Biggest_Positive_Float);
|
|
17 raise Program_Error;
|
|
18 exception
|
|
19 when Constraint_Error => null;
|
|
20 end;
|
|
21
|
|
22 begin
|
|
23 Float_Var := Float_Type'pred (Biggest_Negative_Float);
|
|
24 raise Program_Error;
|
|
25 exception
|
|
26 when Constraint_Error => null;
|
|
27 end;
|
|
28 end Test_Float_Type;
|
|
29
|
|
30 procedure Test_Float is new Test_Float_Type (Float);
|
|
31 procedure Test_Long_Float is new Test_Float_Type (Long_Float);
|
|
32 begin
|
|
33 Test_Float;
|
|
34 Test_Long_Float;
|
|
35 end Float_Attributes_Overflows;
|