diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2014-01-29 16:39:03 +0100 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2014-01-29 16:39:03 +0100 |
commit | 0d66cee51db569b3b4c4de2cb4b2292f9df4eaa5 (patch) | |
tree | 75f8bc4a9ebb56b89c85738dd56b3ebce809e23f /gcc | |
parent | b7cb4a617fd5fd4ec69eedf3790f5c9ef836f0d7 (diff) | |
download | gcc-0d66cee51db569b3b4c4de2cb4b2292f9df4eaa5.zip gcc-0d66cee51db569b3b4c4de2cb4b2292f9df4eaa5.tar.gz gcc-0d66cee51db569b3b4c4de2cb4b2292f9df4eaa5.tar.bz2 |
[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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/ada/exp_ch3.adb | 6 | ||||
-rw-r--r-- | gcc/ada/expander.adb | 11 |
3 files changed, 20 insertions, 6 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 1d0515d..f0b7109 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -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> * exp_ch3.adb (Predefined_Primitive_Bodies): Complete the code diff --git a/gcc/ada/exp_ch3.adb b/gcc/ada/exp_ch3.adb index 3dfd390..4f3846f 100644 --- a/gcc/ada/exp_ch3.adb +++ b/gcc/ada/exp_ch3.adb @@ -9632,7 +9632,8 @@ package body Exp_Ch3 is -- If the parent is an interface type then it has defined all the -- 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 Eq_Needed := True; @@ -9644,7 +9645,8 @@ package body Exp_Ch3 is and then not Is_Internal (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 Next_Entity (First_Entity (Node (Prim))) diff --git a/gcc/ada/expander.adb b/gcc/ada/expander.adb index 6ed3e63..9f57cda 100644 --- a/gcc/ada/expander.adb +++ b/gcc/ada/expander.adb @@ -57,7 +57,7 @@ package body Expander is -- 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 -- 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 ( Table_Component_Type => Boolean, @@ -129,13 +129,16 @@ package body Expander is -- In GNATprove mode we only need a very limited subset of -- the usual expansions. This limited subset is implemented -- 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 Expand_SPARK (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; -- Here for normal non-SPARK mode |