aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Squirek <squirek@adacore.com>2022-05-10 18:19:10 +0000
committerPierre-Marie de Rodat <derodat@adacore.com>2022-06-02 09:06:37 +0000
commit68eb05a3b6ae3a973c858811dc11c7d54a77a58b (patch)
tree7beb93d2ed2896dfa2299c6f013444ae1fe6027e
parent878043af338c3b49f7848f3b73938cfa75a97393 (diff)
downloadgcc-68eb05a3b6ae3a973c858811dc11c7d54a77a58b.zip
gcc-68eb05a3b6ae3a973c858811dc11c7d54a77a58b.tar.gz
gcc-68eb05a3b6ae3a973c858811dc11c7d54a77a58b.tar.bz2
[Ada] Gnatbind crash during checksum calculation
This patch corrects an error in the compiler whereby gnatbind may crash during calculation of file checksums in certain corner cases due to uninitialized lookup tables. gcc/ada/ * gnatbind.adb (Gnatbind): Add initialize call for Uintp * gnatls.adb (Gnatls): Likewise. * gprep.adb (Gnatprep): Likewise. * make.adb (Initialize): Likewise.
-rw-r--r--gcc/ada/gnatbind.adb2
-rw-r--r--gcc/ada/gnatls.adb2
-rw-r--r--gcc/ada/gprep.adb2
-rw-r--r--gcc/ada/make.adb2
4 files changed, 8 insertions, 0 deletions
diff --git a/gcc/ada/gnatbind.adb b/gcc/ada/gnatbind.adb
index 4c50e61..475702a 100644
--- a/gcc/ada/gnatbind.adb
+++ b/gcc/ada/gnatbind.adb
@@ -50,6 +50,7 @@ with Switch; use Switch;
with Switch.B; use Switch.B;
with Targparm; use Targparm;
with Types; use Types;
+with Uintp;
with System.Case_Util; use System.Case_Util;
with System.Response_File;
@@ -617,6 +618,7 @@ begin
-- is in some cases important.
Csets.Initialize;
+ Uintp.Initialize;
Snames.Initialize;
-- Scan the switches and arguments. Note that Snames must already be
diff --git a/gcc/ada/gnatls.adb b/gcc/ada/gnatls.adb
index 4b6ba03..9b62f71 100644
--- a/gcc/ada/gnatls.adb
+++ b/gcc/ada/gnatls.adb
@@ -44,6 +44,7 @@ with Snames;
with Stringt;
with Switch; use Switch;
with Types; use Types;
+with Uintp;
with GNAT.Case_Util; use GNAT.Case_Util;
with GNAT.Command_Line; use GNAT.Command_Line;
@@ -2023,6 +2024,7 @@ begin
-- Initialize standard packages
Csets.Initialize;
+ Uintp.Initialize;
Snames.Initialize;
Stringt.Initialize;
diff --git a/gcc/ada/gprep.adb b/gcc/ada/gprep.adb
index 36ec1d8..58ae104 100644
--- a/gcc/ada/gprep.adb
+++ b/gcc/ada/gprep.adb
@@ -37,6 +37,7 @@ with Snames;
with Stringt; use Stringt;
with Switch; use Switch;
with Types; use Types;
+with Uintp;
with Ada.Command_Line; use Ada.Command_Line;
with Ada.Text_IO; use Ada.Text_IO;
@@ -169,6 +170,7 @@ package body GPrep is
-- Do some initializations (order is important here)
Csets.Initialize;
+ Uintp.Initialize;
Snames.Initialize;
Stringt.Initialize;
Prep.Initialize;
diff --git a/gcc/ada/make.adb b/gcc/ada/make.adb
index bbabd76..3ed4656 100644
--- a/gcc/ada/make.adb
+++ b/gcc/ada/make.adb
@@ -44,6 +44,7 @@ with SFN_Scan;
with Sinput;
with Snames;
with Stringt;
+with Uintp;
pragma Warnings (Off);
with System.HTable;
@@ -3676,6 +3677,7 @@ package body Make is
Linker_Switches.Init;
Csets.Initialize;
+ Uintp.Initialize;
Snames.Initialize;
Stringt.Initialize;