[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug default/20329] New: const void* type wrong
https://sourceware.org/bugzilla/show_bug.cgi?id=20329
Bug ID: 20329
Summary: const void* type wrong
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: ---
This is related to PR#20194 and uses the same objects from jemalloc found in
PR#20323.
Comparing:
Generates the error:
[C]'function size_t sallocx(int)' at jemalloc.c:2461:1 has some indirect
sub-type changes:
parameter 1 of type 'int' changed:
entity changed from 'int' to 'const void*'
type size changed from 32 to 64 bits
parameter 2 of type 'int' was added
When you look at the DWARF it appears like libabigail is stumbling over the
unspecified type provided by GCC 6.1 when it makes a pointer to a const (with
no type specified).
Intel:
[ 12508] subprogram
decl_line (data2) 2461
decl_column (data1) 1
decl_file (data1) 20
type (ref4) [ 505]
prototyped (flag)
name (strp) "sallocx"
MIPS_linkage_name (strp) "sallocx"
low_pc (addr) +0x000000000000af40 <sallocx>
high_pc (addr) +0x000000000000b0b0 <dallocx>
external (flag)
[ 1252b] formal_parameter
decl_line (data2) 2461
decl_column (data1) 24
decl_file (data1) 20
type (ref4) [ 52f]
name (string) "ptr"
location (block1)
[ 0] reg5
[ 1253a] formal_parameter
decl_line (data2) 2461
decl_column (data1) 33
decl_file (data1) 20
type (ref4) [ 3e5]
name (strp) "flags"
location (block1)
[ 0] reg4
[ 52f] pointer_type
type (ref4) [ 534]
[ 534] const_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"
GCC 6.1:
[ 54c5] subprogram
external (flag_present)
name (strp) "sallocx"
decl_file (data1) 1
decl_line (data2) 2461
prototyped (flag_present)
type (ref4) [ 10e]
low_pc (addr) +0x000000000000c8d0 <sallocx>
high_pc (data8) 324 (+0x000000000000ca14)
frame_base (exprloc)
[ 0] call_frame_cfa
GNU_all_tail_call_sites (flag_present)
sibling (ref4) [ 5830]
[ 54e7] formal_parameter
name (string) "ptr"
decl_file (data1) 1
decl_line (data2) 2461
type (ref4) [ 5b4]
location (sec_offset) location list [ 6001]
[ 54f7] formal_parameter
name (strp) "flags"
decl_file (data1) 1
decl_line (data2) 2461
type (ref4) [ 46]
location (sec_offset) location list [ 609c]
[ 5b4] pointer_type
byte_size (data1) 8
type (ref4) [ 5ba]
[ 5ba] const_type
[ 46] base_type
byte_size (data1) 4
encoding (data1) signed (5)
name (string) "int"
You can see that the proper DWARF is there but the encoding seems confuse
libabigail into misattributing the second formal parameter from the function to
be the first leading to the error.
--
You are receiving this mail because:
You are on the CC list for the bug.