http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58123
Bug ID: 58123 Summary: [4.8 Regression] debug line not tracked for last autovariable dtor Product: gcc Version: 4.8.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: debug Assignee: unassigned at gcc dot gnu.org Reporter: jan.kratochvil at redhat dot com Target: x86_64-unknown-linux-gnu PASS: g++ (GCC) 4.7.3 20130221 (prerelease) - it did not generate separate line info for destructors at all FAIL: g++ (GCC) 4.8.2 20130811 (prerelease) FAIL: g++ (GCC) 4.9.0 20130811 (experimental) class C { public: C() {} ~C() {} int m() { return 0; } }; /* 7 */ int main() { /* 8 */ C a; /* 9 */ C b; /* 10 */ C c; /* 11 */ return a.m() + b.m() + c.m(); /* 12 */ } ---------------------------------------------------------------------------- g++-4.7: (gdb) start 8 /* 8 */ C a; (gdb) next 9 /* 9 */ C b; (gdb) next 10 /* 10 */ C c; (gdb) next 11 /* 11 */ return a.m() + b.m() + c.m(); (gdb) next 12 /* 12 */ } ---------------------------------------------------------------------------- g++-4.8: each destructor has its own .debug_line entry: (gdb) start 8 /* 8 */ C a; (gdb) next 9 /* 9 */ C b; (gdb) next 10 /* 10 */ C c; (gdb) next 11 /* 11 */ return a.m() + b.m() + c.m(); (gdb) next 10 /* 10 */ C c; (gdb) next 9 /* 9 */ C b; (gdb) next ################## Missing: /* 8 */ C a; 11 /* 11 */ return a.m() + b.m() + c.m(); (gdb) next 12 /* 12 */ } except for the last one: /home/jkratoch/t/example2.C:10 4005f7: 48 8d 45 ed lea -0x13(%rbp),%rax 4005fb: 48 89 c7 mov %rax,%rdi 4005fe: e8 2b 00 00 00 callq 40062e <C::~C()> /home/jkratoch/t/example2.C:9 400603: 48 8d 45 ee lea -0x12(%rbp),%rax 400607: 48 89 c7 mov %rax,%rdi 40060a: e8 1f 00 00 00 callq 40062e <C::~C()> /home/jkratoch/t/example2.C:11 ############################^^ here should be :8 40060f: 48 8d 45 ef lea -0x11(%rbp),%rax 400613: 48 89 c7 mov %rax,%rdi 400616: e8 13 00 00 00 callq 40062e <C::~C()> ############################ Missing debug line for :11 or :12 here: 40061b: 89 d8 mov %ebx,%eax /home/jkratoch/t/example2.C:12 40061d: 48 83 c4 18 add $0x18,%rsp 400621: 5b pop %rbx 400622: 5d pop %rbp 400623: c3 retq Downstream user bugreport: https://bugzilla.redhat.com/show_bug.cgi?id=995804