From dc94991cb702e6432de9fea3a2980c5076d49a63 Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Wed, 11 May 2022 10:10:52 +0200 Subject: [PATCH] [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. --- gcc/ada/sem_util.adb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 -- 2.47.2