> When I looked at what sparc-gcc was generating for the return
> address column, I discovered that it didn't generate anything.

At least it generates the RA column:

        .section        ".eh_frame",#alloc,#write
.LLframe1:
        .uaword .LLECIE1-.LLSCIE1       ! Length of Common Information Entry
.LLSCIE1:
        .uaword 0x0     ! CIE Identifier Tag
        .byte   0x1     ! CIE Version
        .ascii "\0"     ! CIE Augmentation
        .byte   0x1     ! uleb128 0x1; CIE Code Alignment Factor
        .byte   0x7c    ! sleb128 -4; CIE Data Alignment Factor
        .byte   0xf     ! CIE RA Column
        .byte   0xc     ! DW_CFA_def_cfa
        .byte   0xe     ! uleb128 0xe
        .byte   0x0     ! uleb128 0x0

> Is there any reason to discard it?

It's supposed to be a constant offset.

 -- Macro: RETURN_ADDR_OFFSET
     If defined, an integer-valued C expression for which rtl will be
     generated to add it to the exception handler address before it is
     searched in the exception handling tables, and to subtract it
     again from the address before using it to return to the exception
     handler.

See the expansion of __builtin_extract_return_addr in except.c.

-- 
Eric Botcazou

Reply via email to