[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug default/20323] void* idiom for intel, PGI DWARF confuses subsequent parameter handling



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

--- Comment #2 from dodji at redhat dot com ---
What I read from looking at the debug info generated for the jemalloc binary
generated using the PGI compiler is that there is no parameter for the deallocx
function:

PGI:

 [   502]    subprogram
             external             (flag)
             name                 (string) "dallocx"
             decl_file            (data1) 1
             decl_line            (data2) 2477
             low_pc               (addr) +0x00000000000132d0 <dallocx>
             high_pc              (addr) +0x000000000001334a <__dallocxEND>
             frame_base           (block1)
              [   0] reg6

Whereas for for GCC, the debug info says dallocx has two parameters. The first
one is of type pointer to void, and the second one is of type int.

 [  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]

[...]
 [    f6]    pointer_type
             byte_size            (data1) 8

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



That is why abidiff says that the dallocx function lost its two parameters when
comparing the one compiled with GCC against the one compiled with PGI.

So I would argue that the PGI compiler does not emit the description of the
parameters of the dallocx function and it should.

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