libabigail/tests/data/test-read-dwarf/test6.so.abi
Dodji Seketeli a05384675c Type read from DWARF don't have alignment information
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>
2015-05-24 17:16:41 +02:00

43 lines
3.0 KiB
Plaintext

<abi-corpus path='data/test-read-dwarf/test6.so'>
<elf-needed>
<dependency name='libstdc++.so.6'/>
<dependency name='libm.so.6'/>
<dependency name='libgcc_s.so.1'/>
<dependency name='libc.so.6'/>
</elf-needed>
<elf-function-symbols>
<elf-symbol name='_Z3barv' type='func-type' binding='global-binding' is-defined='yes'/>
<elf-symbol name='_Z4blehv' type='func-type' binding='global-binding' is-defined='yes'/>
<elf-symbol name='_ZN1B3fooEv' type='func-type' binding='weak-binding' is-defined='yes'/>
<elf-symbol name='_fini' type='func-type' binding='global-binding' is-defined='yes'/>
<elf-symbol name='_init' type='func-type' binding='global-binding' is-defined='yes'/>
</elf-function-symbols>
<elf-variable-symbols>
<elf-symbol name='_ZN1CIiE3barE' type='object-type' binding='gnu-unique-binding' is-defined='yes'/>
<elf-symbol name='_ZZN1B3fooEvE1a' type='object-type' binding='gnu-unique-binding' is-defined='yes'/>
</elf-variable-symbols>
<abi-instr version='1.0' address-size='64' path='test6.cc'>
<class-decl name='B' size-in-bits='8' is-struct='yes' visibility='default' filepath='/home/skumari/Tasks/source_repo/dodji/libabigail/tests/data/test-read-dwarf/test6.cc' line='9' column='1' id='type-id-1'>
<member-function access='public'>
<function-decl name='foo' mangled-name='_ZN1B3fooEv' filepath='/home/skumari/Tasks/source_repo/dodji/libabigail/tests/data/test-read-dwarf/test6.cc' line='11' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN1B3fooEv'>
<parameter type-id='type-id-2' is-artificial='yes'/>
<return type-id='type-id-3'/>
</function-decl>
</member-function>
</class-decl>
<type-decl name='int' size-in-bits='32' id='type-id-3'/>
<pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-2'/>
<function-decl name='bar' mangled-name='_Z3barv' filepath='/home/skumari/Tasks/source_repo/dodji/libabigail/tests/data/test-read-dwarf/test6.cc' line='19' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Z3barv'>
<return type-id='type-id-3'/>
</function-decl>
<function-decl name='bleh' mangled-name='_Z4blehv' filepath='/home/skumari/Tasks/source_repo/dodji/libabigail/tests/data/test-read-dwarf/test6.cc' line='34' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Z4blehv'>
<return type-id='type-id-3'/>
</function-decl>
<class-decl name='C&lt;int&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/home/skumari/Tasks/source_repo/dodji/libabigail/tests/data/test-read-dwarf/test6.cc' line='26' column='1' id='type-id-4'>
<data-member access='public' static='yes'>
<var-decl name='bar' type-id='type-id-3' mangled-name='_ZN1CIiE3barE' visibility='default' filepath='/home/skumari/Tasks/source_repo/dodji/libabigail/tests/data/test-read-dwarf/test6.cc' line='31' column='1' elf-symbol-id='_ZN1CIiE3barE'/>
</data-member>
</class-decl>
</abi-instr>
</abi-corpus>