[binutils-gdb] Simplify ada_parse_renaming

Tom Tromey via Gdb-cvs <[email protected]> Fri, 24 Jul 2026 13:30:27 +0000 (GMT)
Newsgroups gmane.comp.gdb.cvs
Message-ID <[email protected]>
https://sourceware.org/git/gitweb.cgi?p=3Dbinutils-gdb.git;h=3D92604d6e1feb=
5929e349d1435253eeb4ac4fa2c8

commit 92604d6e1feb5929e349d1435253eeb4ac4fa2c8
Author: Tom Tromey <[email protected]>
Date:   Thu Jul 23 09:40:13 2026 -0600

    Simplify ada_parse_renaming
   =20
    While working on gnat-llvm, I found that ada_parse_renaming checks the
    "loc_class" of the symbol.  This caused a problem with my WIP
    gnat-llvm patch, which emitted a renaming symbol as LOC_CONST.
   =20
    I've since fixed my gnat-llvm patch; but nevertheless it seems to me
    that there's no need to check this.  In Ada, no user-provided symbol
    will have an "___XR" substring, as such symbols are all lower-cased.
   =20
    This patch removes the check, simplifying ada_parse_renaming.
   =20
    Approved-By: Andrew Burgess <[email protected]>

Diff:
---
 gdb/ada-lang.c | 50 ++++++++++++++++++++------------------------------
 1 file changed, 20 insertions(+), 30 deletions(-)

diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index 3efe932c823..3c6c9af488f 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -4395,43 +4395,33 @@ ada_parse_renaming (struct symbol *sym,
 		    const char **renaming_expr)
 {
   enum ada_renaming_category kind;
-  const char *info;
   const char *suffix;
=20
   if (sym =3D=3D NULL)
     return ADA_NOT_RENAMING;
-  switch (sym->loc_class ())
+  const char *info =3D strstr (sym->linkage_name (), "___XR");
+  if (info =3D=3D nullptr)
+    return ADA_NOT_RENAMING;
+  switch (info[5])
     {
+    case '_':
+      kind =3D ADA_OBJECT_RENAMING;
+      info +=3D 6;
+      break;
+    case 'E':
+      kind =3D ADA_EXCEPTION_RENAMING;
+      info +=3D 7;
+      break;
+    case 'P':
+      kind =3D ADA_PACKAGE_RENAMING;
+      info +=3D 7;
+      break;
+    case 'S':
+      kind =3D ADA_SUBPROGRAM_RENAMING;
+      info +=3D 7;
+      break;
     default:
       return ADA_NOT_RENAMING;
-    case LOC_LOCAL:
-    case LOC_STATIC:
-    case LOC_COMPUTED:
-    case LOC_OPTIMIZED_OUT:
-      info =3D strstr (sym->linkage_name (), "___XR");
-      if (info =3D=3D NULL)
-	return ADA_NOT_RENAMING;
-      switch (info[5])
-	{
-	case '_':
-	  kind =3D ADA_OBJECT_RENAMING;
-	  info +=3D 6;
-	  break;
-	case 'E':
-	  kind =3D ADA_EXCEPTION_RENAMING;
-	  info +=3D 7;
-	  break;
-	case 'P':
-	  kind =3D ADA_PACKAGE_RENAMING;
-	  info +=3D 7;
-	  break;
-	case 'S':
-	  kind =3D ADA_SUBPROGRAM_RENAMING;
-	  info +=3D 7;
-	  break;
-	default:
-	  return ADA_NOT_RENAMING;
-	}
     }
=20
   if (renamed_entity !=3D NULL)