diff options
author | Bob Duff <duff@adacore.com> | 2019-08-12 09:01:14 +0000 |
---|---|---|
committer | Pierre-Marie de Rodat <pmderodat@gcc.gnu.org> | 2019-08-12 09:01:14 +0000 |
commit | 18ba4b0dbd971fc879c8db3cbe50726c8bd7c25e (patch) | |
tree | 25ec535fede4776b7031e22dfb6509150e949539 | |
parent | 0e5f9f5020f798333b7ca2fd10cd48d8cfc09e6c (diff) | |
download | gcc-18ba4b0dbd971fc879c8db3cbe50726c8bd7c25e.zip gcc-18ba4b0dbd971fc879c8db3cbe50726c8bd7c25e.tar.gz gcc-18ba4b0dbd971fc879c8db3cbe50726c8bd7c25e.tar.bz2 |
[Ada] Prevent crash in Put_Scaled
This patch fixes a bug in Put_Scaled, which causes a crash when checks
are on.
2019-08-12 Bob Duff <duff@adacore.com>
gcc/ada/
* libgnat/a-tifiio.adb (Put_Scaled): Prevent AA from being
negative, since Field is range 0 .. something.
From-SVN: r274300
-rw-r--r-- | gcc/ada/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/ada/libgnat/a-tifiio.adb | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 1bf7e6d..97f3141 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,5 +1,10 @@ 2019-08-12 Bob Duff <duff@adacore.com> + * libgnat/a-tifiio.adb (Put_Scaled): Prevent AA from being + negative, since Field is range 0 .. something. + +2019-08-12 Bob Duff <duff@adacore.com> + * doc/gnat_ugn/gnat_utility_programs.rst (gnatmetric, gnatpp, gnatstub): Remove documentation for Ada language version switches, and note that they are no longer needed. diff --git a/gcc/ada/libgnat/a-tifiio.adb b/gcc/ada/libgnat/a-tifiio.adb index 1c817ea8..d048646 100644 --- a/gcc/ada/libgnat/a-tifiio.adb +++ b/gcc/ada/libgnat/a-tifiio.adb @@ -560,7 +560,7 @@ package body Ada.Text_IO.Fixed_IO is E : Integer) is pragma Assert (E >= -Max_Digits); - AA : constant Field := E + A; + AA : constant Field := Integer'Max (E + A, 0); N : constant Natural := (AA + Max_Digits - 1) / Max_Digits + 1; Q : array (0 .. N - 1) of Int64 := (others => 0); |