aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2014-01-29 16:39:03 +0100
committerArnaud Charlet <charlet@gcc.gnu.org>2014-01-29 16:39:03 +0100
commit0d66cee51db569b3b4c4de2cb4b2292f9df4eaa5 (patch)
tree75f8bc4a9ebb56b89c85738dd56b3ebce809e23f /gcc
parentb7cb4a617fd5fd4ec69eedf3790f5c9ef836f0d7 (diff)
downloadgcc-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/ChangeLog9
-rw-r--r--gcc/ada/exp_ch3.adb6
-rw-r--r--gcc/ada/expander.adb11
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