* 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 <heaney@adacore.com>
* a-cusyqu.ads, a-cbsyqu.ads, a-cuprqu.ads, a-cbprqu.ads (Queue
type): Specify Priority aspect for protected type.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180025
138bc75d-0d04-0410-961f-
82ee72b054a4
+2011-10-15 Bob Duff <duff@adacore.com>
+
+ * 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 <heaney@adacore.com>
+
+ * a-cusyqu.ads, a-cbsyqu.ads, a-cuprqu.ads, a-cbprqu.ads (Queue
+ type): Specify Priority aspect for protected type.
+
2011-10-14 Ed Schonberg <schonberg@adacore.com>
* exp_disp.adb (Check_Premature_Freezing): If an untagged type
protected type Queue
(Capacity : Count_Type := Default_Capacity;
Ceiling : System.Any_Priority := Default_Ceiling)
- -- ???
- -- with Priority => Ceiling is new Queue_Interfaces.Queue with
- is new Queue_Interfaces.Queue with
+ with Priority => Ceiling is new Queue_Interfaces.Queue with
overriding
entry Enqueue (New_Item : Queue_Interfaces.Element_Type);
protected type Queue
(Capacity : Count_Type := Default_Capacity;
Ceiling : System.Any_Priority := Default_Ceiling)
- -- ???
- -- with Priority => Ceiling is new Queue_Interfaces.Queue with
- is new Queue_Interfaces.Queue with
+ with Priority => Ceiling is new Queue_Interfaces.Queue with
overriding
entry Enqueue (New_Item : Queue_Interfaces.Element_Type);
end Implementation;
protected type Queue (Ceiling : System.Any_Priority := Default_Ceiling)
- -- ???
- -- with Priority => Ceiling is new Queue_Interfaces.Queue with
- is new Queue_Interfaces.Queue with
+ with Priority => Ceiling is new Queue_Interfaces.Queue with
overriding
entry Enqueue (New_Item : Queue_Interfaces.Element_Type);
end Implementation;
protected type Queue (Ceiling : System.Any_Priority := Default_Ceiling)
- -- ???
- -- with Priority => Ceiling is new Queue_Interfaces.Queue with
- is new Queue_Interfaces.Queue with
+ with Priority => Ceiling is new Queue_Interfaces.Queue with
overriding
entry Enqueue (New_Item : Queue_Interfaces.Element_Type);
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
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,
-- 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);
E, BIP_Formal_Suffix (BIP_Alloc_Form));
-- Add BIP_Storage_Pool, in case BIP_Alloc_Form indicates to
- -- use a user-defined pool. This formal is not added on .NET
- -- and JVM as those targets do not support pools.
+ -- use a user-defined pool. This formal is not added on
+ -- .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
Discard :=
Add_Extra_Formal
(E, RTE (RE_Root_Storage_Pool_Ptr),