[Ada/ravenscar] error during "continue" after task/thread switch
[deliverable/binutils-gdb.git] / gdb / symtab.c
index 13910c6f221e46a7be851bada3b6d71edb6ad4a2..a24a0834e0022c23c3cfa0a8b5f52fde4b9cda6e 100644 (file)
@@ -4977,10 +4977,21 @@ find_gnu_ifunc (const symbol *sym)
                                [&] (minimal_symbol *minsym)
     {
       if (MSYMBOL_TYPE (minsym) == mst_text_gnu_ifunc
-         && MSYMBOL_VALUE_ADDRESS (objfile, minsym) == address)
+         || MSYMBOL_TYPE (minsym) == mst_data_gnu_ifunc)
        {
-         ifunc = minsym;
-         return true;
+         CORE_ADDR msym_addr = MSYMBOL_VALUE_ADDRESS (objfile, minsym);
+         if (MSYMBOL_TYPE (minsym) == mst_data_gnu_ifunc)
+           {
+             struct gdbarch *gdbarch = get_objfile_arch (objfile);
+             msym_addr = gdbarch_convert_from_func_ptr_addr (gdbarch,
+                                                             msym_addr,
+                                                             &current_target);
+           }
+         if (msym_addr == address)
+           {
+             ifunc = minsym;
+             return true;
+           }
        }
       return false;
     });
This page took 0.023831 seconds and 4 git commands to generate.