sem_aggr.adb (Resolve_Array_Aggregate): when copying the expression in an association...

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_aggr.adb (Resolve_Array_Aggregate): when copying the expression
	in an association, set parent field of copy before partial analysis.
	* sem_res.adb (Resolve_Slice): create reference to itype only when
	expansion is enabled.

From-SVN: r177178
This commit is contained in:
Ed Schonberg 2011-08-02 15:17:00 +00:00 committed by Arnaud Charlet
parent 975c689678
commit 6ff6152d50
3 changed files with 15 additions and 2 deletions

View File

@ -1,3 +1,10 @@
2011-08-02 Ed Schonberg <schonberg@adacore.com>
* sem_aggr.adb (Resolve_Array_Aggregate): when copying the expression
in an association, set parent field of copy before partial analysis.
* sem_res.adb (Resolve_Slice): create reference to itype only when
expansion is enabled.
2011-08-02 Yannick Moy <moy@adacore.com>
* einfo.adb, einfo.ads (Body_Is_In_ALFA, Set_Body_Is_In_ALFA): get/set

View File

@ -1974,6 +1974,11 @@ package body Sem_Aggr is
begin
Expander_Mode_Save_And_Set (False);
Full_Analysis := False;
-- Analyze the expression, making sure it is properly
-- attached to the tree before we do the analysis.
Set_Parent (Expr, Parent (Expression (Assoc)));
Analyze (Expr);
-- If the expression is a literal, propagate this info

View File

@ -9817,9 +9817,10 @@ package body Sem_Res is
-- so that the itype is frozen at the proper place in the tree (i.e. at
-- the point where actions for the slice are analyzed). Note that this
-- is different from freezing the itype immediately, which might be
-- premature (e.g. if the slice is within a transient scope).
-- premature (e.g. if the slice is within a transient scope). This needs
-- to be done only if expansion is enabled.
else
elsif Expander_Active then
Ensure_Defined (Typ => Slice_Subtype, N => N);
end if;
end Set_Slice_Subtype;