aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/exp_ch7.adb
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2012-08-06 10:32:05 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2012-08-06 10:32:05 +0200
commitd7f41b2d87214f6e014f3091a2956f0170a8b41e (patch)
tree12975f2e3a8b23ed0c0213b9a2ad7b12d75829b4 /gcc/ada/exp_ch7.adb
parent3217f71e44777466c8aab40ddd22d0ed3ca5ce3d (diff)
downloadgcc-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.adb16
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;