aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorEd Schonberg <schonberg@adacore.com>2014-01-29 15:26:18 +0000
committerArnaud Charlet <charlet@gcc.gnu.org>2014-01-29 16:26:18 +0100
commit1ae706185e7ac4057f176910104156032c0f7b1d (patch)
treea4934a87437d9d9c541d4ad11fffc49ce2d20e86 /gcc/ada
parentcca7f1076abe9e521702ddbc1a2dbfea072bd563 (diff)
downloadgcc-1ae706185e7ac4057f176910104156032c0f7b1d.zip
gcc-1ae706185e7ac4057f176910104156032c0f7b1d.tar.gz
gcc-1ae706185e7ac4057f176910104156032c0f7b1d.tar.bz2
checks.adb: minor clarification.
2014-01-29 Ed Schonberg <schonberg@adacore.com> * checks.adb: minor clarification. * sem_ch7.adb (Declare_Inherited_Private_Subprograms): Limit search for primitive operations to the entities that immediately follow the type declaration. From-SVN: r207248
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/ChangeLog7
-rw-r--r--gcc/ada/checks.adb5
-rw-r--r--gcc/ada/sem_ch7.adb9
3 files changed, 19 insertions, 2 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index c6e1573..f79ca89 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,10 @@
+2014-01-29 Ed Schonberg <schonberg@adacore.com>
+
+ * checks.adb: minor clarification.
+ * sem_ch7.adb (Declare_Inherited_Private_Subprograms): Limit
+ search for primitive operations to the entities that immediately
+ follow the type declaration.
+
2014-01-29 Tristan Gingold <gingold@adacore.com>
* exp_ch9.adb (Build_Protected_Entry): Do not call
diff --git a/gcc/ada/checks.adb b/gcc/ada/checks.adb
index 826c09b..872c18a 100644
--- a/gcc/ada/checks.adb
+++ b/gcc/ada/checks.adb
@@ -6694,8 +6694,9 @@ package body Checks is
if (not Inside_Init_Proc or else SPARK_Mode = On)
- -- Do not emit the warning within a conditional expression
- -- Why not ???
+ -- Do not emit the warning within a conditional expression,
+ -- where the expression might not be evaluated, and the warning
+ -- appear as extraneous noise.
and then not Within_Case_Or_If_Expression (N)
then
diff --git a/gcc/ada/sem_ch7.adb b/gcc/ada/sem_ch7.adb
index 4b6a6e4..d0d80ba 100644
--- a/gcc/ada/sem_ch7.adb
+++ b/gcc/ada/sem_ch7.adb
@@ -1812,6 +1812,15 @@ package body Sem_Ch7 is
end if;
Next_Entity (Prim_Op);
+
+ -- Derived operations appear immediately after the type
+ -- declaration (or the following subtype indication for
+ -- a derived scalar type). Further declarations cannot
+ -- include inherited operations of the type.
+
+ if Present (Prim_Op) then
+ exit when Ekind (Prim_Op) not in Overloadable_Kind;
+ end if;
end loop;
end if;
end if;