libabigail/tests/data/test-read-dwarf/test2.so.abi
Dodji Seketeli 7cae79e0d8 On changed fn, show symbol info when name is different from linkage name in C
In change reports for function sub-type changes, for the C language,
when the name of the function is different from its linkage name, even
when the function symbol has no aliases, show the symbol information
of the function.

	* include/abg-ir.h (translation_unit::language): New enum type.
	(translation_unit::{get_language, set_language}): Declare new
	accessors.
	(translation_unit_language_to_string)
	(string_to_translation_unit_language, is_c_language)
	(is_cplus_plus_language): Declare new functions.
	* src/abg-ir.cc (translation_unit::priv::language_): New data
	member.
	(translation_unit::priv::language_): Initialize it.
	(translation_unit::{set_language, get_language}): Define new
	member functions.
	(translation_unit_language_to_string)
	(string_to_translation_unit_language, is_c_language)
	(is_cplus_plus_language): Define new functions.
	* src/abg-dwarf-reader.cc (dwarf_language_to_tu_language): New
	static function.
	(build_translation_unit_and_add_to_ir): Read the language of the
	translation unit.
	* src/abg-comparison.cc (corpus_diff::report): When reporting a
	change in a function sub-type, if we are in C language translation
	unit, if the function name is different from its linkage name,
	even if the symbol doesn't have any alias, show symbol
	information.
	* src/abg-reader.cc (read_translation_unit_from_input): Read the
	'language' property of the translation unit, if present.
	* src/abg-writer.cc (write_translation_unit): Write the 'language'
	property to the translation unit, if present.
	* tests/data/test-read-dwarf/test0.abi: Adjust for the new
	'language' property of the 'abi-instr' element.
	* 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-07-19 19:52:01 +02:00

81 lines
5.8 KiB
Plaintext

<abi-corpus path='data/test-read-dwarf/test2.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='_ZN10first_typeC1Ev' type='func-type' binding='global-binding' alias='_ZN10first_typeC2Ev' is-defined='yes'/>
<elf-symbol name='_ZN10first_typeC2Ev' type='func-type' binding='global-binding' is-defined='yes'/>
<elf-symbol name='_ZN11second_typeC1Ev' type='func-type' binding='global-binding' alias='_ZN11second_typeC2Ev' is-defined='yes'/>
<elf-symbol name='_ZN11second_typeC2Ev' type='func-type' binding='global-binding' is-defined='yes'/>
<elf-symbol name='_ZN1a16build_first_typeEv' type='func-type' binding='global-binding' is-defined='yes'/>
<elf-symbol name='_ZN1a17build_second_typeEv' 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-function-symbols>
<abi-instr version='1.0' address-size='64' path='test2-0.cc' language='LANG_C_plus_plus'>
<class-decl name='first_type' size-in-bits='64' is-struct='yes' visibility='default' filepath='/home/dodji/git/libabigail/dwarf/tests/data/test-read-dwarf/test2.h' line='4' column='1' id='type-id-1'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='member0' type-id='type-id-2' visibility='default' filepath='/home/dodji/git/libabigail/dwarf/tests/data/test-read-dwarf/test2.h' line='6' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
<var-decl name='member1' type-id='type-id-3' visibility='default' filepath='/home/dodji/git/libabigail/dwarf/tests/data/test-read-dwarf/test2.h' line='7' column='1'/>
</data-member>
<member-function access='public' constructor='yes'>
<function-decl name='first_type' filepath='/home/dodji/git/libabigail/dwarf/tests/data/test-read-dwarf/test2.h' line='9' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-4' is-artificial='yes'/>
<return type-id='type-id-5'/>
</function-decl>
</member-function>
<member-function access='public' constructor='yes'>
<function-decl name='first_type' mangled-name='_ZN10first_typeC2Ev' filepath='/home/dodji/git/libabigail/dwarf/tests/data/test-read-dwarf/test2.h' line='9' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN10first_typeC1Ev'>
<parameter type-id='type-id-4' is-artificial='yes'/>
<return type-id='type-id-5'/>
</function-decl>
</member-function>
</class-decl>
<type-decl name='int' size-in-bits='32' id='type-id-6'/>
<typedef-decl name='integer' type-id='type-id-6' id='type-id-2'/>
<type-decl name='unsigned char' size-in-bits='8' id='type-id-7'/>
<typedef-decl name='character' type-id='type-id-7' id='type-id-3'/>
<type-decl name='void' id='type-id-5'/>
<pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-4'/>
<namespace-decl name='a'>
<function-decl name='build_first_type' mangled-name='_ZN1a16build_first_typeEv' filepath='/home/dodji/git/libabigail/dwarf/tests/data/test-read-dwarf/test2-0.cc' line='13' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN1a16build_first_typeEv'>
<return type-id='type-id-4'/>
</function-decl>
</namespace-decl>
</abi-instr>
<abi-instr version='1.0' address-size='64' path='test2-1.cc' language='LANG_C_plus_plus'>
<class-decl name='second_type' size-in-bits='64' is-struct='yes' visibility='default' filepath='/home/dodji/git/libabigail/dwarf/tests/data/test-read-dwarf/test2.h' line='12' column='1' id='type-id-8'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='member0' type-id='type-id-2' visibility='default' filepath='/home/dodji/git/libabigail/dwarf/tests/data/test-read-dwarf/test2.h' line='14' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
<var-decl name='member1' type-id='type-id-3' visibility='default' filepath='/home/dodji/git/libabigail/dwarf/tests/data/test-read-dwarf/test2.h' line='15' column='1'/>
</data-member>
<member-function access='public' constructor='yes'>
<function-decl name='second_type' filepath='/home/dodji/git/libabigail/dwarf/tests/data/test-read-dwarf/test2.h' line='17' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-9' is-artificial='yes'/>
<return type-id='type-id-5'/>
</function-decl>
</member-function>
<member-function access='public' constructor='yes'>
<function-decl name='second_type' mangled-name='_ZN11second_typeC2Ev' filepath='/home/dodji/git/libabigail/dwarf/tests/data/test-read-dwarf/test2.h' line='17' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN11second_typeC1Ev'>
<parameter type-id='type-id-9' is-artificial='yes'/>
<return type-id='type-id-5'/>
</function-decl>
</member-function>
</class-decl>
<type-decl name='void' id='type-id-5'/>
<pointer-type-def type-id='type-id-8' size-in-bits='64' id='type-id-9'/>
<namespace-decl name='a'>
<function-decl name='build_second_type' mangled-name='_ZN1a17build_second_typeEv' filepath='/home/dodji/git/libabigail/dwarf/tests/data/test-read-dwarf/test2-1.cc' line='13' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN1a17build_second_typeEv'>
<return type-id='type-id-9'/>
</function-decl>
</namespace-decl>
</abi-instr>
</abi-corpus>