diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2012-08-06 10:32:05 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2012-08-06 10:32:05 +0200 |
commit | d7f41b2d87214f6e014f3091a2956f0170a8b41e (patch) | |
tree | 12975f2e3a8b23ed0c0213b9a2ad7b12d75829b4 /gcc/ada/exp_ch7.adb | |
parent | 3217f71e44777466c8aab40ddd22d0ed3ca5ce3d (diff) | |
download | gcc-d7f41b2d87214f6e014f3091a2956f0170a8b41e.zip gcc-d7f41b2d87214f6e014f3091a2956f0170a8b41e.tar.gz gcc-d7f41b2d87214f6e014f3091a2956f0170a8b41e.tar.bz2 |
[multiple changes]
2012-08-06 Yannick Moy <moy@adacore.com>
* sem_ch4.adb (Analyze_Selected_Component): Issue an error in
Alfa mode for component not present.
2012-08-06 Thomas Quinot <quinot@adacore.com>
* exp_ch7.adb (Insert_Actions_In_Scope_Around): Do not
use a renaming of Scope_Stack.Table (Scope_Stack.Last), as
Process_Transient_Object may introduce new scopes and cause
Scope_Stack.Table to be reallocated.
From-SVN: r190167
Diffstat (limited to 'gcc/ada/exp_ch7.adb')
-rw-r--r-- | gcc/ada/exp_ch7.adb | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/gcc/ada/exp_ch7.adb b/gcc/ada/exp_ch7.adb index 7e28bb4..725cd2a 100644 --- a/gcc/ada/exp_ch7.adb +++ b/gcc/ada/exp_ch7.adb @@ -4345,9 +4345,13 @@ package body Exp_Ch7 is ------------------------------------ procedure Insert_Actions_In_Scope_Around (N : Node_Id) is - SE : Scope_Stack_Entry renames Scope_Stack.Table (Scope_Stack.Last); - After : List_Id renames SE.Actions_To_Be_Wrapped_After; - Before : List_Id renames SE.Actions_To_Be_Wrapped_Before; + After : constant List_Id := + Scope_Stack.Table (Scope_Stack.Last).Actions_To_Be_Wrapped_After; + Before : constant List_Id := + Scope_Stack.Table (Scope_Stack.Last).Actions_To_Be_Wrapped_Before; + -- Note: We used to use renamings of Scope_Stack.Table (Scope_Stack. + -- Last), but this was incorrect as Process_Transient_Object may + -- introduce new scopes and cause a reallocation of Scope_Stack.Table. procedure Process_Transient_Objects (First_Object : Node_Id; @@ -4694,11 +4698,13 @@ package body Exp_Ch7 is -- Reset the action lists if Present (Before) then - Before := No_List; + Scope_Stack.Table (Scope_Stack.Last). + Actions_To_Be_Wrapped_Before := No_List; end if; if Present (After) then - After := No_List; + Scope_Stack.Table (Scope_Stack.Last). + Actions_To_Be_Wrapped_After := No_List; end if; end; end Insert_Actions_In_Scope_Around; |