https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84550
--- Comment #15 from Kevin Buettner <kevinb at redhat dot com> --- 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 Friday, but will resume looking at it when I return on Monday. Anyway, with that not-very-good patch in place, this is what I see: (gdb) b qux Breakpoint 1 at 0x4005b0: file vau2.c, line 24. (gdb) x/i 0x400460 0x400460 <_Z3quxP1C.cold.0>: callq 0x400430 <abort@plt> (gdb) 0x400465: nopw %cs:0x0(%rax,%rax,1) (gdb) 0x40046f: nop (gdb) run Starting program: /mesquite2/.ironwood2/84550/vau2 Breakpoint 1, qux (p=0x7fffffffe098) at vau2.c:24 24 if (!p->c) __builtin_abort (); (gdb) s 25 a = p->c->b; (gdb) s 27 b = (a->a == 4) (gdb) s foo (p=0x7fffffffe08c) at vau2.c:8 8 return false; Note that only one location is set for the breakpoint in qux. Also, I'm now able to step into foo().