diff options
author | Jerome Guitton <guitton@adacore.com> | 2009-03-19 14:08:50 +0000 |
---|---|---|
committer | Jerome Guitton <guitton@adacore.com> | 2009-03-19 14:08:50 +0000 |
commit | c31af87b2e65cd40a9fb26ae08306a8ff559302a (patch) | |
tree | ce7b7593816292387221823e1f3afcb7af4633d9 | |
parent | 156621f3447ad88981645265931ab2e75aebce9f (diff) | |
download | gdb-c31af87b2e65cd40a9fb26ae08306a8ff559302a.zip gdb-c31af87b2e65cd40a9fb26ae08306a8ff559302a.tar.gz gdb-c31af87b2e65cd40a9fb26ae08306a8ff559302a.tar.bz2 |
* gdb.ada/fixed_points/fixed_points.adb: Add a test on overprecise
deltas.
* gdb.ada/fixed_points.exp: Ditto.
-rw-r--r-- | gdb/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/testsuite/gdb.ada/fixed_points.exp | 10 | ||||
-rw-r--r-- | gdb/testsuite/gdb.ada/fixed_points/fixed_points.adb | 39 |
3 files changed, 48 insertions, 7 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 784f271..a409c4d 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2009-03-19 Jerome Guitton <guitton@adacore.com> + + * gdb.ada/fixed_points/fixed_points.adb: Add a test on overprecise + deltas. + * gdb.ada/fixed_points.exp: Ditto. + 2009-03-18 Pedro Alves <pedro@codesourcery.com> * return-nodebug.c: Don't include stdio.h. diff --git a/gdb/testsuite/gdb.ada/fixed_points.exp b/gdb/testsuite/gdb.ada/fixed_points.exp index b399244..abc94c8 100644 --- a/gdb/testsuite/gdb.ada/fixed_points.exp +++ b/gdb/testsuite/gdb.ada/fixed_points.exp @@ -37,6 +37,8 @@ gdb_load ${binfile} set bp_location [gdb_get_line_number "Set breakpoint here" ${testdir}/fixed_points.adb] runto "fixed_points.adb:$bp_location" +# Fixed point subtypes: + gdb_test "print base_object" \ "= -50" \ "p on a fixed point type" @@ -48,3 +50,11 @@ gdb_test "print subtype_object" \ gdb_test "print new_type_object" \ "= -50" \ "p on a new fixed point type" + +# Overprecise delta: + +gdb_test "print Overprecise_Object" \ + "= 0.13579135791" + +gdb_test "ptype Overprecise_Object" \ + "= delta 0.135791" diff --git a/gdb/testsuite/gdb.ada/fixed_points/fixed_points.adb b/gdb/testsuite/gdb.ada/fixed_points/fixed_points.adb index eab016f..f3e4cf0 100644 --- a/gdb/testsuite/gdb.ada/fixed_points/fixed_points.adb +++ b/gdb/testsuite/gdb.ada/fixed_points/fixed_points.adb @@ -17,22 +17,47 @@ with System; procedure Fixed_Points is + ------------ + -- Test 1 -- + ------------ + + -- Fixed point subtypes + type Base_Fixed_Point_Type is delta 1.0 / 16.0 range (System.Min_Int / 2) * 1.0 / 16.0 .. (System.Max_Int / 2) * 1.0 / 16.0; - subtype Fixed_Point_Subtype is - Base_Fixed_Point_Type range -50.0 .. 50.0; + subtype Fixed_Point_Subtype is + Base_Fixed_Point_Type range -50.0 .. 50.0; + + type New_Fixed_Point_Type is + new Base_Fixed_Point_Type range -50.0 .. 50.0; + + Base_Object : Base_Fixed_Point_Type := -50.0; + Subtype_Object : Fixed_Point_Subtype := -50.0; + New_Type_Object : New_Fixed_Point_Type := -50.0; + + + ------------ + -- Test 2 -- + ------------ + + -- Overprecise delta + + Overprecise_Delta : constant := 0.135791357913579; + -- delta whose significant figures cannot be stored into a long. + + type Overprecise_Fixed_Point is + delta Overprecise_Delta range 0.0 .. 200.0; + for Overprecise_Fixed_Point'Small use Overprecise_Delta; - type New_Fixed_Point_Type is - new Base_Fixed_Point_Type range -50.0 .. 50.0; + Overprecise_Object : Overprecise_Fixed_Point := + Overprecise_Fixed_Point'Small; - Base_Object : Base_Fixed_Point_Type := -50.0; - Subtype_Object : Fixed_Point_Subtype := -50.0; - New_Type_Object : New_Fixed_Point_Type := -50.0; begin Base_Object := 1.0/16.0; -- Set breakpoint here Subtype_Object := 1.0/16.0; New_Type_Object := 1.0/16.0; + Overprecise_Object := Overprecise_Fixed_Point'Small * 2; end Fixed_Points; |