Commit f0b741b6 by Arnaud Charlet

[multiple changes]

2012-10-29  Javier Miranda  <miranda@adacore.com>

	* sem_ch3.adb (Derive_Progenitor_Subprograms): Disable small
	optimization in generic formal types.

2012-10-29  Robert Dewar  <dewar@adacore.com>

	* exp_ch9.adb, exp_ch3.adb: Add comments.
	* sem_prag.adb: Minor reformatting.

From-SVN: r192926
parent c18e9f65
2012-10-29 Javier Miranda <miranda@adacore.com>
* sem_ch3.adb (Derive_Progenitor_Subprograms): Disable small
optimization in generic formal types.
2012-10-29 Robert Dewar <dewar@adacore.com>
* exp_ch9.adb, exp_ch3.adb: Add comments.
* sem_prag.adb: Minor reformatting.
2012-10-29 Tristan Gingold <gingold@adacore.com> 2012-10-29 Tristan Gingold <gingold@adacore.com>
* bindgen.adb (Gen_Output_File_Ada): Do not emit declaration for * bindgen.adb (Gen_Output_File_Ada): Do not emit declaration for
......
...@@ -1537,10 +1537,9 @@ package body Exp_Ch3 is ...@@ -1537,10 +1537,9 @@ package body Exp_Ch3 is
Append_To (Args, Make_Identifier (Loc, Name_uMaster)); Append_To (Args, Make_Identifier (Loc, Name_uMaster));
end if; end if;
if not Restricted_Profile then -- Add _Chain (not done in the restricted profile because ???)
-- No _Chain for restricted profile
if not Restricted_Profile then
Append_To (Args, Make_Identifier (Loc, Name_uChain)); Append_To (Args, Make_Identifier (Loc, Name_uChain));
end if; end if;
......
...@@ -911,7 +911,7 @@ package body Exp_Ch9 is ...@@ -911,7 +911,7 @@ package body Exp_Ch9 is
-- Start of processing for Build_Activation_Chain_Entity -- Start of processing for Build_Activation_Chain_Entity
begin begin
-- Activation chain is never used in restricted profile -- Activation chain is never used in restricted profile (why not???)
if Restricted_Profile then if Restricted_Profile then
return; return;
...@@ -919,8 +919,7 @@ package body Exp_Ch9 is ...@@ -919,8 +919,7 @@ package body Exp_Ch9 is
Find_Enclosing_Context (N, Context, Context_Id, Decls); Find_Enclosing_Context (N, Context, Context_Id, Decls);
-- If an activation chain entity has not been declared already, create -- If activation chain entity has not been declared already, create one
-- one.
if Nkind (Context) = N_Extended_Return_Statement if Nkind (Context) = N_Extended_Return_Statement
or else No (Activation_Chain_Entity (Context)) or else No (Activation_Chain_Entity (Context))
......
...@@ -12804,16 +12804,18 @@ package body Sem_Ch3 is ...@@ -12804,16 +12804,18 @@ package body Sem_Ch3 is
-- done here because interfaces must be visible in the partial and -- done here because interfaces must be visible in the partial and
-- private view (RM 7.3(7.3/2)). -- private view (RM 7.3(7.3/2)).
-- Small optimization: This work is only required if the parent is -- Small optimization: This work is only required if the parent
-- abstract. If the tagged type is not abstract, it cannot have -- is abstract or a generic formal type. If the tagged type is not
-- abstract primitives (the only entities in the list of primitives of -- abstract, it cannot have abstract primitives (the only entities
-- non-abstract tagged types that can reference abstract primitives -- in the list of primitives of non-abstract tagged types that can
-- through its Alias attribute are the internal entities that have -- reference abstract primitives through its Alias attribute are the
-- attribute Interface_Alias, and these entities are generated later -- internal entities that have attribute Interface_Alias, and these
-- by Add_Internal_Interface_Entities). -- entities are generated later by Add_Internal_Interface_Entities).
-- Need explanation for the generic case ???
if In_Private_Part (Current_Scope) if In_Private_Part (Current_Scope)
and then Is_Abstract_Type (Parent_Type) and then (Is_Abstract_Type (Parent_Type)
or else Is_Generic_Type (Parent_Type))
then then
Elmt := First_Elmt (Primitive_Operations (Tagged_Type)); Elmt := First_Elmt (Primitive_Operations (Tagged_Type));
while Present (Elmt) loop while Present (Elmt) loop
......
...@@ -840,7 +840,7 @@ package body Sem_Disp is ...@@ -840,7 +840,7 @@ package body Sem_Disp is
Tagged_Type := Find_Dispatching_Type (Subp); Tagged_Type := Find_Dispatching_Type (Subp);
-- Ada 2005 (AI-345): Use the corresponding record (if available). -- Ada 2005 (AI-345): Use the corresponding record (if available).
-- Required because primitives of concurrent types are be attached -- Required because primitives of concurrent types are attached
-- to the corresponding record (not to the concurrent type). -- to the corresponding record (not to the concurrent type).
if Ada_Version >= Ada_2005 if Ada_Version >= Ada_2005
......
...@@ -6763,11 +6763,13 @@ package body Sem_Prag is ...@@ -6763,11 +6763,13 @@ package body Sem_Prag is
-- Assert/Assert_And_Cut -- -- Assert/Assert_And_Cut --
--------------------------- ---------------------------
-- pragma Assert ([Check =>] Boolean_EXPRESSION -- pragma Assert
-- [, [Message =>] Static_String_EXPRESSION]); -- ( [Check => ] Boolean_EXPRESSION
-- [, [Message =>] Static_String_EXPRESSION]);
-- pragma Assert_And_Cut ([Check =>] Boolean_EXPRESSION -- pragma Assert_And_Cut
-- [, [Message =>] Static_String_EXPRESSION]); -- ( [Check => ] Boolean_EXPRESSION
-- [, [Message =>] Static_String_EXPRESSION]);
when Pragma_Assert | Pragma_Assert_And_Cut => Assert : declare when Pragma_Assert | Pragma_Assert_And_Cut => Assert : declare
Expr : Node_Id; Expr : Node_Id;
...@@ -6776,7 +6778,6 @@ package body Sem_Prag is ...@@ -6776,7 +6778,6 @@ package body Sem_Prag is
begin begin
if Prag_Id = Pragma_Assert then if Prag_Id = Pragma_Assert then
Ada_2005_Pragma; Ada_2005_Pragma;
else -- Pragma_Assert_And_Cut else -- Pragma_Assert_And_Cut
GNAT_Pragma; GNAT_Pragma;
end if; end if;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment