From: Viljar Indus <[email protected]>
Remove the support for printing the diagnostic report
in the compiler when -gnatd_E is used. Instead print it
when the "gnat --diagnostics" command is used.
gcc/ada/ChangeLog:
* debug.adb: remove use case for -gnatd_E
* errout.adb (Output_Messages): remove printing of
the diagnostic repository when -gnatd_E is used.
* gnatcmd.adb: Add support for printing the diagnostic repository.
Tested on x86_64-pc-linux-gnu (before the recent bootstrap breakage), committed
on master.
---
gcc/ada/debug.adb | 2 +-
gcc/ada/errout.adb | 23 -----------------------
gcc/ada/gnatcmd.adb | 30 ++++++++++++++++++++++++++++++
3 files changed, 31 insertions(+), 24 deletions(-)
diff --git a/gcc/ada/debug.adb b/gcc/ada/debug.adb
index 4c0435e0bd5..f6acb264494 100644
--- a/gcc/ada/debug.adb
+++ b/gcc/ada/debug.adb
@@ -169,7 +169,7 @@ package body Debug is
-- d_B Warn on build-in-place function calls
-- d_C
-- d_D
- -- d_E Print diagnostics and switch repository
+ -- d_E
-- d_F Encode full invocation paths in ALI files
-- d_G
-- d_H
diff --git a/gcc/ada/errout.adb b/gcc/ada/errout.adb
index a5c68dd8718..59993da9608 100644
--- a/gcc/ada/errout.adb
+++ b/gcc/ada/errout.adb
@@ -2889,7 +2889,6 @@ package body Errout is
Sarif_File_Name : constant String :=
Get_First_Main_File_Name & ".gnat.sarif";
- Diagnostics_File_Name : constant String := "gnat_diagnostics.sarif";
Printer : Erroutc.SARIF_Emitter.SARIF_Printer;
@@ -2997,28 +2996,6 @@ package body Errout is
end if;
end if;
- if Debug_Flag_Underscore_EE then
-
- -- Print the diagnostics repository to a file
-
- System.OS_Lib.Delete_File (Diagnostics_File_Name, Dummy);
- declare
- Output_FD : constant System.OS_Lib.File_Descriptor :=
- System.OS_Lib.Create_New_File
- (Diagnostics_File_Name,
- Fmode => System.OS_Lib.Text);
-
- begin
- Set_Output (Output_FD);
-
- Print_Diagnostic_Repository;
-
- Set_Standard_Output;
-
- System.OS_Lib.Close (Output_FD);
- end;
- end if;
-
-- Full source listing case
if Full_List then
diff --git a/gcc/ada/gnatcmd.adb b/gcc/ada/gnatcmd.adb
index 5e3802e7f8a..adfea9c7bd3 100644
--- a/gcc/ada/gnatcmd.adb
+++ b/gcc/ada/gnatcmd.adb
@@ -24,11 +24,13 @@
------------------------------------------------------------------------------
with Gnatvsn;
+with Errid; use Errid;
with Namet; use Namet;
with Opt; use Opt;
with Osint; use Osint;
with Output; use Output;
with Switch; use Switch;
+with System.OS_Lib;
with Table;
with Usage;
@@ -47,6 +49,10 @@ procedure GNATCmd is
Ada_Help_Switch : constant String := "--help-ada";
-- Flag to display available build switches
+ Ada_Diagnostics_Switch : constant String := "--diagnostics";
+
+ Diagnostics_File_Name : constant String := "gnat_diagnostics.sarif";
+
Error_Exit : exception;
-- Raise this exception if error detected
@@ -113,6 +119,7 @@ procedure GNATCmd is
My_Exit_Status : Exit_Status := Success;
-- The exit status of the spawned tool
+ Dummy : Boolean;
type Command_Entry is record
Cname : String_Access;
@@ -347,6 +354,29 @@ begin
Keep_Temporary_Files := True;
Command_Arg := Command_Arg + 1;
+ elsif Command_Arg <= Argument_Count
+ and then Argument (Command_Arg) = Ada_Diagnostics_Switch
+ then
+ -- Print the diagnostics repository to a file
+
+ System.OS_Lib.Delete_File (Diagnostics_File_Name, Dummy);
+ declare
+ Output_FD : constant System.OS_Lib.File_Descriptor :=
+ System.OS_Lib.Create_New_File
+ (Diagnostics_File_Name, Fmode => System.OS_Lib.Text);
+
+ begin
+ Set_Output (Output_FD);
+ Print_Diagnostic_Repository;
+ Set_Standard_Output;
+ System.OS_Lib.Close (Output_FD);
+ end;
+
+ Write_Line
+ ("gnat diagnostic information exported to "
+ & Diagnostics_File_Name);
+ Exit_Program (E_Success);
+
elsif Command_Arg <= Argument_Count
and then Argument (Command_Arg) = Ada_Help_Switch
then
--
2.51.0