From 586fa60bdb385a94d0c11cca2940b8377df7a185 Mon Sep 17 00:00:00 2001 From: Bob Duff Date: Wed, 4 Dec 2024 18:30:03 -0500 Subject: 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). --- gcc/ada/sem_util.adb | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'gcc') diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb index 4a26d96..44a8729 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; -- cgit v1.1