]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
ada: Compiler fails on unchecked deallocation for constrained protected subtype
authorGary Dismukes <dismukes@adacore.com>
Fri, 16 May 2025 23:11:26 +0000 (23:11 +0000)
committerEric Botcazou <ebotcazou@adacore.com>
Tue, 1 Jul 2025 14:33:59 +0000 (16:33 +0200)
The compiler fails with an error or Assert_Failure when calling
an instantiation of Unchecked_Deallocation that has been instantiated
with a constrained subtype of a discriminated protected type.

gcc/ada/ChangeLog:

* sem_ch3.adb (Constrain_Corresponding_Record): Inherit Class_Wide_Type on the
created constrained subtype.

gcc/ada/sem_ch3.adb

index 8246e6c9643fb3540dd79d9d893a258a7620c162..794e4204d842bccba290ef0da939845d8edf1ee9 100644 (file)
@@ -14601,6 +14601,7 @@ package body Sem_Ch3 is
       Set_Etype             (T_Sub, Corr_Rec);
       Set_Has_Discriminants (T_Sub, Has_Discriminants (Prot_Subt));
       Set_Is_Tagged_Type    (T_Sub, Is_Tagged_Type (Corr_Rec));
+      Set_Class_Wide_Type   (T_Sub, Class_Wide_Type (Corr_Rec));
       Set_Is_Constrained    (T_Sub, True);
       Set_First_Entity      (T_Sub, First_Entity (Corr_Rec));
       Set_Last_Entity       (T_Sub, Last_Entity  (Corr_Rec));