[multiple changes]
2010-10-11 Arnaud Charlet <charlet@adacore.com> * sem_ch3.adb, exp_ch6.adb (Make_Build_In_Place_Call_In_Anonymous_Context, Make_Build_In_Place_Call_In_Assignment, Make_Build_In_Place_Call_In_Object_Declaration): Fix calls to Add_Task_Actuals_To_Build_In_Place_Call in case of No_Task_Hierarchy restriction. (Access_Definition): Add missing handling of No_Task_Hierarchy. 2010-10-11 Javier Miranda <miranda@adacore.com> * exp_util.adb (Remove_Side_Effects): No action needed for renamings of class-wide expressions. From-SVN: r165293
This commit is contained in:
parent
cead616d56
commit
44bf8eb058
|
@ -1,3 +1,18 @@
|
|||
2010-10-11 Arnaud Charlet <charlet@adacore.com>
|
||||
|
||||
* sem_ch3.adb, exp_ch6.adb
|
||||
(Make_Build_In_Place_Call_In_Anonymous_Context,
|
||||
Make_Build_In_Place_Call_In_Assignment,
|
||||
Make_Build_In_Place_Call_In_Object_Declaration): Fix calls to
|
||||
Add_Task_Actuals_To_Build_In_Place_Call in case of No_Task_Hierarchy
|
||||
restriction.
|
||||
(Access_Definition): Add missing handling of No_Task_Hierarchy.
|
||||
|
||||
2010-10-11 Javier Miranda <miranda@adacore.com>
|
||||
|
||||
* exp_util.adb (Remove_Side_Effects): No action needed for renamings of
|
||||
class-wide expressions.
|
||||
|
||||
2010-10-11 Arnaud Charlet <charlet@adacore.com>
|
||||
|
||||
* xr_tabls.adb, sem_res.adb: Minor reformatting
|
||||
|
|
|
@ -475,8 +475,8 @@ package body Exp_Ch6 is
|
|||
Master_Actual : Node_Id)
|
||||
-- Note: Master_Actual can be Empty, but only if there are no tasks
|
||||
is
|
||||
Loc : constant Source_Ptr := Sloc (Function_Call);
|
||||
|
||||
Loc : constant Source_Ptr := Sloc (Function_Call);
|
||||
Actual : Node_Id := Master_Actual;
|
||||
begin
|
||||
-- No such extra parameters are needed if there are no tasks
|
||||
|
||||
|
@ -484,6 +484,12 @@ package body Exp_Ch6 is
|
|||
return;
|
||||
end if;
|
||||
|
||||
-- Use a dummy _master actual in case of No_Task_Hierarchy
|
||||
|
||||
if Restriction_Active (No_Task_Hierarchy) then
|
||||
Actual := New_Occurrence_Of (RTE (RE_Library_Task_Level), Loc);
|
||||
end if;
|
||||
|
||||
-- The master
|
||||
|
||||
declare
|
||||
|
@ -493,13 +499,13 @@ package body Exp_Ch6 is
|
|||
|
||||
Master_Formal := Build_In_Place_Formal (Function_Id, BIP_Master);
|
||||
|
||||
Analyze_And_Resolve (Master_Actual, Etype (Master_Formal));
|
||||
Analyze_And_Resolve (Actual, Etype (Master_Formal));
|
||||
|
||||
-- Build the parameter association for the new actual and add it to
|
||||
-- the end of the function's actuals.
|
||||
|
||||
Add_Extra_Actual_To_Call
|
||||
(Function_Call, Master_Formal, Master_Actual);
|
||||
(Function_Call, Master_Formal, Actual);
|
||||
end;
|
||||
|
||||
-- The activation chain
|
||||
|
|
|
@ -4839,6 +4839,17 @@ package body Exp_Util is
|
|||
return;
|
||||
end if;
|
||||
|
||||
-- No action needed for renamings of class-wide expressions because for
|
||||
-- class-wide types Remove_Side_Effects uses a renaming to capture the
|
||||
-- expression (and hence we would generate a never-ending loop in the
|
||||
-- frontend).
|
||||
|
||||
if Is_Class_Wide_Type (Exp_Type)
|
||||
and then Nkind (Parent (Exp)) = N_Object_Renaming_Declaration
|
||||
then
|
||||
return;
|
||||
end if;
|
||||
|
||||
-- All this must not have any checks
|
||||
|
||||
Scope_Suppress := (others => True);
|
||||
|
|
|
@ -884,6 +884,7 @@ package body Sem_Ch3 is
|
|||
|
||||
elsif Has_Task (Desig_Type)
|
||||
and then Comes_From_Source (Related_Nod)
|
||||
and then not Restriction_Active (No_Task_Hierarchy)
|
||||
then
|
||||
if not Has_Master_Entity (Current_Scope) then
|
||||
Decl :=
|
||||
|
|
Loading…
Reference in New Issue