aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Duff <duff@adacore.com>2022-07-19 17:06:30 -0400
committerMarc Poulhiès <poulhies@adacore.com>2022-09-05 09:21:03 +0200
commita0998ca3add191e76f151e541fc18a6d9dd5a1f0 (patch)
tree990cf306958f63118a95e7465579cb4d2fe62ff3
parent44bd2755a8bfd4c8849d97f058141c3d5a17647b (diff)
downloadgcc-a0998ca3add191e76f151e541fc18a6d9dd5a1f0.zip
gcc-a0998ca3add191e76f151e541fc18a6d9dd5a1f0.tar.gz
gcc-a0998ca3add191e76f151e541fc18a6d9dd5a1f0.tar.bz2
[Ada] Enable Error_Msg_GNAT_Extension for mixed decl/stmts
Enable mixing of declarative items and statements under the -gnatX switch. The previous version used the -gnat2022 switch. In addition, change the error message so that it advertises the new feature when it is disabled. Instead of: declarations must come before "begin" we now say (without -gnatX): declarations mixed with statements is a GNAT-specific extension unit must be compiled with -gnatX or use pragma Extensions_Allowed (On) gcc/ada/ * par-ch5.adb (P_Sequence_Of_Statements): Call Error_Msg_GNAT_Extension to give the error message.
-rw-r--r--gcc/ada/par-ch5.adb25
1 files changed, 8 insertions, 17 deletions
diff --git a/gcc/ada/par-ch5.adb b/gcc/ada/par-ch5.adb
index 3835588..1be3ef8 100644
--- a/gcc/ada/par-ch5.adb
+++ b/gcc/ada/par-ch5.adb
@@ -242,8 +242,8 @@ package body Ch5 is
-- In Ada 2022, we allow declarative items to be mixed with
-- statements. The loop below alternates between calling
- -- P_Declarative_Items to parse zero or more declarative items, and
- -- parsing a statement.
+ -- P_Declarative_Items to parse zero or more declarative items,
+ -- and parsing a statement.
loop
Ignore (Tok_Semicolon);
@@ -255,26 +255,17 @@ package body Ch5 is
(Statement_List, Declare_Expression => False,
In_Spec => False, In_Statements => True);
- -- Use the length of the list to determine whether we parsed any
- -- declarative items. If so, it's an error pre-2022. ???We should
- -- be calling Error_Msg_Ada_2022_Feature below, to advertise the
- -- new feature, but that causes a lot of test diffs, so for now,
- -- we mimic the old "...before begin" message.
+ -- Use the length of the list to determine whether we parsed
+ -- any declarative items. If so, it's an error unless language
+ -- extensions are enabled.
if List_Length (Statement_List) > Num_Statements then
if All_Errors_Mode or else No (Decl_Loc) then
Decl_Loc := Sloc (Pick (Statement_List, Num_Statements + 1));
- if False then
- Error_Msg_Ada_2022_Feature
- ("declarations mixed with statements",
- Sloc (Pick (Statement_List, Num_Statements + 1)));
- else
- if Ada_Version < Ada_2022 then
- Error_Msg
- ("declarations must come before BEGIN", Decl_Loc);
- end if;
- end if;
+ Error_Msg_GNAT_Extension
+ ("declarations mixed with statements",
+ Sloc (Pick (Statement_List, Num_Statements + 1)));
end if;
end if;
end;