[pushed/Ada] avoid unwarranted assumption in gdb.ada/fixed_points/fixed_points.adb

Joel Brobecker brobecker@adacore.com
Sun Nov 1 11:39:03 GMT 2020


Hello,

This test program being used declares a fixed-point type
(Base_Fixed_Point_Type) Base_Fixed_Point_Type whose (scaled) range
is System.Min_Int .. System.Max_Int. is an unwarranted assumption because
the range is implementation-defined. It means the compiler is therefore
free to reject that declaration.

We noticed this while one of my coworkers was working on enhancing
GNAT to support 128bit integers. The bulk of the work has been done,
but one side-effect is that there is a small gap in this particular
area where the compiler is now rejecting this code. We will eventually
plug that gap, but in meantime, since the testcase itself doesn't really
need such a large range, this commit simply adjusts the test program
to use hard-coded bounds for the range whose value are more reasonable.

gdb/testsuite/ChangeLog:

        * gdb.ada/fixed_points/fixed_points.adb: Replace use of
        System.Min_Int and System.Max_Int with smaller hardcoded
        constants.

Tested on x86_64-linux.
Pushed to master.

Thank you,
-- 
Joel

---
 gdb/testsuite/ChangeLog                             | 6 ++++++
 gdb/testsuite/gdb.ada/fixed_points/fixed_points.adb | 3 +--
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 9b8370a4523..5d752d80acc 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2020-11-01  Joel Brobecker  <brobecker@adacore.com>
+
+	* gdb.ada/fixed_points/fixed_points.adb: Replace use of
+	System.Min_Int and System.Max_Int with smaller hardcoded
+	constants.
+
 2020-10-31  Simon Marchi  <simon.marchi@polymtl.ca>
 
 	* configure.ac: Split AC_INIT into AC_INIT and AC_CONFIG_SRCDIR.
diff --git a/gdb/testsuite/gdb.ada/fixed_points/fixed_points.adb b/gdb/testsuite/gdb.ada/fixed_points/fixed_points.adb
index dd45da8bfc6..a2720e3a720 100644
--- a/gdb/testsuite/gdb.ada/fixed_points/fixed_points.adb
+++ b/gdb/testsuite/gdb.ada/fixed_points/fixed_points.adb
@@ -25,8 +25,7 @@ procedure Fixed_Points is
 
    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;
+     range -2147483648 * 1.0 / 16.0 ..  2147483647 * 1.0 / 16.0;
 
    subtype Fixed_Point_Subtype is
      Base_Fixed_Point_Type range -50.0 .. 50.0;
-- 
2.25.1



More information about the Gdb-patches mailing list