[gcc r12-4153] [Ada] Improve error message on missing all/for in quantified expression
Pierre-Marie de Rodat
pmderodat@gcc.gnu.org
Tue Oct 5 08:22:50 GMT 2021
https://gcc.gnu.org/g:f88db1839a2492645c894946b24311cf592fd0fc
commit r12-4153-gf88db1839a2492645c894946b24311cf592fd0fc
Author: Yannick Moy <moy@adacore.com>
Date: Thu Sep 9 06:29:43 2021 +0200
[Ada] Improve error message on missing all/for in quantified expression
gcc/ada/
* sem_res.adb (Resolve): Recognize specially that case.
Diff:
---
gcc/ada/sem_res.adb | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/gcc/ada/sem_res.adb b/gcc/ada/sem_res.adb
index 9b8c622d256..0bdc4634c99 100644
--- a/gcc/ada/sem_res.adb
+++ b/gcc/ada/sem_res.adb
@@ -3098,6 +3098,24 @@ package body Sem_Res is
Error_Msg_N ("\use -gnatf for details", N);
end if;
+ -- Recognize the case of a quantified expression being mistaken
+ -- for an iterated component association because the user
+ -- forgot the "all" or "some" keyword after "for". Because the
+ -- error message starts with "missing ALL", we automatically
+ -- benefit from the associated CODEFIX, which requires that
+ -- the message is located on the identifier following "for"
+ -- in order for the CODEFIX to insert "all" in the right place.
+
+ elsif Nkind (N) = N_Aggregate
+ and then List_Length (Component_Associations (N)) = 1
+ and then Nkind (First (Component_Associations (N)))
+ = N_Iterated_Component_Association
+ and then Is_Boolean_Type (Typ)
+ then
+ Error_Msg_N -- CODEFIX
+ ("missing ALL or SOME in quantified expression",
+ Defining_Identifier (First (Component_Associations (N))));
+
else
Wrong_Type (N, Typ);
end if;
More information about the Gcc-cvs
mailing list