This occurs with an instantiation of Ada.Containers.Vectors in a nested
package on an access-to-class-wide type declared with the Put_Image aspect
because of too late a freezing for the internal renaming generated for the
Put_Image procedure.
The change freezes this renaming immediately in this particular case; this
is similar to a trick used in Build_Array_Put_Image_Procedure.
gcc/ada/
* sem_ch13.adb (New_Put_Image_Subprogram): In the nondeferred case
coming from an aspect and for a type with delaying freezing, also
freeze the subprogram immediately.
then
Append_Freeze_Action (Ent, Subp_Decl);
+ -- We may freeze Subp_Id immediately since Ent has just been frozen.
+ -- This will help to shield us from potential late freezing issues.
+
+ Set_Is_Frozen (Subp_Id);
+
else
Insert_Action (N, Subp_Decl);
Set_Entity (N, Subp_Id);