summaryrefslogtreecommitdiff
path: root/gcc/ada/exp_ch4.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2014-08-04 13:02:44 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2014-08-04 13:02:44 +0000
commitba502e2bb99362d8916797aaa6b6cf44016ae714 (patch)
treecb6541747ff86af28069e975fb55ae8015015976 /gcc/ada/exp_ch4.adb
parentba33856e94d16c663e1334e7de4c8d46c5a33d80 (diff)
downloadgcc-ba502e2bb99362d8916797aaa6b6cf44016ae714.tar.gz
2014-08-04 Yannick Moy <moy@adacore.com>
* sem_ch3.adb (Analyze_Object_Declaration): In GNATprove mode, do not generate two Itypes with the same name for an array definition. * sinfo.ads: Expand doc on GNATprove mode. 2014-08-04 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch3.adb (Expand_Freeze_Record_Type): Set the finalization master and storage pool attributes on the root type of an anonymous access type. * exp_ch4.adb (Expand_N_Allocator): Set the finalization master and storage pool attributes on the root type of an anonymous access type. 2014-08-04 Arnaud Charlet <charlet@adacore.com> * exp_ch3.adb: Minor reformatting. * tb-alvms.c, tb-alvxw.c, tb-ivms.c: Removed. * tracebak.c: Remove use of above files. * gcc-interface/Makefile.in: Update dependencies. 2014-08-04 Pierre-Marie Derodat <derodat@adacore.com> * gcc-interface/utils.c (gnat_set_type_context): Also set the context for parallel types' TYPE_STUB_DECL. Do not change anything if the context is already set for them. (gnat_pushdecl): Update the comment for calls to gnat_set_type_context to mention parallel types. (add_parallel_type): When adding a context-less parallel type to a type that has a context, propagate the context from the latter type to the former. (process_deferred_decl_context): Call gnat_set_type_context rather than manually setting the type context. (build_unc_object_type): Call gnat_set_type_context on the template type. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213584 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/exp_ch4.adb')
-rw-r--r--gcc/ada/exp_ch4.adb22
1 files changed, 13 insertions, 9 deletions
diff --git a/gcc/ada/exp_ch4.adb b/gcc/ada/exp_ch4.adb
index dfa22bd70ae..9068fdcdfbb 100644
--- a/gcc/ada/exp_ch4.adb
+++ b/gcc/ada/exp_ch4.adb
@@ -1124,10 +1124,11 @@ package body Exp_Ch4 is
-- Inherit the allocation-related attributes from the original
-- access type.
- Set_Finalization_Master (Def_Id, Finalization_Master (PtrT));
+ Set_Finalization_Master
+ (Def_Id, Finalization_Master (PtrT));
- Set_Associated_Storage_Pool (Def_Id,
- Associated_Storage_Pool (PtrT));
+ Set_Associated_Storage_Pool
+ (Def_Id, Associated_Storage_Pool (PtrT));
-- Declare the object using the previous type declaration
@@ -4318,26 +4319,29 @@ package body Exp_Ch4 is
-- Anonymous access-to-controlled types allocate on the global pool.
-- Do not set this attribute on .NET/JVM since those targets do not
- -- support pools.
+ -- support pools. Note that this is a "root type only" attribute.
if No (Associated_Storage_Pool (PtrT)) and then VM_Target = No_VM then
if Present (Rel_Typ) then
Set_Associated_Storage_Pool
- (PtrT, Associated_Storage_Pool (Rel_Typ));
+ (Root_Type (PtrT), Associated_Storage_Pool (Rel_Typ));
else
Set_Associated_Storage_Pool
- (PtrT, RTE (RE_Global_Pool_Object));
+ (Root_Type (PtrT), RTE (RE_Global_Pool_Object));
end if;
end if;
-- The finalization master must be inserted and analyzed as part of
-- the current semantic unit. Note that the master is updated when
- -- analysis changes current units.
+ -- analysis changes current units. Note that this is a "root type
+ -- only" attribute.
if Present (Rel_Typ) then
- Set_Finalization_Master (PtrT, Finalization_Master (Rel_Typ));
+ Set_Finalization_Master
+ (Root_Type (PtrT), Finalization_Master (Rel_Typ));
else
- Set_Finalization_Master (PtrT, Current_Anonymous_Master);
+ Set_Finalization_Master
+ (Root_Type (PtrT), Current_Anonymous_Master);
end if;
end if;