https://gcc.gnu.org/g:586fa60bdb385a94d0c11cca2940b8377df7a185
commit r15-6537-g586fa60bdb385a94d0c11cca2940b8377df7a185 Author: Bob Duff <d...@adacore.com> Date: Wed Dec 4 18:30:03 2024 -0500 ada: Enclosing_Entity of specless subprogram bodies Correct Enclosing_Entity of specless subprogram bodies; these are marked as Comes_From_Source = False, so the simple name was missing. gcc/ada/ChangeLog: * sem_util.adb (Append_Entity_Name): Do not skip the simple name for a compilation unit (which includes the case of specless subprogram bodies). Diff: --- gcc/ada/sem_util.adb | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb index 4a26d9623033..44a87298c6ea 100644 --- a/gcc/ada/sem_util.adb +++ b/gcc/ada/sem_util.adb @@ -649,18 +649,21 @@ package body Sem_Util is -- recursively print A.B.C, then print D. begin -- If E is not a source entity, then skip the simple name and just - -- recursively print its scope. However, subprogram instances have - -- Comes_From_Source = False, but we do want to print the simple name - -- of the instance. + -- recursively print its scope. However, certain entities have + -- Comes_From_Source = False, even though we DO want to print the + -- simple name; this happens for specless child subprogram bodies + -- and for subprogram instances. if not Comes_From_Source (E) then - if Is_Generic_Instance (E) + if Is_Compilation_Unit (E) then + null; + elsif Is_Generic_Instance (E) and then Ekind (E) in E_Function | E_Procedure then null; else Append_Entity_Name (Buf, Scope (E)); - return; + return; -- skip the simple name end if; end if;