[Ada] Add continuation message when others choice not allowed
authorYannick Moy <moy@adacore.com>
Fri, 6 Nov 2020 17:09:44 +0000 (18:09 +0100)
committerPierre-Marie de Rodat <derodat@adacore.com>
Mon, 30 Nov 2020 14:16:16 +0000 (09:16 -0500)
gcc/ada/

* sem_aggr.adb (Resolve_Array_Aggregate): Improve error message.

gcc/ada/sem_aggr.adb

index 1ba58701f03420f97836dcc15e8f429e46ad71a3..5a1f8c49b8f5ea04f75a93ab1dd8afefbf0a6d6b 100644 (file)
@@ -1870,10 +1870,15 @@ package body Sem_Aggr is
       --  Test for the validity of an others choice if present
 
       if Others_Present and then not Others_Allowed then
-         Error_Msg_N
-           ("OTHERS choice not allowed here",
-            First (Choice_List (First (Component_Associations (N)))));
-         return Failure;
+         declare
+            Others_N : constant Node_Id :=
+              First (Choice_List (First (Component_Associations (N))));
+         begin
+            Error_Msg_N ("OTHERS choice not allowed here", Others_N);
+            Error_Msg_N ("\qualify the aggregate with a constrained subtype "
+                         & "to provide bounds for it", Others_N);
+            return Failure;
+         end;
       end if;
 
       --  Protect against cascaded errors