public inbox for libabigail@sourceware.org
 help / color / mirror / Atom feed
* [Bug default/20323] New: void* idiom for intel, PGI DWARF confuses subsequent parameter handling
@ 2016-01-01  0:00 woodard at redhat dot com
  2016-01-01  0:00 ` [Bug default/20323] " woodard at redhat dot com
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: woodard at redhat dot com @ 2016-01-01  0:00 UTC (permalink / raw)
  To: libabigail

https://sourceware.org/bugzilla/show_bug.cgi?id=20323

            Bug ID: 20323
           Summary: void* idiom for intel, PGI DWARF confuses subsequent
                    parameter handling
           Product: libabigail
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P2
         Component: default
          Assignee: dodji at redhat dot com
          Reporter: woodard at redhat dot com
                CC: libabigail at sourceware dot org
  Target Milestone: ---

I believe that this is actually distinct from 20194 but the patch to fix that
may ultimately lead to this being resolved as well. At the very least they
should be looked at together.

I'm looking at:

  [C]'function void dallocx(void*, int)' at jemalloc.c:2477:1 has some indirect
sub-type changes:
    parameter 1 of type 'void*' changed:
      entity changed from 'void*' to 'int'
      type size changed from 64 to 32 bits
    parameter 2 of type 'int' was removed

GCC has:

 [  4a9f]    subprogram
             external             (flag_present)
             name                 (strp) "dallocx"
             decl_file            (data1) 1
             decl_line            (data2) 2477
             prototyped           (flag_present)
             low_pc               (addr) +0x000000000000ca20 <dallocx>
             high_pc              (data8) 1449 (+0x000000000000cfc9)
             frame_base           (exprloc)
              [   0] call_frame_cfa
             GNU_all_tail_call_sites (flag_present)
             sibling              (ref4) [  54c5]
 [  4abd]      formal_parameter
               name                 (string) "ptr"
               decl_file            (data1) 1
               decl_line            (data2) 2477
               type                 (ref4) [    f6]
               location             (sec_offset) location list [  47f6]
 [  4acd]      formal_parameter
               name                 (strp) "flags"
               decl_file            (data1) 1
               decl_line            (data2) 2477
               type                 (ref4) [    46]
               location             (sec_offset) location list [  4996]

 [    46]    base_type
             byte_size            (data1) 4
             encoding             (data1) signed (5)
             name                 (string) "int"

 [    f6]    pointer_type
             byte_size            (data1) 8

Intel has:

 [ 12832]    subprogram
             decl_line            (data2) 2477
             decl_column          (data1) 1
             decl_file            (data1) 20
             prototyped           (flag)
             name                 (strp) "dallocx"
             MIPS_linkage_name    (strp) "dallocx"
             low_pc               (addr) +0x000000000000b0b0 <dallocx>
             high_pc              (addr) +0x000000000000b310 <sdallocx>
             external             (flag)
 [ 12851]      formal_parameter
               decl_line            (data2) 2477
               decl_column          (data1) 18
               decl_file            (data1) 20
               type                 (ref4) [   5fc]
               name                 (string) "ptr"
               location             (block1)
                [   0] reg5
 [ 12860]      formal_parameter
               decl_line            (data2) 2477
               decl_column          (data1) 27
               decl_file            (data1) 20
               type                 (ref4) [   3e5]
               name                 (strp) "flags"
               location             (block1)
                [   0] reg4

 [   5fc]    pointer_type
             type                 (ref4) [   539]

 [   539]    base_type
             byte_size            (data1) 0
             encoding             (data1) signed (5)
             name                 (strp) "void"

 [   3e5]    base_type
             byte_size            (data1) 4
             encoding             (data1) signed (5)
             name                 (string) "int"

So the error is wrong: Parameter 2 of type int was not removed. I believe that
the processing is getting confused by the intel/pgi idiom of expressing a
void*.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-07-08  8:41 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-01-01  0:00 [Bug default/20323] New: void* idiom for intel, PGI DWARF confuses subsequent parameter handling woodard at redhat dot com
2016-01-01  0:00 ` [Bug default/20323] " woodard at redhat dot com
2016-01-01  0:00 ` woodard at redhat dot com
2016-01-01  0:00 ` dodji at redhat dot com
2016-01-01  0:00 ` dodji at redhat dot com
2016-01-01  0:00 ` dodji at redhat dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).