aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorTristan Gingold <gingold@adacore.com>2012-10-29 10:52:28 +0000
committerArnaud Charlet <charlet@gcc.gnu.org>2012-10-29 11:52:28 +0100
commitc18e9f65faeb5ea78af6d703c2e5b4e60de0485c (patch)
treec984dd33ef86b98862cf158e113906ed181216b1 /gcc
parentc607e6d50ef2dee78cdbf008f763c4098acb185a (diff)
downloadgcc-c18e9f65faeb5ea78af6d703c2e5b4e60de0485c.zip
gcc-c18e9f65faeb5ea78af6d703c2e5b4e60de0485c.tar.gz
gcc-c18e9f65faeb5ea78af6d703c2e5b4e60de0485c.tar.bz2
bindgen.adb (Gen_Output_File_Ada): Do not emit declaration for Is_Elaborated if not referenced.
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. From-SVN: r192925
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog15
-rw-r--r--gcc/ada/bindgen.adb7
-rw-r--r--gcc/ada/exp_ch3.adb59
-rw-r--r--gcc/ada/exp_ch9.adb6
4 files changed, 64 insertions, 23 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index d408c95..7bc26c6 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,18 @@
+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.
+
2012-10-29 Arnaud Charlet <charlet@adacore.com>
* usage.adb: Update usage line for -gnatw.k.
diff --git a/gcc/ada/bindgen.adb b/gcc/ada/bindgen.adb
index f29e2da..e178a57 100644
--- a/gcc/ada/bindgen.adb
+++ b/gcc/ada/bindgen.adb
@@ -2394,8 +2394,13 @@ package body Bindgen is
-- The B.1 (39) implementation advice says that the adainit/adafinal
-- routines should be idempotent. Generate a flag to ensure that.
+ -- This is not needed if we are suppressing the standard library
+ -- since it would never be referenced.
+
+ if not Suppress_Standard_Library_On_Target then
+ WBI (" Is_Elaborated : Boolean := False;");
+ end if;
- WBI (" Is_Elaborated : Boolean := False;");
WBI ("");
end if;
diff --git a/gcc/ada/exp_ch3.adb b/gcc/ada/exp_ch3.adb
index af5dadd..9911d21 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,
diff --git a/gcc/ada/exp_ch9.adb b/gcc/ada/exp_ch9.adb
index 6e370f4..b39484f 100644
--- a/gcc/ada/exp_ch9.adb
+++ b/gcc/ada/exp_ch9.adb
@@ -911,6 +911,12 @@ package body Exp_Ch9 is
-- Start of processing for Build_Activation_Chain_Entity
begin
+ -- Activation chain is never used in restricted profile
+
+ if Restricted_Profile then
+ return;
+ end if;
+
Find_Enclosing_Context (N, Context, Context_Id, Decls);
-- If an activation chain entity has not been declared already, create