diff options
-rw-r--r-- | gcc/ada/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/ada/exp_ch4.adb | 7 |
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; |