aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJavier Miranda <miranda@adacore.com>2008-05-28 17:33:54 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2008-05-28 17:33:54 +0200
commit9800ef594c9e73b5bd04ba27924384cf4d73a127 (patch)
treeac444fdaeb6220516ddd4d8ae14d48bc8a37f196
parent71292a05408898d2e37ef5442083d1819ead741a (diff)
downloadgcc-9800ef594c9e73b5bd04ba27924384cf4d73a127.zip
gcc-9800ef594c9e73b5bd04ba27924384cf4d73a127.tar.gz
gcc-9800ef594c9e73b5bd04ba27924384cf4d73a127.tar.bz2
sem_ch3.adb (Derive_Progenitor_Subprograms): Add documentation.
2008-05-28 Javier Miranda <miranda@adacore.com> * sem_ch3.adb (Derive_Progenitor_Subprograms): Add documentation. From-SVN: r136104
-rw-r--r--gcc/ada/sem_ch3.adb7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ada/sem_ch3.adb b/gcc/ada/sem_ch3.adb
index 3dc47a3..88a4413 100644
--- a/gcc/ada/sem_ch3.adb
+++ b/gcc/ada/sem_ch3.adb
@@ -11398,6 +11398,13 @@ package body Sem_Ch3 is
while Present (Prim_Elmt) loop
Iface_Subp := Node (Prim_Elmt);
+ -- Exclude derivation of predefined primitives except those
+ -- that come from source. Required to catch declarations of
+ -- equality operators of interfaces. For example:
+
+ -- type Iface is interface;
+ -- function "=" (Left, Right : Iface) return Boolean;
+
if not Is_Predefined_Dispatching_Operation (Iface_Subp)
or else Comes_From_Source (Iface_Subp)
then