This is a regression introduced on the mainline by the freezing change for
the designated type of anonymous access-to-subprogram types, which has
uncovered a small oversight in Analyze_Subprogram_Instantiation, whereby
we propagate the Convention of the generic subprogram onto the named actual
only, and not onto the anonymous actual built alongside the named one.
gcc/ada/
PR ada/123062
* sem_ch12.adb (Analyze_Subprogram_Instantiation): Also propagate
the Convention and Is_Exported flag onto the anonymous actual.
and then Convention (Gen_Unit) /= Convention_Intrinsic
then
Set_Convention (Act_Decl_Id, Convention (Gen_Unit));
+ Set_Convention (Anon_Id, Convention (Gen_Unit));
+
Set_Is_Exported (Act_Decl_Id, Is_Exported (Gen_Unit));
+ Set_Is_Exported (Anon_Id, Is_Exported (Gen_Unit));
end if;
Generate_Definition (Act_Decl_Id);