aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@adacore.com>2020-07-02 06:10:28 -0400
committerPierre-Marie de Rodat <derodat@adacore.com>2020-10-19 05:53:35 -0400
commite335bd2e6ebc23050d48ad17584323f590733d50 (patch)
tree37db2786b4d4d39392a48fed19899939539775e4 /gcc/ada
parent52ad13baa53dcf13c9ec28e37196ac644abc60c4 (diff)
downloadgcc-e335bd2e6ebc23050d48ad17584323f590733d50.zip
gcc-e335bd2e6ebc23050d48ad17584323f590733d50.tar.gz
gcc-e335bd2e6ebc23050d48ad17584323f590733d50.tar.bz2
[Ada] Clean up support of square brackets
gcc/ada/ * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Simplify code since we are always under -gnatX if we encounter a Tok_Left_Bracket. * scng.adb (Scan): [] is an aggregate under -gnatX and a wide character otherwise.
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/par-ch4.adb2
-rw-r--r--gcc/ada/scng.adb11
2 files changed, 9 insertions, 4 deletions
diff --git a/gcc/ada/par-ch4.adb b/gcc/ada/par-ch4.adb
index e4ce02f..cc5ed03 100644
--- a/gcc/ada/par-ch4.adb
+++ b/gcc/ada/par-ch4.adb
@@ -1395,7 +1395,7 @@ package body Ch4 is
begin
Lparen_Sloc := Token_Ptr;
- if Token = Tok_Left_Bracket and then Ada_Version >= Ada_2020 then
+ if Token = Tok_Left_Bracket then
Scan;
-- Special case for null aggregate in Ada 2020
diff --git a/gcc/ada/scng.adb b/gcc/ada/scng.adb
index 2bac3a8..a2bd176 100644
--- a/gcc/ada/scng.adb
+++ b/gcc/ada/scng.adb
@@ -1378,14 +1378,19 @@ package body Scng is
-- Left bracket
when '[' =>
- if Source (Scan_Ptr + 1) = '"' then
- goto Scan_Wide_Character;
- elsif Ada_Version >= Ada_2020 then
+ -- [] under -gnatX is an aggregate notation and the special
+ -- wide character notation becomes unsupported since the two
+ -- are ambiguous.
+
+ if Extensions_Allowed then
Scan_Ptr := Scan_Ptr + 1;
Token := Tok_Left_Bracket;
return;
+ elsif Source (Scan_Ptr + 1) = '"' then
+ goto Scan_Wide_Character;
+
else
Error_Msg_S ("illegal character, replaced by ""(""");
Scan_Ptr := Scan_Ptr + 1;