diff options
Diffstat (limited to 'gcc/ada/sem_ch3.adb')
-rw-r--r-- | gcc/ada/sem_ch3.adb | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/ada/sem_ch3.adb b/gcc/ada/sem_ch3.adb index 512615f..ec47142 100644 --- a/gcc/ada/sem_ch3.adb +++ b/gcc/ada/sem_ch3.adb @@ -9127,9 +9127,13 @@ package body Sem_Ch3 is end if; end if; - -- We similarly inherit predicates + -- We similarly inherit predicates. Note that for scalar derived types + -- the predicate is inherited from the first subtype, and not from its + -- (anonymous) base type. - if Has_Predicates (Parent_Type) then + if Has_Predicates (Parent_Type) + or else Has_Predicates (First_Subtype (Parent_Type)) + then Set_Has_Predicates (Derived_Type); end if; |