https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115066

--- Comment #6 from Tom de Vries <vries at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #5)
> Just make it if (dwarf_split_debug_info) then?

That works as well indeed:
...
diff --git a/gcc/dwarf2out.cc b/gcc/dwarf2out.cc
index eedb13bb069..70b7f5f42cd 100644
--- a/gcc/dwarf2out.cc
+++ b/gcc/dwarf2out.cc
@@ -29045,7 +29045,7 @@ output_macinfo_op (macinfo_entry *ref)
          && !DWARF2_INDIRECT_STRING_SUPPORT_MISSING_ON_TARGET
          && (debug_str_section->common.flags & SECTION_MERGE) != 0)
        {
-         if (dwarf_split_debug_info && dwarf_version >= 5)
+         if (dwarf_split_debug_info)
            ref->code = ref->code == DW_MACINFO_define
                        ? DW_MACRO_define_strx : DW_MACRO_undef_strx;
          else
@@ -29097,12 +29097,20 @@ output_macinfo_op (macinfo_entry *ref)
                                   HOST_WIDE_INT_PRINT_UNSIGNED,
                                   ref->lineno);
       if (node->form == DW_FORM_strp)
-        dw2_asm_output_offset (dwarf_offset_size, node->label,
-                               debug_str_section, "The macro: \"%s\"",
-                               ref->info);
+       {
+         gcc_assert (ref->code == DW_MACRO_define_strp
+                     || ref->code == DW_MACRO_undef_strp);
+         dw2_asm_output_offset (dwarf_offset_size, node->label,
+                                debug_str_section, "The macro: \"%s\"",
+                                ref->info);
+       }
       else
-        dw2_asm_output_data_uleb128 (node->index, "The macro: \"%s\"",
-                                     ref->info);
+       {
+         gcc_assert (ref->code == DW_MACRO_define_strx
+                     || ref->code == DW_MACRO_undef_strx);
+         dw2_asm_output_data_uleb128 (node->index, "The macro: \"%s\"",
+                                      ref->info);
+       }
       break;
     case DW_MACRO_import:
       dw2_asm_output_data (1, ref->code, "Import");
...

I've also added asserts detecting this PR.

Reply via email to