aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHristian Kirtchev <kirtchev@adacore.com>2011-12-12 13:40:18 +0000
committerArnaud Charlet <charlet@gcc.gnu.org>2011-12-12 14:40:18 +0100
commitad5a445d3ecbc55dd7775e1e3df2f7cbcd967a0d (patch)
tree27a746db1b0be7d13ece4ca5f78e3ecf9ae86734
parent83d5afb7791bc4a892944846286372a5422fe877 (diff)
downloadgcc-ad5a445d3ecbc55dd7775e1e3df2f7cbcd967a0d.zip
gcc-ad5a445d3ecbc55dd7775e1e3df2f7cbcd967a0d.tar.gz
gcc-ad5a445d3ecbc55dd7775e1e3df2f7cbcd967a0d.tar.bz2
exp_ch4.adb (Expand_N_Allocator): Update the master of an anonymous access-to-controlled type to utilize the...
2011-12-12 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch4.adb (Expand_N_Allocator): Update the master of an anonymous access-to-controlled type to utilize the heterogeneous master associated with the current unit. From-SVN: r182239
-rw-r--r--gcc/ada/ChangeLog6
-rw-r--r--gcc/ada/exp_ch4.adb7
2 files changed, 9 insertions, 4 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 8ccc29b..a3679dd 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,9 @@
+2011-12-12 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * exp_ch4.adb (Expand_N_Allocator): Update the master of an
+ anonymous access-to-controlled type to utilize the heterogeneous
+ master associated with the current unit.
+
2011-12-12 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Analyze_Expression_Function): If the function
diff --git a/gcc/ada/exp_ch4.adb b/gcc/ada/exp_ch4.adb
index 12980a7..f45ea08 100644
--- a/gcc/ada/exp_ch4.adb
+++ b/gcc/ada/exp_ch4.adb
@@ -3510,11 +3510,10 @@ package body Exp_Ch4 is
-- The finalization master must be inserted and analyzed as part of
-- the current semantic unit. This form of expansion is not carried
- -- out in Alfa mode because it is useless.
+ -- out in Alfa mode because it is useless. Note that the master is
+ -- updated when analysis changes current units.
- if No (Finalization_Master (PtrT))
- and then not Alfa_Mode
- then
+ if not Alfa_Mode then
Set_Finalization_Master (PtrT, Current_Anonymous_Master);
end if;
end if;