[multiple changes]
2014-01-29 Robert Dewar <dewar@adacore.com> * expander.adb: Minor reformatting. 2014-01-29 Javier Miranda <miranda@adacore.com> * exp_ch3.adb (Predefined_Primitive_Bodies): Adding documentation to previous patch. From-SVN: r207257
This commit is contained in:
parent
b7cb4a617f
commit
0d66cee51d
|
@ -1,3 +1,12 @@
|
||||||
|
2014-01-29 Robert Dewar <dewar@adacore.com>
|
||||||
|
|
||||||
|
* expander.adb: Minor reformatting.
|
||||||
|
|
||||||
|
2014-01-29 Javier Miranda <miranda@adacore.com>
|
||||||
|
|
||||||
|
* exp_ch3.adb (Predefined_Primitive_Bodies): Adding documentation to
|
||||||
|
previous patch.
|
||||||
|
|
||||||
2014-01-29 Javier Miranda <miranda@adacore.com>
|
2014-01-29 Javier Miranda <miranda@adacore.com>
|
||||||
|
|
||||||
* exp_ch3.adb (Predefined_Primitive_Bodies): Complete the code
|
* exp_ch3.adb (Predefined_Primitive_Bodies): Complete the code
|
||||||
|
|
|
@ -9632,7 +9632,8 @@ package body Exp_Ch3 is
|
||||||
|
|
||||||
-- If the parent is an interface type then it has defined all the
|
-- If the parent is an interface type then it has defined all the
|
||||||
-- predefined primitives abstract and we need to check if the type
|
-- predefined primitives abstract and we need to check if the type
|
||||||
-- has some user defined "=" function to avoid generating it.
|
-- has some user defined "=" function which matches the profile of
|
||||||
|
-- the Ada predefined equality operator to avoid generating it.
|
||||||
|
|
||||||
elsif Is_Interface (Etype (Tag_Typ)) then
|
elsif Is_Interface (Etype (Tag_Typ)) then
|
||||||
Eq_Needed := True;
|
Eq_Needed := True;
|
||||||
|
@ -9644,7 +9645,8 @@ package body Exp_Ch3 is
|
||||||
and then not Is_Internal (Node (Prim))
|
and then not Is_Internal (Node (Prim))
|
||||||
and then Present (First_Entity (Node (Prim)))
|
and then Present (First_Entity (Node (Prim)))
|
||||||
|
|
||||||
-- Following tests need a comment ???
|
-- The predefined equality primitive must have exactly two
|
||||||
|
-- formals whose type is this tagged type
|
||||||
|
|
||||||
and then Present (Last_Entity (Node (Prim)))
|
and then Present (Last_Entity (Node (Prim)))
|
||||||
and then Next_Entity (First_Entity (Node (Prim)))
|
and then Next_Entity (First_Entity (Node (Prim)))
|
||||||
|
|
|
@ -57,7 +57,7 @@ package body Expander is
|
||||||
-- The following table is used to save values of the Expander_Active flag
|
-- The following table is used to save values of the Expander_Active flag
|
||||||
-- when they are saved by Expander_Mode_Save_And_Set. We use an extendible
|
-- when they are saved by Expander_Mode_Save_And_Set. We use an extendible
|
||||||
-- table (which is a bit of overkill) because it is easier than figuring
|
-- table (which is a bit of overkill) because it is easier than figuring
|
||||||
-- out a maximum value or bothering with range checks!
|
-- out a maximum value or bothering with range checks.
|
||||||
|
|
||||||
package Expander_Flags is new Table.Table (
|
package Expander_Flags is new Table.Table (
|
||||||
Table_Component_Type => Boolean,
|
Table_Component_Type => Boolean,
|
||||||
|
@ -129,13 +129,16 @@ package body Expander is
|
||||||
-- In GNATprove mode we only need a very limited subset of
|
-- In GNATprove mode we only need a very limited subset of
|
||||||
-- the usual expansions. This limited subset is implemented
|
-- the usual expansions. This limited subset is implemented
|
||||||
-- in Expand_SPARK.
|
-- in Expand_SPARK.
|
||||||
-- Regular expansion is followed by special handling for transient
|
|
||||||
-- scopes for unconstrained results, etc. but this is not needed,
|
|
||||||
-- and in general cannot be done correctly, in this mode.
|
|
||||||
|
|
||||||
if GNATprove_Mode then
|
if GNATprove_Mode then
|
||||||
Expand_SPARK (N);
|
Expand_SPARK (N);
|
||||||
Set_Analyzed (N);
|
Set_Analyzed (N);
|
||||||
|
|
||||||
|
-- Regular expansion is normally followed by special handling
|
||||||
|
-- for transient scopes for unconstrained results, etc. but
|
||||||
|
-- this is not needed, and in general cannot be done correctly,
|
||||||
|
-- in this mode, so we are all done.
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
-- Here for normal non-SPARK mode
|
-- Here for normal non-SPARK mode
|
||||||
|
|
Loading…
Reference in New Issue