]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gdb/testsuite/gdb.ada/fixed_points/fixed_points.adb
avoid unwarranted assumption in gdb.ada/fixed_points/fixed_points.adb
[thirdparty/binutils-gdb.git] / gdb / testsuite / gdb.ada / fixed_points / fixed_points.adb
1 -- Copyright 2004-2020 Free Software Foundation, Inc.
2 --
3 -- This program is free software; you can redistribute it and/or modify
4 -- it under the terms of the GNU General Public License as published by
5 -- the Free Software Foundation; either version 3 of the License, or
6 -- (at your option) any later version.
7 --
8 -- This program is distributed in the hope that it will be useful,
9 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
10 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 -- GNU General Public License for more details.
12 --
13 -- You should have received a copy of the GNU General Public License
14 -- along with this program. If not, see <http://www.gnu.org/licenses/>.
15
16 with System;
17
18 procedure Fixed_Points is
19
20 ------------
21 -- Test 1 --
22 ------------
23
24 -- Fixed point subtypes
25
26 type Base_Fixed_Point_Type is
27 delta 1.0 / 16.0
28 range -2147483648 * 1.0 / 16.0 .. 2147483647 * 1.0 / 16.0;
29
30 subtype Fixed_Point_Subtype is
31 Base_Fixed_Point_Type range -50.0 .. 50.0;
32
33 type New_Fixed_Point_Type is
34 new Base_Fixed_Point_Type range -50.0 .. 50.0;
35
36 Base_Object : Base_Fixed_Point_Type := -50.0;
37 Subtype_Object : Fixed_Point_Subtype := -50.0;
38 New_Type_Object : New_Fixed_Point_Type := -50.0;
39
40
41 ------------
42 -- Test 2 --
43 ------------
44
45 -- Overprecise delta
46
47 Overprecise_Delta : constant := 0.135791357913579;
48 -- delta whose significant figures cannot be stored into a long.
49
50 type Overprecise_Fixed_Point is
51 delta Overprecise_Delta range 0.0 .. 200.0;
52 for Overprecise_Fixed_Point'Small use Overprecise_Delta;
53
54 Overprecise_Object : Overprecise_Fixed_Point :=
55 Overprecise_Fixed_Point'Small;
56
57 begin
58 Base_Object := 1.0/16.0; -- Set breakpoint here
59 Subtype_Object := 1.0/16.0;
60 New_Type_Object := 1.0/16.0;
61 Overprecise_Object := Overprecise_Fixed_Point'Small * 2;
62 end Fixed_Points;