[Bug c/71855] New: duplicate unspecified_parameters DIE in DWARF for functions with variable arguments

woodard at redhat dot com gcc-bugzilla@gcc.gnu.org
Wed Jul 13 12:19:00 GMT 2016


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

            Bug ID: 71855
           Summary: duplicate unspecified_parameters DIE in DWARF for
                    functions with variable arguments
           Product: gcc
           Version: 6.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: woodard at redhat dot com
  Target Milestone: ---

I was looking at the DWARF generated by GCC 6.1 for M4 and it emits two DIEs
for unspecified parameters. Before Dodji added special code to ignore this, it
confused libabigail and may confuse other DWARF consumers.

[  1a33]    subprogram
             external             (flag_present) 
             name                 (strp) "m4_error"
             decl_file            (data1) 1
             decl_line            (data1) 94
             prototyped           (flag_present) 
             low_pc               (addr) 0x0000000000402d10 <m4_error>
             high_pc              (data8) 194 (0x0000000000402dd2)
             frame_base           (exprloc) 
              [   0] call_frame_cfa
             GNU_all_call_sites   (flag_present) 
             sibling              (ref4) [  1aab]
 [  1a50]      formal_parameter
               name                 (strp) "status"
               decl_file            (data1) 1
               decl_line            (data1) 94
               type                 (ref4) [    58]
               location             (sec_offset) location list [   78e]
 [  1a5f]      formal_parameter
               name                 (strp) "errnum"
               decl_file            (data1) 1
               decl_line            (data1) 94
               type                 (ref4) [    58]
               location             (sec_offset) location list [   7c7]
 [  1a6e]      formal_parameter
               name                 (strp) "format"
               decl_file            (data1) 1
               decl_line            (data1) 94
               type                 (ref4) [    d8]
               location             (sec_offset) location list [   800]
 [  1a7d]      unspecified_parameters
 [  1a7e]      variable
               name                 (strp) "args"
               decl_file            (data1) 1
               decl_line            (data1) 96
               type                 (ref4) [   410]
               location             (exprloc) 
                [   0] fbreg -216
 [  1a8d]      unspecified_parameters
 [  1a8e]      GNU_call_site
               low_pc               (addr) 0x0000000000402dad <m4_error+0x9d>
               abstract_origin      (ref4) [  1fba]
 [  1a9b]        GNU_call_site_parameter
                 location             (exprloc) 
                  [   0] reg8
                 GNU_call_site_value  (exprloc) 
                  [   0] GNU_entry_value:
                        [   0] reg1
 [  1aa2]        GNU_call_site_parameter
                 location             (exprloc) 
                  [   0] reg9
                 GNU_call_site_value  (exprloc) 
                  [   0] fbreg -216

See 1a7d 1a8d.

This was generated from compiling m4 from
ftp://ftp.gnu.org/gnu/m4/m4-1.4.17.tar.gz with GCC 6.1

I will work on making a smaller reproducer.


More information about the Gcc-bugs mailing list