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

Reply via email to