From: Steve Baird <ba...@adacore.com> In some cases, a bugbox is generated when compiling an example that references X'Image, where X is a constrained object of a discriminated protected type.
gcc/ada/ * sem_ch3.adb (Constrain_Corresponding_Record): When copying information from the unconstrained record type to a newly constructed constrained record subtype, the Direct_Primitive_Operations attribute must be copied. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/sem_ch3.adb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gcc/ada/sem_ch3.adb b/gcc/ada/sem_ch3.adb index ed337f5408e..042ace01724 100644 --- a/gcc/ada/sem_ch3.adb +++ b/gcc/ada/sem_ch3.adb @@ -14325,6 +14325,8 @@ package body Sem_Ch3 is Set_Is_Constrained (T_Sub, True); Set_First_Entity (T_Sub, First_Entity (Corr_Rec)); Set_Last_Entity (T_Sub, Last_Entity (Corr_Rec)); + Set_Direct_Primitive_Operations + (T_Sub, Direct_Primitive_Operations (Corr_Rec)); if Has_Discriminants (Prot_Subt) then -- False only if errors. Set_Discriminant_Constraint -- 2.40.0