On 3/2/21 2:06 AM, Jakub Jelinek via Gcc-patches wrote:
> Hi!
>
> The -gsplit-dwarf changes came a few months after .debug_macro
> and the r0-120109 changes just changed the 2nd operand of
> DW_MACRO_GNU_{define,undef}_indirect from the usual .debug_str
> section offset argument to leb128 index into .debug_str_offsets
> without changing the opcodes.
>
> DWARF5 standardized different opcodes for those, but GCC hasn't been changed
> yet for that.
> This patch starts using DW_MACRO_define_strx and DW_MACRO_undef_strx
> instead of DW_MACRO_define_strp and DW_MACRO_undef_strp when -gsplit-dwarf
> -gdwarf-5 -g3.  I'm not sure what to do if anything with the -gdwarf-4
> -gsplit-dwarf -g3 -gno-strict-dwarf case, we've been emitting it that way
> for 8 years and it is an extension, so presumably the consumers that cared
> have already hacks to handle DW_MACRO_GNU_{define,undef}_indirect
> differently in .debug_macro 4 sections depending on if it is
> .debug_macro.dwo or .debug_macro.
> Another change the patch does is that it will use
> DW_MACRO_{define,undef}_str{p,x} even with -gdwarf-5 -gstrict-dwarf -g3,
> for DWARF 4 we were doing that only for -gno-strict-dwarf as we've emitted
> .debug_macro section only in that case.
>
> Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?
>
> 2021-03-02  Jakub Jelinek  <ja...@redhat.com>
>
>       PR debug/99319
>       * dwarf2out.c (output_macinfo_op): Use DW_MACRO_*_str* even with
>       -gdwarf-5 -gstrict-dwarf.  For -gsplit-dwarf -gdwarf-5 use
>       DW_MACRO_*_strx instead of DW_MACRO_*_strp.  Handle
>       DW_MACRO_define_strx and DW_MACRO_undef_strx.
>       (save_macinfo_strings): Use DW_MACRO_*_str* even with
>       -gdwarf-5 -gstrict-dwarf.  Handle DW_MACRO_define_strx and
>       DW_MACRO_undef_strx.
OK
jeff

Reply via email to