aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/sem_disp.adb
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2010-10-26 14:45:45 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2010-10-26 14:45:45 +0200
commitce09f8b3f240994d4f9ecc2e95e8e0bbd78eb3f5 (patch)
treed18805d6b80e73483f9434539b8fb989680f11bd /gcc/ada/sem_disp.adb
parentf9673bb07a907dc644420d95858531e3699394e2 (diff)
downloadgcc-ce09f8b3f240994d4f9ecc2e95e8e0bbd78eb3f5.zip
gcc-ce09f8b3f240994d4f9ecc2e95e8e0bbd78eb3f5.tar.gz
gcc-ce09f8b3f240994d4f9ecc2e95e8e0bbd78eb3f5.tar.bz2
[multiple changes]
2010-10-26 Robert Dewar <dewar@adacore.com> * opt.ads (Treat_Categorization_Errors_As_Warnings): New flag * sem_cat.adb (Check_Categorization_Dependencies): Use Check_Categorization_Dependencies * switch-c.adb: GNAT Mode sets Treat_Categorization_Errors_As_Warnings -gnateP sets Treat_Categorization_Errors_As_Warnings * usage.adb: Add line for -gnateP switch 2010-10-26 Javier Miranda <miranda@adacore.com> * sem_ch3.adb (Add_Internal_Interface_Entities): Handle primitives inherited from the parent that cover interface primitives. (Derive_Progenitor_Subprograms): Handle primitives inherited from the parent that cover interface primitives. * sem_disp.adb (Find_Primitive_Covering_Interface): When searching in the list of primitives of the type extend the test to include inherited private primitives. * sem_ch6.ads (Is_Interface_Conformant): Add missing documentation. * sem_ch7.adb (Declare_Inherited_Private_Subprograms): Add missing barrier to the loop searching for explicit overriding primitives. * sem_ch4.adb (Analyze_Indexed_Component_Form): Add missing barrier before accessing attribute Entity. 2010-10-26 Bob Duff <duff@adacore.com> * make.adb: Call Namet.Finalize, so we can get statistics. From-SVN: r165952
Diffstat (limited to 'gcc/ada/sem_disp.adb')
-rw-r--r--gcc/ada/sem_disp.adb7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ada/sem_disp.adb b/gcc/ada/sem_disp.adb
index 9312192..55330b9 100644
--- a/gcc/ada/sem_disp.adb
+++ b/gcc/ada/sem_disp.adb
@@ -1817,6 +1817,13 @@ package body Sem_Disp is
end if;
end if;
+ -- Check if E covers the interface primitive (includes case in
+ -- which E is an inherited private primitive)
+
+ if Is_Interface_Conformant (Tagged_Type, Iface_Prim, E) then
+ return E;
+ end if;
+
-- Use the internal entity that links the interface primitive with
-- the covering primitive to locate the entity