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

--- Comment #7 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Looking at the diff there seems to few changes:

-       # d.C:16:2
-       .loc 1 16 2 is_stmt 1 view .LVU16
+       # d.C:15:8
+       .loc 1 15 8 is_stmt 1 discriminator 1 view .LVU16

This is a line table difference which should be OK
there are few changes in references I skip.

                        # DW_AT_call_file (1, d.C)
        .byte   0xf     # DW_AT_call_line
                        # DW_AT_call_column (0x5)
-       .uleb128 0x2    # (DIE (0x12f) DW_TAG_inlined_subroutine)
-       .long   0x150   # DW_AT_abstract_origin
+       .uleb128 0x3    # (DIE (0x12c) DW_TAG_inlined_subroutine)
+       .long   0x14d   # DW_AT_abstract_origin
        .quad   .LBI18  # DW_AT_entry_pc
        .byte   .LVU17  # DW_AT_GNU_entry_view
        .quad   .LBB18  # DW_AT_low_pc
        .quad   .LBE18-.LBB18   # DW_AT_high_pc
                        # DW_AT_call_file (1, d.C)
-       .byte   0x10    # DW_AT_call_line
-                       # DW_AT_call_column (0x5)
+       .byte   0xf     # DW_AT_call_line
+                       # DW_AT_call_column (0xb)
+                       # DW_AT_GNU_discriminator (0x1)
        .byte   0       # end of children of DIE 0xb8
        .byte   0       # end of children of DIE 0x96

so this is the fourth inlined inc which has moved.

@@ -305,6 +306,32 @@
        .byte   0
        .byte   0
        .uleb128 0x3    # (abbrev code)
+       .uleb128 0x1d   # (TAG: DW_TAG_inlined_subroutine)
+       .byte   0       # DW_children_no
+       .uleb128 0x31   # (DW_AT_abstract_origin)
+       .uleb128 0x13   # (DW_FORM_ref4)
+       .uleb128 0x52   # (DW_AT_entry_pc)
+       .uleb128 0x1    # (DW_FORM_addr)
+       .uleb128 0x2138 # (DW_AT_GNU_entry_view)
+       .uleb128 0xb    # (DW_FORM_data1)
+       .uleb128 0x11   # (DW_AT_low_pc)
+       .uleb128 0x1    # (DW_FORM_addr)
+       .uleb128 0x12   # (DW_AT_high_pc)
+       .uleb128 0x7    # (DW_FORM_data8)
+       .uleb128 0x58   # (DW_AT_call_file)
+       .uleb128 0x21   # (DW_FORM_implicit_const)
+       .sleb128 1      # (d.C)
+       .uleb128 0x59   # (DW_AT_call_line)
+       .uleb128 0xb    # (DW_FORM_data1)
+       .uleb128 0x57   # (DW_AT_call_column)
+       .uleb128 0x21   # (DW_FORM_implicit_const)
+       .sleb128 11
+       .uleb128 0x2136 # (DW_AT_GNU_discriminator)
+       .uleb128 0x21   # (DW_FORM_implicit_const)
+       .sleb128 1
+       .byte   0
+       .byte   0
+       .uleb128 0x4    # (abbrev code)
        .uleb128 0x11   # (TAG: DW_TAG_compile_unit)
        .byte   0x1     # DW_children_yes
        .uleb128 0x25   # (DW_AT_producer)

@@ -434,29 +461,6 @@
        .uleb128 0x17   # (DW_FORM_sec_offset)
        .byte   0
        .byte   0
-       .uleb128 0xb    # (abbrev code)
-       .uleb128 0x1d   # (TAG: DW_TAG_inlined_subroutine)
-       .byte   0       # DW_children_no
-       .uleb128 0x31   # (DW_AT_abstract_origin)
-       .uleb128 0x13   # (DW_FORM_ref4)
-       .uleb128 0x52   # (DW_AT_entry_pc)
-       .uleb128 0x1    # (DW_FORM_addr)
-       .uleb128 0x2138 # (DW_AT_GNU_entry_view)
-       .uleb128 0xb    # (DW_FORM_data1)
-       .uleb128 0x11   # (DW_AT_low_pc)
-       .uleb128 0x1    # (DW_FORM_addr)
-       .uleb128 0x12   # (DW_AT_high_pc)
-       .uleb128 0x7    # (DW_FORM_data8)
-       .uleb128 0x58   # (DW_AT_call_file)
-       .uleb128 0xb    # (DW_FORM_data1)
-       .uleb128 0x59   # (DW_AT_call_line)
-       .uleb128 0xb    # (DW_FORM_data1)
-       .uleb128 0x57   # (DW_AT_call_column)
-       .uleb128 0xb    # (DW_FORM_data1)
-       .uleb128 0x2136 # (DW_AT_GNU_discriminator)
-       .uleb128 0xb    # (DW_FORM_data1)
-       .byte   0
-       .byte   0
        .uleb128 0xc    # (abbrev code)
        .uleb128 0x2e   # (TAG: DW_TAG_subprogram)
        .byte   0       # DW_children_no

This is bit of a mystery to me why it moved around

Reply via email to