https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83728
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- So, one problem here is that the debug marker for line 33 is moved by sched2 too early (unnecessarily), before the prologue, before statement frontiers introduction we'd break only after the prologue. Perhaps we should tweak the scheduler so that it attempts harder not to move debug markers before the prologue, unless really necessary? And another bug which I'll try to fix is that the .debug_frame generated with -fdwarf2-cfi-asm is wrong on the very first insn in the interrupt function, for -fno-dwarf2-cfi-asm it is right. Apparently the interrupt attribute functions have CFI with a different initial offset, the CIE with -fdwarf2-cfi-asm has initial offset of cfa-8 like normal functions, and right after the very first insn in the interrupt function fn, which is a push, the offset becomes cfa-24, while with -fno-dwarf2-cfi-asm we start with cfa-16 in the CIE and after the push get cfa-16.