http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60142
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> --- BTW, the second line change in the function heuristics also fails for say: #include <stdarg.h> void bar (va_list ap); void foo (int a, ...) { va_list ap; va_start (ap, a); bar (ap); va_end (ap); } on x86_64, even in that case we emit the second line change on the start of the second basic block, rather than treating all the prologue and prologue-like basic blocks as no change in the locus (well, if they are out of line, as in the case of the varargs x86_64 function that might need saving xmm registers, or in the -fsanitize=address case, the code conditionally jumps out of line and then branches back, supposedly we need line directive on the out of line part of the code). So, does GDB have a disassemble matcher for the ... prologue, or does that fail too?