diff mbox series

[COMMITTED,15/22] ada: Fix crash in GNATbind during error reporting

Message ID 20240621085819.2485987-15-poulhies@adacore.com
State New
Headers show
Series [COMMITTED,01/22] ada: Spurious style error with mutiple square brackets | expand

Commit Message

Marc Poulhiès June 21, 2024, 8:58 a.m. UTC
From: Eric Botcazou <ebotcazou@adacore.com>

This is the minimal fix to avoid the crash.

gcc/ada/

	* bcheck.adb (Check_Consistency_Of_Sdep): Guard against path to ALI
	file not found.

Tested on x86_64-pc-linux-gnu, committed on master.

---
 gcc/ada/bcheck.adb | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)
diff mbox series

Patch

diff --git a/gcc/ada/bcheck.adb b/gcc/ada/bcheck.adb
index 56a417cc517..64a6734a330 100644
--- a/gcc/ada/bcheck.adb
+++ b/gcc/ada/bcheck.adb
@@ -162,10 +162,14 @@  package body Bcheck is
             end if;
 
          else
-            ALI_Path_Id :=
-              Osint.Full_Lib_File_Name (A.Afile);
+            ALI_Path_Id := Osint.Full_Lib_File_Name (A.Afile);
+
+            --  Guard against Find_File not finding (again) the file because
+            --  Primary_Directory has been clobbered in between.
 
-            if Osint.Is_Readonly_Library (ALI_Path_Id) then
+            if Present (ALI_Path_Id)
+              and then Osint.Is_Readonly_Library (ALI_Path_Id)
+            then
                if Tolerate_Consistency_Errors then
                   Error_Msg ("?{ should be recompiled");
                   Error_Msg_File_1 := ALI_Path_Id;