[Ada] Support 'Reduce under -gnatX

2020-06-05  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

	* scng.adb (Scan): Fix typo to take into account all future
	versions of Ada.
	* sem_attr.ads (Attribute_Impl_Def): Add Attribute_Reduce for
	now.
	* sem_attr.adb (Analyze_Attribute): Only allow 'Reduce under
	-gnatX.
	* snames.ads-tmpl (Name_Reduce): Update comment.
This commit is contained in:
Arnaud Charlet 2020-02-03 05:22:57 -05:00 committed by Pierre-Marie de Rodat
parent 3af132b801
commit 4ccf713e54
4 changed files with 14 additions and 2 deletions

View File

@ -1701,7 +1701,7 @@ package body Scng is
if Source (Scan_Ptr + 1) = '"' then
goto Scan_Wide_Character;
elsif Ada_Version = Ada_2020 then
elsif Ada_Version >= Ada_2020 then
Scan_Ptr := Scan_Ptr + 1;
Token := Tok_Left_Bracket;
return;

View File

@ -5572,6 +5572,11 @@ package body Sem_Attr is
when Attribute_Reduce =>
Check_E2;
if not Extensions_Allowed then
Error_Attr
("% attribute only supported under -gnatX", P);
end if;
declare
Stream : constant Node_Id := Prefix (N);
Typ : Entity_Id;

View File

@ -397,6 +397,13 @@ package Sem_Attr is
-- as Range applied to the array itself. The result is of type universal
-- integer.
------------
-- Reduce --
------------
Attribute_Reduce => True,
-- See AI12-0262-1
---------
-- Ref --
---------

View File

@ -976,7 +976,7 @@ package Snames is
Name_Priority : constant Name_Id := N + $; -- Ada 05
Name_Range : constant Name_Id := N + $;
Name_Range_Length : constant Name_Id := N + $; -- GNAT
Name_Reduce : constant Name_Id := N + $;
Name_Reduce : constant Name_Id := N + $; -- GNAT
Name_Ref : constant Name_Id := N + $; -- GNAT
Name_Restriction_Set : constant Name_Id := N + $; -- GNAT
Name_Result : constant Name_Id := N + $; -- GNAT