aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/sem_ch4.adb
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2011-10-13 13:05:50 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2011-10-13 13:05:50 +0200
commit9b62eb3214596c49540636a2e48981bfc19a8df3 (patch)
treebd67117b4d54df74f1b16e417260bcc028e773d5 /gcc/ada/sem_ch4.adb
parent1a36a0cd695e3254367fc01d371ae23f3d3f50fa (diff)
downloadgcc-9b62eb3214596c49540636a2e48981bfc19a8df3.zip
gcc-9b62eb3214596c49540636a2e48981bfc19a8df3.tar.gz
gcc-9b62eb3214596c49540636a2e48981bfc19a8df3.tar.bz2
[multiple changes]
2011-10-13 Ed Schonberg <schonberg@adacore.com> * sem_util.ads, sem_util.adb (Available_Full_View_Of_Component): New predicate to determine whether some operations on an array type are available when the full view of its component may differ from the view of the point of the array declaration. * sem_ch4.adb (Find_Equality_Types): Use Available_Full_View_Of_Component. * sem_type.adb (Valid_Boolean_Arg, Valid_Comparison_Arg): Ditto 2011-10-13 Ed Schonberg <schonberg@adacore.com> * sem_ch9.adb: Analyze aspects while discriminants of protected type are visible. 2011-10-13 Geert Bosch <bosch@adacore.com> * Makefile.rtl (GNATRTL_TASKING_OBJECTS): Add a-nlcoar.o, a-nllcar.o, a-nucoar.o and s-gearop.o, as these no longer depend on an external library. * gcc-interface/Makefile.in (GNATRTL_LINEARALGEBRA_OBJS): Remove a-nlcoar.o, a-nllcar.o, a-nucoar.o and s-gearop.o. Update dependencies. * gcc-interface/Make-lang.in: Update dependencies. From-SVN: r179914
Diffstat (limited to 'gcc/ada/sem_ch4.adb')
-rw-r--r--gcc/ada/sem_ch4.adb10
1 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ada/sem_ch4.adb b/gcc/ada/sem_ch4.adb
index 9bd6bbd..8fc5045 100644
--- a/gcc/ada/sem_ch4.adb
+++ b/gcc/ada/sem_ch4.adb
@@ -5548,9 +5548,15 @@ package body Sem_Ch4 is
end if;
if T1 /= Standard_Void_Type
- and then not Is_Limited_Type (T1)
- and then not Is_Limited_Composite (T1)
and then Has_Compatible_Type (R, T1)
+ and then
+ ((not Is_Limited_Type (T1)
+ and then not Is_Limited_Composite (T1))
+
+ or else
+ (Is_Array_Type (T1)
+ and then not Is_Limited_Type (Component_Type (T1))
+ and then Available_Full_View_Of_Component (T1)))
then
if Found
and then Base_Type (T1) /= Base_Type (T_F)