https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81307
Jan Hubicka <hubicka at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2017-07-08 Ever confirmed|0 |1 --- Comment #1 from Jan Hubicka <hubicka at gcc dot gnu.org> --- debug9 contains EH cleanup that is (as intended) moved to the .unlikely section. So I suppose this is just pre-existing bug of stabs WRT partitining. There seems to be some support for partitioned functions in dbxout.c, so I guess this is intended to work. The offloaded region looks as follows: ain.cold.1: .L4: .cfi_def_cfa_offset 32 .cfi_offset 3, -16 leaq 15(%rsp), %rdi call _ZN1sD1Ev .L5: .stabn 68,0,24,.LM6-.LFBB1 ^^^^^ this is the label on beggining of main .LM6: leaq 13(%rsp), %rdi call _ZN1sD1Ev movq %rbx, %rdi .LEHB3: call _Unwind_Resume .LEHE3: I am not really familiar with stabs. The directive seems to be: /* Line number in text segment. Desc is the line number; value is corresponding address. */ __define_stab (N_SLINE, 0x44, "SLINE") and it seems it is always output as relative from beginning of function which is controlled by DBX_LINES_FUNCTION_RELATIVE macro. I wonder if we can move start of the function to cold segment here or do something meaningful here. Of course we can also just output sorry when both stabs and bb partitining are requested (bcause -gstabs probably ought not to silently disable bb partitioning and chance generated code) Honza