-gnatU prepends `error:` to error messages, enabling it by default makes
error messages more consistent with warnings.  -gnatw.d tags messages
with the flag that caused them.

As users might need to switch back to the previous behavior, the
`-gnatd_U` flag is introduced to do exactly that.

Tested on x86_64-pc-linux-gnu, committed on trunk

gcc/ada/

        * debug.adb: Document -gnatd_U as taken.
        * err_vars.ads (Warning_Doc_Switch): Set to True.
        * errout.ads (Errout): Update documentation.
        * gnat1drv.adb (Adjust_Global_Switches): React to -gnatd_U.
        * hostparm.ads (Tag_Errors): Set to True.
        * opt.ads (Unique_Error_Tag): Document -gnatd_U.
diff --git a/gcc/ada/debug.adb b/gcc/ada/debug.adb
--- a/gcc/ada/debug.adb
+++ b/gcc/ada/debug.adb
@@ -186,7 +186,7 @@ package body Debug is
    --  d_R
    --  d_S
    --  d_T  Output trace information on invocation path recording
-   --  d_U
+   --  d_U  Disable prepending messages with "error:".
    --  d_V  Enable verifications on the expanded tree
    --  d_W
    --  d_X
@@ -1017,6 +1017,9 @@ package body Debug is
    --  d_T  The compiler outputs trace information to standard output whenever
    --       an invocation path is recorded.
 
+   --  d_U  Disable prepending 'error:' to error messages. This used to be the
+   --       default and can be seen as the opposite of -gnatU.
+
    --  d_V  Enable verification of the expanded code before calling the backend
    --       and generate error messages on each inconsistency found.
 


diff --git a/gcc/ada/err_vars.ads b/gcc/ada/err_vars.ads
--- a/gcc/ada/err_vars.ads
+++ b/gcc/ada/err_vars.ads
@@ -89,7 +89,7 @@ package Err_Vars is
    --  Source_Reference line, then this is initialized to No_Source_File,
    --  to force an initial reference to the real source file name.
 
-   Warning_Doc_Switch : Boolean := False;
+   Warning_Doc_Switch : Boolean := True;
    --  If this is set True, then the ??/?x?/?x? sequences in error messages
    --  are active (see errout.ads for details). If this switch is False, then
    --  these sequences are ignored (i.e. simply equivalent to a single ?). The


diff --git a/gcc/ada/errout.ads b/gcc/ada/errout.ads
--- a/gcc/ada/errout.ads
+++ b/gcc/ada/errout.ads
@@ -519,7 +519,7 @@ package Errout is
    --  The prefixes error and warning are supplied automatically (depending
    --  on the use of the ? insertion character), and the call to the error
    --  message routine supplies the text. The "error: " prefix is omitted
-   --  in brief error message formats.
+   --  if -gnatd_U is among the options given to gnat.
 
    --  Reserved Ada keywords in the message are in the default keyword case
    --  (determined from the given source program), surrounded by quotation


diff --git a/gcc/ada/gnat1drv.adb b/gcc/ada/gnat1drv.adb
--- a/gcc/ada/gnat1drv.adb
+++ b/gcc/ada/gnat1drv.adb
@@ -153,6 +153,12 @@ procedure Gnat1drv is
 
       Map_Pragma_Name (From => Name_Gnat_Annotate, To => Name_Annotate);
 
+      --  -gnatd_U disables prepending error messages with "error:"
+
+      if Debug_Flag_Underscore_UU then
+         Unique_Error_Tag := False;
+      end if;
+
       --  -gnatd.M enables Relaxed_RM_Semantics
 
       if Debug_Flag_Dot_MM then


diff --git a/gcc/ada/hostparm.ads b/gcc/ada/hostparm.ads
--- a/gcc/ada/hostparm.ads
+++ b/gcc/ada/hostparm.ads
@@ -56,9 +56,10 @@ package Hostparm is
    --  of file names in the library, must be at least Max_Line_Length, but
    --  can be larger.
 
-   Tag_Errors : constant Boolean := False;
+   Tag_Errors : constant Boolean := True;
    --  If set to true, then brief form error messages will be prefaced by
-   --  the string "error:". Used as default for Opt.Unique_Error_Tag.
+   --  the string "error:". Used as default for Opt.Unique_Error_Tag. Disabled
+   --  by gnatd_U.
 
    Exclude_Missing_Objects : constant Boolean := True;
    --  If set to true, gnatbind will exclude from consideration all


diff --git a/gcc/ada/opt.ads b/gcc/ada/opt.ads
--- a/gcc/ada/opt.ads
+++ b/gcc/ada/opt.ads
@@ -1651,7 +1651,8 @@ package Opt is
    Unique_Error_Tag : Boolean := Tag_Errors;
    --  GNAT
    --  Indicates if error messages are to be prefixed by the string error:
-   --  Initialized from Tag_Errors, can be forced on with the -gnatU switch.
+   --  Initialized from Tag_Errors, can be forced on with the -gnatU switch and
+   --  disabled with -gnatd_U.
 
    Unnest_Subprogram_Mode : Boolean := False;
    --  If true, activates the circuitry for unnesting subprograms (see the spec


Reply via email to