libabigail/tests/data/test-read-dwarf/test0.abi
Dodji Seketeli efeb4e2a8a Bug 19024 - Failing to flag underlying type of enums as anonymous
The for now, the underlying type of an enum type is always assumed to
be anonymous by libabigail.  But then, the code of the DWARF reader
was failing to set the "is-anonymous" flag on it.  So type
canonicalizing code was comparing the enum underlying types by looking
at their names; they all have the same name -- as we forget that they
are anonymous; so they (wrongly) all look the same, within the same
ABI corpus.

This patch sets properly sets the is-anonymous flag on enumerator
underlying types again.

	* src/abg-dwarf-raeder.cc (build_enum_type): Set the is-anonymous
	flag on the underlying type of the enum.
	* tests/data/test-read-dwarf/test0.abi: Adjust.
	* tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise.
	* tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise.
	* tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise.
	* tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise.
	* tests/data/test-read-dwarf/test13-pr18894.so.abi: Likewise.
	* tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise.
	* tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise.
	* tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise.
	* tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise.
	* tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise.
	* tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise.
	* tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
2015-10-11 13:54:24 +02:00

73 lines
5.3 KiB
Plaintext

<abi-corpus path='data/test-read-dwarf/test0'>
<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='_ZN3ns03barEiz' type='func-type' binding='global-binding' is-defined='yes'/>
<elf-symbol name='_ZN3ns03bazERi' type='func-type' binding='global-binding' is-defined='yes'/>
<elf-symbol name='_ZN3ns03fooEPcl' type='func-type' binding='global-binding' is-defined='yes'/>
<elf-symbol name='_ZN3ns04bar2ERNS_1EE' type='func-type' binding='global-binding' is-defined='yes'/>
<elf-symbol name='_ZN3ns04baz2ERi' type='func-type' binding='global-binding' is-defined='yes'/>
<elf-symbol name='__libc_csu_fini' type='func-type' binding='global-binding' is-defined='yes'/>
<elf-symbol name='__libc_csu_init' type='func-type' binding='global-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-symbol name='_start' type='func-type' binding='global-binding' is-defined='yes'/>
<elf-symbol name='main' type='func-type' binding='global-binding' is-defined='yes'/>
</elf-function-symbols>
<elf-variable-symbols>
<elf-symbol name='_IO_stdin_used' type='object-type' binding='global-binding' is-defined='yes'/>
<elf-symbol name='__TMC_END__' type='object-type' binding='global-binding' is-defined='yes'/>
<elf-symbol name='__dso_handle' type='object-type' binding='global-binding' is-defined='yes'/>
<elf-symbol name='global' type='object-type' binding='global-binding' is-defined='yes'/>
</elf-variable-symbols>
<abi-instr version='1.0' address-size='64' path='test0.cc' language='LANG_C_plus_plus'>
<namespace-decl name='ns0'>
<function-decl name='bar' mangled-name='_ZN3ns03barEiz' filepath='/home/dodji/git/libabigail/dwarf/tests/data/test-read-dwarf/test0.cc' line='12' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN3ns03barEiz'>
<parameter type-id='type-id-1'/>
<parameter is-variadic='yes'/>
<return type-id='type-id-2'/>
</function-decl>
<function-decl name='baz' mangled-name='_ZN3ns03bazERi' filepath='/home/dodji/git/libabigail/dwarf/tests/data/test-read-dwarf/test0.cc' line='16' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN3ns03bazERi'>
<parameter type-id='type-id-3'/>
<return type-id='type-id-2'/>
</function-decl>
<enum-decl name='E' id='type-id-4'>
<underlying-type type-id='type-id-5'/>
<enumerator name='e0' value='0'/>
<enumerator name='e1' value='1'/>
</enum-decl>
<function-decl name='bar2' mangled-name='_ZN3ns04bar2ERNS_1EE' filepath='/home/dodji/git/libabigail/dwarf/tests/data/test-read-dwarf/test0.cc' line='22' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN3ns04bar2ERNS_1EE'>
<parameter type-id='type-id-6'/>
<return type-id='type-id-2'/>
</function-decl>
<typedef-decl name='long_long' type-id='type-id-7' filepath='/home/dodji/git/libabigail/dwarf/tests/data/test-read-dwarf/test0.cc' line='25' column='1' id='type-id-8'/>
<function-decl name='baz2' mangled-name='_ZN3ns04baz2ERi' filepath='/home/dodji/git/libabigail/dwarf/tests/data/test-read-dwarf/test0.cc' line='28' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN3ns04baz2ERi'>
<parameter type-id='type-id-3'/>
<return type-id='type-id-8'/>
</function-decl>
<function-decl name='foo' mangled-name='_ZN3ns03fooEPcl' filepath='/home/dodji/git/libabigail/dwarf/tests/data/test-read-dwarf/test0.cc' line='45' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN3ns03fooEPcl'>
<parameter type-id='type-id-9'/>
<parameter type-id='type-id-10'/>
<return type-id='type-id-10'/>
</function-decl>
</namespace-decl>
<type-decl name='void' id='type-id-2'/>
<type-decl name='int' size-in-bits='32' id='type-id-1'/>
<reference-type-def kind='lvalue' type-id='type-id-1' size-in-bits='64' id='type-id-3'/>
<type-decl name='unnamed-enum-underlying-type' is-anonymous='yes' size-in-bits='32' alignment-in-bits='32' id='type-id-5'/>
<reference-type-def kind='lvalue' type-id='type-id-4' size-in-bits='64' id='type-id-6'/>
<type-decl name='long long int' size-in-bits='64' id='type-id-7'/>
<type-decl name='long int' size-in-bits='64' id='type-id-10'/>
<type-decl name='char' size-in-bits='8' id='type-id-11'/>
<pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-9'/>
<function-decl name='main' mangled-name='main' filepath='/home/dodji/git/libabigail/dwarf/tests/data/test-read-dwarf/test0.cc' line='49' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='main'>
<return type-id='type-id-1'/>
</function-decl>
<var-decl name='global' type-id='type-id-1' mangled-name='global' visibility='default' filepath='/home/dodji/git/libabigail/dwarf/tests/data/test-read-dwarf/test0.cc' line='3' column='1' elf-symbol-id='global'/>
</abi-instr>
</abi-corpus>