-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