aboutsummaryrefslogtreecommitdiff
path: root/libcpp/line-map.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2021-03-02 18:25:45 +0100
committerJakub Jelinek <jakub@redhat.com>2021-03-02 18:25:45 +0100
commit5a233ae4d8c978a3c863c8199d6c3050389a84d1 (patch)
treef850f62980437e2caaf2c4383ca815d495065871 /libcpp/line-map.c
parent168b75ff54b4e70650b8709816edff13f93e737a (diff)
downloadgcc-5a233ae4d8c978a3c863c8199d6c3050389a84d1.zip
gcc-5a233ae4d8c978a3c863c8199d6c3050389a84d1.tar.gz
gcc-5a233ae4d8c978a3c863c8199d6c3050389a84d1.tar.bz2
dwarf2out: Fix up split-dwarf .debug_macro handling [PR99319]
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. 2021-03-02 Jakub Jelinek <jakub@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.
Diffstat (limited to 'libcpp/line-map.c')
0 files changed, 0 insertions, 0 deletions