mirror of
git://sourceware.org/git/libabigail.git
synced 2025-01-08 18:29:46 +00:00
a05384675c
Types read from DWARF don't have any alignment information so we
shouldn't try to guess it, especially for structures. So this patch
sets the alignment to zero in that case. This helps remove some
spurious alignment changes detected by abidiff just because in some
cases we fail to guess that.
In the process, I noticed that when calculating the hash value of a
given data member, we were not including the hash value of its
context. This led to mistakenly considering some data member changes
as redundant. So the patch fixes that too.
* src/abg-dwarf-reader.cc (build_type_decl)
(build_class_type_and_add_to_ir, build_pointer_type_def)
(build_reference_type, build_function_decl): Set the alignment for
native types, class, reference and function type to zero,
effectively meaning that they don't have alignment information.
* src/abg-hash.cc (var_decl:#️⃣:operator): Take the hash value
of the data member context in account when computing the hash
value of a given data member.
* tests/data/test-diff-dwarf/test-23-diff-arch-report-0.txt:
Adjust.
* tests/data/test-diff-dwarf/test10-report.txt: Likewise.
* tests/data/test-diff-dwarf/test13-report.txt: Likewise.
* tests/data/test-diff-dwarf/test22-changed-parm-c-report-0.txt: Likewise.
* tests/data/test-diff-dwarf/test26-added-parms-before-variadic-report.txt: Likewise.
* tests/data/test-diff-dwarf/test8-report.txt: Likewise.
* tests/data/test-diff-dwarf/test9-report.txt: Likewise.
* tests/data/test-diff-filter/test13-report.txt: Likewise.
* tests/data/test-diff-filter/test6-report.txt: Likewise.
* tests/data/test-diff-suppr/test9-changed-parm-c-report-0.txt: Likewise.
* tests/data/test-read-dwarf/test0.abi: Likewise.
* tests/data/test-read-dwarf/test1.abi: Likewise.
* tests/data/test-read-dwarf/test2.so.abi: Likewise.
* tests/data/test-read-dwarf/test3.so.abi: Likewise.
* tests/data/test-read-dwarf/test4.so.abi: Likewise.
* tests/data/test-read-dwarf/test5.o.abi: Likewise.
* tests/data/test-read-dwarf/test6.so.abi: Likewise.
* tests/data/test-read-dwarf/test7.so.abi: Likewise.
* tests/data/test-read-dwarf/test8-qualified-this-pointer.so.abi: Likewise.
Signed-off-by: Dodji Seketeli <dodji@redhat.com>
24 lines
1.4 KiB
Plaintext
24 lines
1.4 KiB
Plaintext
<abi-corpus path='data/test-read-dwarf/test4.so'>
|
|
<elf-needed>
|
|
<dependency name='libc.so.6'/>
|
|
</elf-needed>
|
|
<elf-function-symbols>
|
|
<elf-symbol name='cpy' type='func-type' binding='global-binding' is-defined='yes'/>
|
|
</elf-function-symbols>
|
|
<abi-instr version='1.0' address-size='64' path='test4.c'>
|
|
<type-decl name='char' size-in-bits='8' id='type-id-1'/>
|
|
<pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-2'/>
|
|
<qualified-type-def type-id='type-id-2' restrict='yes' id='type-id-3'/>
|
|
<qualified-type-def type-id='type-id-1' const='yes' id='type-id-4'/>
|
|
<pointer-type-def type-id='type-id-4' size-in-bits='64' id='type-id-5'/>
|
|
<qualified-type-def type-id='type-id-5' restrict='yes' id='type-id-6'/>
|
|
<type-decl name='unsigned int' size-in-bits='32' id='type-id-7'/>
|
|
<function-decl name='cpy' mangled-name='cpy' filepath='/home/mark/src/tests/test4.c' line='2' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpy'>
|
|
<parameter type-id='type-id-3' name='s1' filepath='/home/mark/src/tests/test4.c' line='2' column='1'/>
|
|
<parameter type-id='type-id-6' name='s2' filepath='/home/mark/src/tests/test4.c' line='2' column='1'/>
|
|
<parameter type-id='type-id-7' name='n' filepath='/home/mark/src/tests/test4.c' line='2' column='1'/>
|
|
<return type-id='type-id-2'/>
|
|
</function-decl>
|
|
</abi-instr>
|
|
</abi-corpus>
|