https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84550
--- Comment #11 from Kevin Buettner ---
I've simplified Jakub's example slightly:
--- vau2.c ---
struct A { int a; };
struct B { struct A *b; };
struct C { struct B *c; };
__attribute__((noipa)) bool
foo (struct A *p)
{
return false;
}
__att
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84550
--- Comment #12 from Kevin Buettner ---
I'll note, too, that just setting a breakpoint on qux and then looking at the
locations reveals another problem...
(gdb) b qux
Breakpoint 1 at 0x400460: qux. (2 locations)
(gdb) info break
Num Type
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84550
--- Comment #13 from Kevin Buettner ---
(In reply to Kevin Buettner from comment #11)
> This code, which is in find_pc_partial_function_gnu_ifunc(), incorrectly
> identifies this address, 0x400590, as belonging to qux:
>
> if (mapped_pc >= ca
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84550
--- Comment #15 from Kevin Buettner ---
I've been focusing my attention on dwarf2read.c (in GDB). I have a patch which
fixes this problem, but which introduces a bunch of test suite regressions.
(So it's not a very good patch.) I'll be away on
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84550
--- Comment #16 from Kevin Buettner ---
Created attachment 43671
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43671&action=edit
GDB patch - dwarf2read.c
I've attached the GDB patch that I'm currently testing. When I try it against
eithe