exp_ch4.adb (Expand_Quantified_Expression): Do not expand in ALFA mode.

2011-08-29  Johannes Kanig  <kanig@adacore.com>

	* exp_ch4.adb (Expand_Quantified_Expression): Do not expand in ALFA
	mode.
	* gnat1drv.adb (Adjust_Global_Switches): Set
	Use_Expressions_With_Actions to False in ALFA mode.
	* sem_res.adb (Resolve_Quantified_Expression): Simpler treatment in
	ALFA mode.

From-SVN: r178223
This commit is contained in:
Johannes Kanig 2011-08-29 13:26:02 +00:00 committed by Arnaud Charlet
parent 59e6b23c68
commit 69794413ec
4 changed files with 32 additions and 9 deletions

View File

@ -1,3 +1,12 @@
2011-08-29 Johannes Kanig <kanig@adacore.com>
* exp_ch4.adb (Expand_Quantified_Expression): Do not expand in ALFA
mode.
* gnat1drv.adb (Adjust_Global_Switches): Set
Use_Expressions_With_Actions to False in ALFA mode.
* sem_res.adb (Resolve_Quantified_Expression): Simpler treatment in
ALFA mode.
2011-08-29 Yannick Moy <moy@adacore.com>
* exp_ch13.adb (Expand_N_Freeze_Entity): Do nothing in Alfa mode.

View File

@ -7593,6 +7593,10 @@ package body Exp_Ch4 is
Test : Node_Id;
begin
if ALFA_Mode then
return;
end if;
Decl :=
Make_Object_Declaration (Loc,
Defining_Identifier => Tnn,

View File

@ -351,9 +351,10 @@ procedure Gnat1drv is
if Debug_Flag_Dot_XX then
Use_Expression_With_Actions := True;
-- Debug flag -gnatd.Y decisively sets usage off
-- Debug flag -gnatd.Y and -gnatd.F (Alfa Mode) decisively set usage
-- off
elsif Debug_Flag_Dot_YY then
elsif Debug_Flag_Dot_YY or Debug_Flag_Dot_FF then
Use_Expression_With_Actions := False;
-- Otherwise this feature is implemented, so we allow its use

View File

@ -8082,14 +8082,23 @@ package body Sem_Res is
procedure Resolve_Quantified_Expression (N : Node_Id; Typ : Entity_Id) is
begin
-- The loop structure is already resolved during its analysis, only the
-- resolution of the condition needs to be done. Expansion is disabled
-- so that checks and other generated code are inserted in the tree
-- after expression has been rewritten as a loop.
if not ALFA_Mode then
Expander_Mode_Save_And_Set (False);
Resolve (Condition (N), Typ);
Expander_Mode_Restore;
-- The loop structure is already resolved during its analysis, only
-- the resolution of the condition needs to be done. Expansion is
-- disabled so that checks and other generated code are inserted in
-- the tree after expression has been rewritten as a loop.
Expander_Mode_Save_And_Set (False);
Resolve (Condition (N), Typ);
Expander_Mode_Restore;
else
-- In ALFA_Mode, no such magic needs to happen, we just resolve the
-- underlying nodes
Resolve (Condition (N), Typ);
end if;
end Resolve_Quantified_Expression;
-------------------