]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Use SEARCH_FUNCTION_DOMAIN when looking for Ada exception symbols
authorTom Tromey <tromey@adacore.com>
Wed, 14 Aug 2024 16:45:30 +0000 (10:45 -0600)
committerTom Tromey <tromey@adacore.com>
Tue, 20 Aug 2024 13:58:06 +0000 (07:58 -0600)
While working on another bug, I noticed that the Ada code to find
exception symbols uses SEARCH_VFT.  This will find variables and types
-- but only functions are needed here.  This patch changes the code to
use SEARCH_FUNCTION_DOMAIN.

Tested on x86-64 Fedora 38, using a version of GNAT with the debuginfo
installed, to ensure the exception-related tests work.

Reviewed-by: Keith Seitz <keiths@redhat.com>
gdb/ada-lang.c

index f293af695089a25b0c04d3df3eabef4d52a8b9a4..7853a482156eaab71609b4b5395c3a4ab6d5f54a 100644 (file)
@@ -11679,7 +11679,8 @@ ada_has_this_exception_support (const struct exception_support_info *einfo)
      that should be compiled with debugging information.  As a result, we
      expect to find that symbol in the symtabs.  */
 
-  sym = standard_lookup (einfo->catch_exception_sym, NULL, SEARCH_VFT);
+  sym = standard_lookup (einfo->catch_exception_sym, NULL,
+                        SEARCH_FUNCTION_DOMAIN);
   if (sym == NULL)
     {
       /* Perhaps we did not find our symbol because the Ada runtime was
@@ -11714,7 +11715,8 @@ ada_has_this_exception_support (const struct exception_support_info *einfo)
     error (_("Symbol \"%s\" is not a function (class = %d)"),
           sym->linkage_name (), sym->aclass ());
 
-  sym = standard_lookup (einfo->catch_handlers_sym, NULL, SEARCH_VFT);
+  sym = standard_lookup (einfo->catch_handlers_sym, NULL,
+                        SEARCH_FUNCTION_DOMAIN);
   if (sym == NULL)
     {
       bound_minimal_symbol msym