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

--- Comment #14 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Untested fix:
2025-08-27  Jakub Jelinek  <ja...@redhat.com>

        PR debug/119367
        * dwarf2out.cc (output_one_line_info_table) <case LI_adv_address>: If
        HAVE_AS_LEB128, use DW_LNS_advance_pc with dw2_asm_output_delta_uleb128
        instead of DW_LNS_fixed_advance_pc with dw2_asm_output_delta.

--- gcc/dwarf2out.cc.jj 2025-06-02 11:00:15.382405745 +0200
+++ gcc/dwarf2out.cc    2025-08-27 12:18:01.336936228 +0200
@@ -12997,9 +12997,22 @@ output_one_line_info_table (dw_line_info

            view++;

-           dw2_asm_output_data (1, DW_LNS_fixed_advance_pc, "fixed advance PC,
increment view to %i", view);
-           dw2_asm_output_delta (2, line_label, prev_label,
-                                 "from %s to %s", prev_label, line_label);
+           if (HAVE_AS_LEB128)
+             {
+               dw2_asm_output_data (1, DW_LNS_advance_pc,
+                                    "advance PC, increment view to %i", view);
+               dw2_asm_output_delta_uleb128 (line_label, prev_label,
+                                             "from %s to %s", prev_label,
+                                             line_label);
+             }
+           else
+             {
+               dw2_asm_output_data (1, DW_LNS_fixed_advance_pc,
+                                    "fixed advance PC, increment view to %i",
+                                    view);
+               dw2_asm_output_delta (2, line_label, prev_label,
+                                     "from %s to %s", prev_label, line_label);
+             }

            prev_addr = ent;
            break;


But configure.ac needs to be tweaked to have some fallback for the gcn case if
objdump isn't there.

Reply via email to