https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113351
--- Comment #5 from Eric Botcazou <ebotcazou at gcc dot gnu.org> --- The master branch has been updated by Eric Botcazou <[email protected]>: https://gcc.gnu.org/g:9cc7722674877893d974b1e8018817ecba1e9acf commit r16-5062-g9cc7722674877893d974b1e8018817ecba1e9acf Author: Eric Botcazou <[email protected]> Date: Thu Nov 6 20:03:49 2025 +0100 Ada: Fix incorrect renaming of primitive subprogram in object notation It is possible to declare a subprogram renaming whose name is a primitive subprogram in object notation; in this case, the name is unconditionally evaluated in the front-end (unlike for objects) so that, if an ad-hoc body needs to be built for the renaming later, the name is not reevaluated for every call to it. This evaluation is skipped if the name contains an implicit dereference, as reported in the first PR, and the fix is to make the dereference explicit at the end of the processing done in Analyze_Renamed_Primitive_Operation, as is done in the sibling procedure Analyze_Renamed_Entry. The patch also makes a few consistency tweaks to them and also replaces a manual evaluation of the name in Expand_N_Subprogram_Renaming_Declaration by a simple call to Evaluate_Name, which is the procedure used for object renamings. Analyze_Renamed_Primitive_Operation performs the resolution of the name based on the declared profile, but it does not do that correctly in all cases, as reported in the second PR; the fix is again straightforward. gcc/ada/ PR ada/113350 PR ada/113351 * exp_ch2.adb (Expand_Renaming): Fix reference to Evaluate_Name. * exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration): Call Evaluate_Name to evaluate the name. * sem_ch8.adb (Analyze_Renamed_Entry): Minor tweaks. (Analyze_Renamed_Family_Member): Likewise. (Analyze_Renamed_Primitive_Operation): Likewise. Fix thinko in the function checking profile conformance, save the result of the resolution and make implicit dereferences explicit. gcc/testsuite * gnat.dg/renaming19.adb: New test. * gnat.dg/renaming19_pkg.ads: New helper. * gnat.dg/renaming19_pkg.adb: Likewise.
