For warnings related to the Unreferenced, Unmodified, and Unused
aspects, refer to the "aspect", not the "pragma". Note that the aspect
can be set by an aspect_specification or a pragma, so the term "aspect"
is correct even in the pragma case. However, messages in sem_prag.adb
use Fix_Error, so they refer to "aspect" or "pragma". It's not clear
that we really ought to refer to "pragma", now that those are obsolete,
but de call Fix_Error for uniformity. We do not attempt to make
Fix_Error available outside sem_prag.adb -- too much trouble for
something that perhaps ought to be removed.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* lib-xref.adb, sem_util.adb: Change wording of warning messages
to use "aspect".
* sem_prag.adb: Use Fix_Error to change wording of warnings.
* doc/gnat_rm/implementation_defined_pragmas.rst: Minor: fix
cut&paste error.
* gnat_rm.texi: Regenerate.
diff --git a/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst b/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst
--- a/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst
+++ b/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst
@@ -7313,7 +7313,7 @@ For the variable case, warnings are never given for unreferenced
variables whose name contains one of the substrings
``DISCARD, DUMMY, IGNORE, JUNK, UNUSED`` in any casing. Such names
are typically to be used in cases where such warnings are expected.
-Thus it is never necessary to use ``pragma Unmodified`` for such
+Thus it is never necessary to use ``pragma Unused`` for such
variables, though it is harmless to do so.
Pragma Validity_Checks
diff --git a/gcc/ada/gnat_rm.texi b/gcc/ada/gnat_rm.texi
--- a/gcc/ada/gnat_rm.texi
+++ b/gcc/ada/gnat_rm.texi
@@ -21,7 +21,7 @@
@copying
@quotation
-GNAT Reference Manual , Jan 03, 2022
+GNAT Reference Manual , Apr 22, 2022
AdaCore
@@ -8837,7 +8837,7 @@ For the variable case, warnings are never given for unreferenced
variables whose name contains one of the substrings
@code{DISCARD, DUMMY, IGNORE, JUNK, UNUSED} in any casing. Such names
are typically to be used in cases where such warnings are expected.
-Thus it is never necessary to use @code{pragma Unmodified} for such
+Thus it is never necessary to use @code{pragma Unused} for such
variables, though it is harmless to do so.
@node Pragma Validity_Checks,Pragma Volatile,Pragma Unused,Implementation Defined Pragmas
diff --git a/gcc/ada/lib-xref.adb b/gcc/ada/lib-xref.adb
--- a/gcc/ada/lib-xref.adb
+++ b/gcc/ada/lib-xref.adb
@@ -936,10 +936,10 @@ package body Lib.Xref is
if Chars (BE) = Chars (E) then
if Has_Pragma_Unused (E) then
Error_Msg_NE -- CODEFIX
- ("??pragma Unused given for&!", N, BE);
+ ("??aspect Unused specified for&!", N, BE);
else
Error_Msg_NE -- CODEFIX
- ("??pragma Unreferenced given for&!", N, BE);
+ ("??aspect Unreferenced specified for&!", N, BE);
end if;
exit;
end if;
@@ -952,10 +952,10 @@ package body Lib.Xref is
elsif Has_Pragma_Unused (E) then
Error_Msg_NE -- CODEFIX
- ("??pragma Unused given for&!", N, E);
+ ("??aspect Unused specified for&!", N, E);
else
Error_Msg_NE -- CODEFIX
- ("??pragma Unreferenced given for&!", N, E);
+ ("??aspect Unreferenced specified for&!", N, E);
end if;
end if;
diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb
--- a/gcc/ada/sem_prag.adb
+++ b/gcc/ada/sem_prag.adb
@@ -5168,12 +5168,12 @@ package body Sem_Prag is
elsif Has_Pragma_Unmodified (Arg_Id) then
if Has_Pragma_Unused (Arg_Id) then
Error_Msg_NE
- ("??pragma Unused already given for &!", Arg_Expr,
- Arg_Id);
+ (Fix_Error ("??pragma Unused already given for &!"),
+ Arg_Expr, Arg_Id);
else
Error_Msg_NE
- ("??pragma Unmodified already given for &!", Arg_Expr,
- Arg_Id);
+ (Fix_Error ("??pragma Unmodified already given for &!"),
+ Arg_Expr, Arg_Id);
end if;
-- Otherwise the pragma referenced an illegal entity
@@ -5276,12 +5276,13 @@ package body Sem_Prag is
if Has_Pragma_Unreferenced (Arg_Id) then
if Has_Pragma_Unused (Arg_Id) then
Error_Msg_NE
- ("??pragma Unused already given for &!", Arg_Expr,
- Arg_Id);
+ (Fix_Error ("??pragma Unused already given for &!"),
+ Arg_Expr, Arg_Id);
else
Error_Msg_NE
- ("??pragma Unreferenced already given for &!",
- Arg_Expr, Arg_Id);
+ (Fix_Error
+ ("??pragma Unreferenced already given for &!"),
+ Arg_Expr, Arg_Id);
end if;
-- Apply Unreferenced to the entity
diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb
--- a/gcc/ada/sem_util.adb
+++ b/gcc/ada/sem_util.adb
@@ -25698,10 +25698,11 @@ package body Sem_Util is
-- of pragma Unused.
if Has_Pragma_Unused (Ent) then
- Error_Msg_NE ("??pragma Unused given for &!", N, Ent);
+ Error_Msg_NE
+ ("??aspect Unused specified for &!", N, Ent);
else
Error_Msg_NE
- ("??pragma Unmodified given for &!", N, Ent);
+ ("??aspect Unmodified specified for &!", N, Ent);
end if;
end if;