From: Eric Botcazou Date: Wed, 11 May 2022 08:10:52 +0000 (+0200) Subject: [Ada] Propagate Has_Inherit{able,ed}_Invariants to base types X-Git-Tag: basepoints/gcc-14~6273 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=dc94991cb702e6432de9fea3a2980c5076d49a63;p=thirdparty%2Fgcc.git [Ada] Propagate Has_Inherit{able,ed}_Invariants to base types The two flags apply to base types only like Has_Own_Invariants. gcc/ada/ * sem_util.adb (Propagate_DIC_Attributes): Add ??? comment. (Propagate_Invariant_Attributes): Likewise. Propagate the Has_Inheritable_Invariants and Has_Inherited_Invariants to the base type of the target type. --- diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb index c231fbb1a72..265c11afe1c 100644 --- a/gcc/ada/sem_util.adb +++ b/gcc/ada/sem_util.adb @@ -27312,7 +27312,7 @@ package body Sem_Util is -- The setting of the attributes is intentionally conservative. This -- prevents accidental clobbering of enabled attributes. We need to -- call Base_Type twice, because it is sometimes not set to an actual - -- base type. + -- base type??? if Has_Inherited_DIC (From_Typ) then Set_Has_Inherited_DIC (Base_Type (Base_Type (Typ))); @@ -27362,14 +27362,14 @@ package body Sem_Util is -- The setting of the attributes is intentionally conservative. This -- prevents accidental clobbering of enabled attributes. We need to -- call Base_Type twice, because it is sometimes not set to an actual - -- base type. + -- base type??? if Has_Inheritable_Invariants (From_Typ) then - Set_Has_Inheritable_Invariants (Typ); + Set_Has_Inheritable_Invariants (Base_Type (Base_Type (Typ))); end if; if Has_Inherited_Invariants (From_Typ) then - Set_Has_Inherited_Invariants (Typ); + Set_Has_Inherited_Invariants (Base_Type (Base_Type (Typ))); end if; if Has_Own_Invariants (From_Typ) then