From 3e452820c3956cbefe3a0547fe51198a882d9e54 Mon Sep 17 00:00:00 2001 From: Arnaud Charlet Date: Sat, 15 Oct 2011 11:22:01 +0200 Subject: [multiple changes] 2011-10-15 Bob Duff * exp_ch6.adb (Add_Unconstrained_Actuals_To_Build_In_Place_Call): Do not create a pool formal on unless RE_Root_Storage_Pool_Ptr is available. (Expand_N_Extended_Return_Statement): Do not create a renaming of the build-in-place pool parameter unless RE_Root_Storage_Pool_Ptr is available. (Make_Build_In_Place_Call_In_Allocator): Add the user-defined pool only if RE_Root_Storage_Pool_Ptr is available. (Make_Build_In_Place_Call_In_Object_Declaration): Do not add a pool actual unless RE_Root_Storage_Pool_Ptr is available. * sem_ch6.adb (Create_Extra_Formals): Add build-in-place pool formal only if RE_Root_Storage_Pool_Ptr is available. 2011-10-15 Matthew Heaney * a-cusyqu.ads, a-cbsyqu.ads, a-cuprqu.ads, a-cbprqu.ads (Queue type): Specify Priority aspect for protected type. From-SVN: r180025 --- gcc/ada/exp_ch6.adb | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'gcc/ada/exp_ch6.adb') diff --git a/gcc/ada/exp_ch6.adb b/gcc/ada/exp_ch6.adb index 035c433..17b72cf 100644 --- a/gcc/ada/exp_ch6.adb +++ b/gcc/ada/exp_ch6.adb @@ -311,10 +311,12 @@ package body Exp_Ch6 is Add_Extra_Actual_To_Call (Function_Call, Alloc_Form_Formal, Alloc_Form_Actual); - -- Pass the Storage_Pool parameter. This parameter is omitted on .NET - -- and JVM as those targets do not support pools. + -- Pass the Storage_Pool parameter. This parameter is omitted + -- .NET/JVM/ZFP as those targets do not support pools. - if VM_Target = No_VM then + if + VM_Target = No_VM and then RTE_Available (RE_Root_Storage_Pool_Ptr) + then Pool_Formal := Build_In_Place_Formal (Function_Id, BIP_Storage_Pool); Analyze_And_Resolve (Pool_Actual, Etype (Pool_Formal)); Add_Extra_Actual_To_Call @@ -5241,10 +5243,12 @@ package body Exp_Ch6 is Pool_Allocator := New_Copy_Tree (Heap_Allocator); -- Do not generate the renaming of the build-in-place - -- pool parameter on .NET/JVM because the parameter is - -- not created in the first place. + -- pool parameter on .NET/JVM/ZFP because the parameter + -- is not created in the first place. - if VM_Target = No_VM then + if VM_Target = No_VM and then + RTE_Available (RE_Root_Storage_Pool_Ptr) + then Pool_Decl := Make_Object_Renaming_Declaration (Loc, Defining_Identifier => Pool_Id, @@ -8137,7 +8141,9 @@ package body Exp_Ch6 is -- has an unconstrained or tagged result type). if Needs_BIP_Alloc_Form (Enclosing_Func) then - if VM_Target = No_VM then + if VM_Target = No_VM and then + RTE_Available (RE_Root_Storage_Pool_Ptr) + then Pool_Actual := New_Reference_To (Build_In_Place_Formal (Enclosing_Func, BIP_Storage_Pool), Loc); -- cgit v1.1