diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-10-29 10:52:28 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-10-29 10:52:28 +0000 |
commit | 607743460cb910fe1bd265a5f206974afd0acbd5 (patch) | |
tree | c984dd33ef86b98862cf158e113906ed181216b1 /gcc/ada/exp_ch3.adb | |
parent | 6ad452c6c9f38faccf690398f7e315334c2457dd (diff) | |
download | gcc-607743460cb910fe1bd265a5f206974afd0acbd5.tar.gz |
2012-10-29 Tristan Gingold <gingold@adacore.com>
* bindgen.adb (Gen_Output_File_Ada): Do not emit declaration for
Is_Elaborated if not referenced.
2012-10-29 Tristan Gingold <gingold@adacore.com>
* exp_ch9.adb (Build_Activation_Chain_Entity): Punt in restricted
profile.
* exp_ch3.adb (Build_Initialization_Call): Do no append _Chain
parameter in restricted profile.
(Build_Init_Call_Thru): Likewise.
(Init_Formals): Likewise.
* exp_ch3.adb: Minor reformatting.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192925 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/exp_ch3.adb')
-rw-r--r-- | gcc/ada/exp_ch3.adb | 59 |
1 files changed, 37 insertions, 22 deletions
diff --git a/gcc/ada/exp_ch3.adb b/gcc/ada/exp_ch3.adb index af5dadd9abc..9911d213bf2 100644 --- a/gcc/ada/exp_ch3.adb +++ b/gcc/ada/exp_ch3.adb @@ -1537,7 +1537,12 @@ package body Exp_Ch3 is Append_To (Args, Make_Identifier (Loc, Name_uMaster)); end if; - Append_To (Args, Make_Identifier (Loc, Name_uChain)); + if not Restricted_Profile then + + -- No _Chain for restricted profile + + Append_To (Args, Make_Identifier (Loc, Name_uChain)); + end if; -- Ada 2005 (AI-287): In case of default initialized components -- with tasks, we generate a null string actual parameter. @@ -1987,7 +1992,13 @@ package body Exp_Ch3 is Append_To (Args, Make_Identifier (Loc, Name_uMaster)); end if; - Append_To (Args, Make_Identifier (Loc, Name_uChain)); + if not Restricted_Profile then + + -- No _Chain for restricted profile + + Append_To (Args, Make_Identifier (Loc, Name_uChain)); + end if; + Append_To (Args, Make_Identifier (Loc, Name_uTask_Name)); First_Discr_Param := Next (Next (Next (First_Discr_Param))); end if; @@ -7791,24 +7802,29 @@ package body Exp_Ch3 is Make_Parameter_Specification (Loc, Defining_Identifier => Make_Defining_Identifier (Loc, Name_uMaster), - Parameter_Type => New_Reference_To (RTE (RE_Master_Id), Loc))); + Parameter_Type => + New_Reference_To (RTE (RE_Master_Id), Loc))); - Append_To (Formals, - Make_Parameter_Specification (Loc, - Defining_Identifier => - Make_Defining_Identifier (Loc, Name_uChain), - In_Present => True, - Out_Present => True, - Parameter_Type => - New_Reference_To (RTE (RE_Activation_Chain), Loc))); + if not Restricted_Profile then + + -- No _Chain for restricted profile + + Append_To (Formals, + Make_Parameter_Specification (Loc, + Defining_Identifier => + Make_Defining_Identifier (Loc, Name_uChain), + In_Present => True, + Out_Present => True, + Parameter_Type => + New_Reference_To (RTE (RE_Activation_Chain), Loc))); + end if; Append_To (Formals, Make_Parameter_Specification (Loc, Defining_Identifier => Make_Defining_Identifier (Loc, Name_uTask_Name), - In_Present => True, - Parameter_Type => - New_Reference_To (Standard_String, Loc))); + In_Present => True, + Parameter_Type => New_Reference_To (Standard_String, Loc))); end if; return Formals; @@ -7907,7 +7923,7 @@ package body Exp_Ch3 is (RTE (RE_Set_Dynamic_Offset_To_Top), Loc), Parameter_Associations => New_List ( Make_Attribute_Reference (Loc, - Prefix => New_Copy_Tree (Target), + Prefix => New_Copy_Tree (Target), Attribute_Name => Name_Address), Unchecked_Convert_To (RTE (RE_Tag), @@ -7920,7 +7936,7 @@ package body Exp_Ch3 is Make_Attribute_Reference (Loc, Prefix => Make_Selected_Component (Loc, - Prefix => New_Copy_Tree (Target), + Prefix => New_Copy_Tree (Target), Selector_Name => New_Reference_To (Tag_Comp, Loc)), Attribute_Name => Name_Position)), @@ -7946,18 +7962,17 @@ package body Exp_Ch3 is (Offset_To_Top_Comp, Loc)), Expression => Make_Attribute_Reference (Loc, - Prefix => + Prefix => Make_Selected_Component (Loc, - Prefix => New_Copy_Tree (Target), - Selector_Name => - New_Reference_To (Tag_Comp, Loc)), + Prefix => New_Copy_Tree (Target), + Selector_Name => New_Reference_To (Tag_Comp, Loc)), Attribute_Name => Name_Position))); -- Normal case: No discriminants in the parent type else - -- Don't need to set any value if this interface shares - -- the primary dispatch table. + -- Don't need to set any value if this interface shares the + -- primary dispatch table. if not Is_Ancestor (Iface, Typ, Use_Full_View => True) then Append_To (Stmts_List, |