https://gcc.gnu.org/g:91fc017022c66e475da5ea5528f983d840800e40
commit r16-2498-g91fc017022c66e475da5ea5528f983d840800e40 Author: Bob Duff <d...@adacore.com> Date: Wed Jul 16 10:29:01 2025 -0400 ada: Bug in Indefinite_Holders instance passed to formal package Fix bug when an instance of Indefinite_Holders with a class-wide type is passed as a generic formal package; Program_Error was raised when dealing with the implicit "=" function. The fix is to disable legality checks in formal packages when the entity is an E_Subprogram_Body, because these are implicitly generated for class-wide predefined functions when passed to generics. gcc/ada/ChangeLog: * sem_ch12.adb (Check_Formal_Package_Instance): Do nothing in case of E_Subprogram_Body. Diff: --- gcc/ada/sem_ch12.adb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gcc/ada/sem_ch12.adb b/gcc/ada/sem_ch12.adb index 1cb9d115cc58..b5c9e88adbbf 100644 --- a/gcc/ada/sem_ch12.adb +++ b/gcc/ada/sem_ch12.adb @@ -7574,6 +7574,12 @@ package body Sem_Ch12 is or else not Same_Instantiated_Function (E1, E2)); end if; + -- No check is needed if this is the body of a subprogram that is + -- implicitly created in the case of class-wide predefined functions. + + elsif Ekind (E1) = E_Subprogram_Body then + null; + else raise Program_Error; end if;