https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84550
--- Comment #12 from Kevin Buettner <kevinb at redhat dot com> --- 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 Disp Enb Address What 1 breakpoint keep y <MULTIPLE> 1.1 y 0x0000000000400460 in qux(C*) at vau2.c:24 1.2 y 0x00000000004005b0 in qux(C*) at vau2.c:24 (gdb) x/4i 0x400460 0x400460 <qux(C*)>: callq 0x400430 <abort@plt> 0x400465: nopw %cs:0x0(%rax,%rax,1) 0x40046f: nop 0x400470 <main()>: sub $0x28,%rsp (gdb) x/4i 0x4005b0 0x4005b0 <_Z3quxP1C>: push %rbx 0x4005b1 <_Z3quxP1C+1>: mov (%rdi),%rax 0x4005b4 <_Z3quxP1C+4>: test %rax,%rax 0x4005b7 <_Z3quxP1C+7>: je 0x400460 <qux(C*)> Placing a breakpoint on 0x400460 is incorrect since this is not an actual entry point to the function.