diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2011-10-13 13:05:50 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2011-10-13 13:05:50 +0200 |
commit | 9b62eb3214596c49540636a2e48981bfc19a8df3 (patch) | |
tree | bd67117b4d54df74f1b16e417260bcc028e773d5 /gcc/ada/sem_ch4.adb | |
parent | 1a36a0cd695e3254367fc01d371ae23f3d3f50fa (diff) | |
download | gcc-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.adb | 10 |
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) |