libabigail/tests/data/test-annotate/libtest23.so.abi
Dodji Seketeli d8de76cfa8 ir: Use non qualified typedef name for type canonicalization
While looking into fixing self-comparison errors for the gcc-gnat
package[1], I stumbled upon the fact that a typedef that is defined in
the global scope is different from a typedef defined in a scope, even
if they both point to the same underlying type.  This is a spurious
difference that feeds a spurious explosion of the number of canonical
types, for no reason.  It can lead to spurious self-comparison errors
down the road.  Sadly, fixing this issue is not enough to fix the
self-comparison error in [1].

[1]: The command is:

    $ fedabipkgdiff --self-compare  -a --from fc37 gcc-gnat

	* include/abg-ir.h (reference_type_def::{pointed_to_type_,
	is_lvalue_}): Remove these data members.
	(reference_type_def::priv_): Add a unique data member.
	(typedef_decl::get_qualified_name): Add new virtual member
	functions.
	* src/abg-ir.cc (get_decl_name_for_comparison): If the decl we are
	comparing is a typedef, only consider its non-qualified name.
	(get_type_name): For internal purposes, the type name of a typedef
	is its non-qualified name.
	(pointer_type_def::get_qualified_name): For internal purposes, if
	the pointed-to name is a typedef, use the non-qualified name of
	the typedef.
	(reference_type_def::priv): Define new data type.
	(reference_type_def::reference_type_def): Initialize the new
	reference_type_def::priv_ data member and adjust to the move of
	the reference_type_def::pointed_to_type_ data member to
	reference_type_def::priv::pointed_to_type_.
	(reference_type_def::{s,g}et_pointed_to_type): Adjust.
	(reference_type_def::is_lvalue): Likewise.
	(reference_type_def::get_qualified_name): Support caching
	qualified names for internal and non-internal purposes.
	(typedef_decl::get_pretty_representation): For internal purposes,
	use non-qualified typedef name.
	(typedef_decl::get_qualified_name): Define the two overloads for
	this virtual member function.
	(function_decl::get_pretty_representation): Use the
	'qualified_name' parameter.  Also, rather than systematically
	using the qualified name of the return type, use get_type_name
	instead that knows when to use qualified names and when not to.
	(qualified_name_setter::do_update):
	* tests/data/test-abidiff/test-PR18791-report0.txt: Adjust.
	* tests/data/test-annotate/libtest23.so.abi: Likewise.
	* tests/data/test-annotate/libtest24-drop-fns-2.so.abi: Likewise.
	* tests/data/test-annotate/libtest24-drop-fns.so.abi: Likewise.
	* tests/data/test-annotate/test15-pr18892.so.abi: Likewise.
	* tests/data/test-annotate/test17-pr19027.so.abi: Likewise.
	* tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi:
	Likewise.
	* tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi:
	Likewise.
	* tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi:
	Likewise.
	* tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt:
	Likewise.
	* tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi:
	Likewise.
	* tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise.
	* tests/data/test-read-dwarf/libtest23.so.abi: Likewise.
	* tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi:
	Likewise.
	* tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Likewise.
	* tests/data/test-read-dwarf/test-libaaudio.so.abi: Likewise.
	* tests/data/test-read-dwarf/test-libandroid.so.abi: Likewise.
	* tests/data/test-read-dwarf/test0.hash.abi: Likewise.
	* tests/data/test-read-dwarf/test1.hash.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/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.
	* tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi:
	Likewise.
	* tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise.
	* tests/data/test-read-write/test28-without-std-fns-ref.xml:
	Likewise.
	* tests/data/test-read-write/test28-without-std-vars-ref.xml:
	Likewise.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
2023-09-07 15:23:38 +02:00

1106 lines
67 KiB
Plaintext

<abi-corpus version='2.2'>
<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>
<!-- emit(std::string&) -->
<elf-symbol name='_Z4emitRSs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<!-- emit(std::string&, std::string&) -->
<elf-symbol name='_Z4emitRSsS_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<!-- _fini -->
<elf-symbol name='_fini' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<!-- _init -->
<elf-symbol name='_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-function-symbols>
<abi-instr address-size='64' path='test23-first-tu.cc' comp-dir-path='/home/dodji/git/libabigail/PR20369/tests/data/test-read-dwarf' language='LANG_C_plus_plus'>
<!-- bool -->
<type-decl name='bool' size-in-bits='8' id='type-id-1'/>
<!-- char -->
<type-decl name='char' size-in-bits='8' id='type-id-2'/>
<!-- double -->
<type-decl name='double' size-in-bits='64' id='type-id-3'/>
<!-- float -->
<type-decl name='float' size-in-bits='32' id='type-id-4'/>
<!-- int -->
<type-decl name='int' size-in-bits='32' id='type-id-5'/>
<!-- long double -->
<type-decl name='long double' size-in-bits='128' id='type-id-6'/>
<!-- long int -->
<type-decl name='long int' size-in-bits='64' id='type-id-7'/>
<!-- long long int -->
<type-decl name='long long int' size-in-bits='64' id='type-id-8'/>
<!-- struct __mbstate_t -->
<class-decl name='__mbstate_t' size-in-bits='64' is-struct='yes' naming-typedef-id='type-id-9' visibility='default' filepath='/usr/include/wchar.h' line='83' column='1' id='type-id-10'>
<member-type access='public'>
<!-- union {} -->
<union-decl name='__anonymous_union__' is-anonymous='yes' visibility='default' is-declaration-only='yes' id='type-id-11'/>
</member-type>
<data-member access='public' layout-offset-in-bits='0'>
<!-- int __mbstate_t::__count -->
<var-decl name='__count' type-id='type-id-5' visibility='default' filepath='/usr/include/wchar.h' line='84' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
<!-- union {} __mbstate_t::__value -->
<var-decl name='__value' type-id='type-id-11' visibility='default' filepath='/usr/include/wchar.h' line='93' column='1'/>
</data-member>
</class-decl>
<!-- struct tm -->
<class-decl name='tm' size-in-bits='448' is-struct='yes' visibility='default' filepath='/usr/include/time.h' line='133' column='1' id='type-id-12'>
<data-member access='public' layout-offset-in-bits='0'>
<!-- int tm::tm_sec -->
<var-decl name='tm_sec' type-id='type-id-5' visibility='default' filepath='/usr/include/time.h' line='135' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
<!-- int tm::tm_min -->
<var-decl name='tm_min' type-id='type-id-5' visibility='default' filepath='/usr/include/time.h' line='136' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<!-- int tm::tm_hour -->
<var-decl name='tm_hour' type-id='type-id-5' visibility='default' filepath='/usr/include/time.h' line='137' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='96'>
<!-- int tm::tm_mday -->
<var-decl name='tm_mday' type-id='type-id-5' visibility='default' filepath='/usr/include/time.h' line='138' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
<!-- int tm::tm_mon -->
<var-decl name='tm_mon' type-id='type-id-5' visibility='default' filepath='/usr/include/time.h' line='139' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='160'>
<!-- int tm::tm_year -->
<var-decl name='tm_year' type-id='type-id-5' visibility='default' filepath='/usr/include/time.h' line='140' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
<!-- int tm::tm_wday -->
<var-decl name='tm_wday' type-id='type-id-5' visibility='default' filepath='/usr/include/time.h' line='141' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='224'>
<!-- int tm::tm_yday -->
<var-decl name='tm_yday' type-id='type-id-5' visibility='default' filepath='/usr/include/time.h' line='142' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
<!-- int tm::tm_isdst -->
<var-decl name='tm_isdst' type-id='type-id-5' visibility='default' filepath='/usr/include/time.h' line='143' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
<!-- long int tm::tm_gmtoff -->
<var-decl name='tm_gmtoff' type-id='type-id-7' visibility='default' filepath='/usr/include/time.h' line='146' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
<!-- const char* tm::tm_zone -->
<var-decl name='tm_zone' type-id='type-id-13' visibility='default' filepath='/usr/include/time.h' line='147' column='1'/>
</data-member>
</class-decl>
<!-- struct typedef __va_list_tag __va_list_tag -->
<class-decl name='typedef __va_list_tag __va_list_tag' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-14'>
<data-member access='public' layout-offset-in-bits='0'>
<!-- unsigned int typedef __va_list_tag __va_list_tag::gp_offset -->
<var-decl name='gp_offset' type-id='type-id-15' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
<!-- unsigned int typedef __va_list_tag __va_list_tag::fp_offset -->
<var-decl name='fp_offset' type-id='type-id-15' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<!-- void* typedef __va_list_tag __va_list_tag::overflow_arg_area -->
<var-decl name='overflow_arg_area' type-id='type-id-16' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
<!-- void* typedef __va_list_tag __va_list_tag::reg_save_area -->
<var-decl name='reg_save_area' type-id='type-id-16' visibility='default'/>
</data-member>
</class-decl>
<!-- struct {} -->
<class-decl name='__anonymous_struct__' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-17'/>
<!-- typedef int __int32_t -->
<typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='40' column='1' id='type-id-18'/>
<!-- typedef __mbstate_t __mbstate_t -->
<typedef-decl name='__mbstate_t' type-id='type-id-10' filepath='/usr/include/wchar.h' line='94' column='1' id='type-id-9'/>
<!-- typedef __mbstate_t mbstate_t -->
<typedef-decl name='mbstate_t' type-id='type-id-9' filepath='/usr/include/wchar.h' line='106' column='1' id='type-id-19'/>
<!-- typedef unsigned long int size_t -->
<typedef-decl name='size_t' type-id='type-id-20' filepath='/usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/stddef.h' line='212' column='1' id='type-id-21'/>
<!-- typedef const __int32_t* wctrans_t -->
<typedef-decl name='wctrans_t' type-id='type-id-22' filepath='/usr/include/wctype.h' line='186' column='1' id='type-id-23'/>
<!-- typedef unsigned long int wctype_t -->
<typedef-decl name='wctype_t' type-id='type-id-20' filepath='/usr/include/wctype.h' line='52' column='1' id='type-id-24'/>
<!-- typedef unsigned int wint_t -->
<typedef-decl name='wint_t' type-id='type-id-15' filepath='/usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/stddef.h' line='353' column='1' id='type-id-25'/>
<!-- unsigned int -->
<type-decl name='unsigned int' size-in-bits='32' id='type-id-15'/>
<!-- unsigned long int -->
<type-decl name='unsigned long int' size-in-bits='64' id='type-id-20'/>
<!-- unsigned long long int -->
<type-decl name='unsigned long long int' size-in-bits='64' id='type-id-26'/>
<!-- wchar_t -->
<type-decl name='wchar_t' size-in-bits='32' id='type-id-27'/>
<!-- __anonymous_struct__* -->
<pointer-type-def type-id='type-id-17' size-in-bits='64' id='type-id-28'/>
<!-- char& -->
<reference-type-def kind='lvalue' type-id='type-id-2' size-in-bits='64' id='type-id-29'/>
<!-- char* -->
<pointer-type-def type-id='type-id-2' size-in-bits='64' id='type-id-30'/>
<!-- const __int32_t -->
<qualified-type-def type-id='type-id-18' const='yes' id='type-id-31'/>
<!-- const __int32_t* -->
<pointer-type-def type-id='type-id-31' size-in-bits='64' id='type-id-22'/>
<!-- const char -->
<qualified-type-def type-id='type-id-2' const='yes' id='type-id-32'/>
<!-- const char& -->
<reference-type-def kind='lvalue' type-id='type-id-32' size-in-bits='64' id='type-id-33'/>
<!-- const char* -->
<pointer-type-def type-id='type-id-32' size-in-bits='64' id='type-id-13'/>
<!-- const char** -->
<pointer-type-def type-id='type-id-13' size-in-bits='64' id='type-id-34'/>
<!-- const mbstate_t -->
<qualified-type-def type-id='type-id-19' const='yes' id='type-id-35'/>
<!-- const mbstate_t* -->
<pointer-type-def type-id='type-id-35' size-in-bits='64' id='type-id-36'/>
<!-- const std::basic_string<char, std::char_traits<char>, std::allocator<char> > -->
<qualified-type-def type-id='type-id-37' const='yes' id='type-id-38'/>
<!-- const std::basic_string<char, std::char_traits<char>, std::allocator<char> >& -->
<reference-type-def kind='lvalue' type-id='type-id-38' size-in-bits='64' id='type-id-39'/>
<!-- const std::basic_string<char, std::char_traits<char>, std::allocator<char> >* -->
<pointer-type-def type-id='type-id-38' size-in-bits='64' id='type-id-40'/>
<!-- const std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size_type -->
<qualified-type-def type-id='type-id-41' const='yes' id='type-id-42'/>
<!-- const tm -->
<qualified-type-def type-id='type-id-12' const='yes' id='type-id-43'/>
<!-- const tm* -->
<pointer-type-def type-id='type-id-43' size-in-bits='64' id='type-id-44'/>
<!-- const wchar_t -->
<qualified-type-def type-id='type-id-27' const='yes' id='type-id-45'/>
<!-- const wchar_t* -->
<pointer-type-def type-id='type-id-45' size-in-bits='64' id='type-id-46'/>
<!-- const wchar_t** -->
<pointer-type-def type-id='type-id-46' size-in-bits='64' id='type-id-47'/>
<!-- mbstate_t* -->
<pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-48'/>
<!-- std::basic_string<char, std::char_traits<char>, std::allocator<char> >& -->
<reference-type-def kind='lvalue' type-id='type-id-37' size-in-bits='64' id='type-id-49'/>
<!-- std::basic_string<char, std::char_traits<char>, std::allocator<char> >* -->
<pointer-type-def type-id='type-id-37' size-in-bits='64' id='type-id-50'/>
<!-- std::string& -->
<reference-type-def kind='lvalue' type-id='type-id-51' size-in-bits='64' id='type-id-52'/>
<!-- typedef __va_list_tag __va_list_tag* -->
<pointer-type-def type-id='type-id-14' size-in-bits='64' id='type-id-53'/>
<!-- wchar_t* -->
<pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-54'/>
<!-- wchar_t** -->
<pointer-type-def type-id='type-id-54' size-in-bits='64' id='type-id-55'/>
<!-- __FILE* -->
<pointer-type-def type-id='type-id-56' size-in-bits='64' id='type-id-57'/>
<!-- class allocator<char> -->
<class-decl name='allocator&lt;char&gt;' visibility='default' is-declaration-only='yes' id='type-id-58'>
<member-type access='public'>
<!-- typedef const char* allocator<char>::const_pointer -->
<typedef-decl name='const_pointer' type-id='type-id-13' filepath='/usr/include/c++/4.8.2/bits/allocator.h' line='98' column='1' id='type-id-59'/>
</member-type>
<member-type access='public'>
<!-- typedef const char& allocator<char>::const_reference -->
<typedef-decl name='const_reference' type-id='type-id-33' filepath='/usr/include/c++/4.8.2/bits/allocator.h' line='100' column='1' id='type-id-60'/>
</member-type>
<member-type access='public'>
<!-- typedef std::ptrdiff_t allocator<char>::difference_type -->
<typedef-decl name='difference_type' type-id='type-id-62' filepath='/usr/include/c++/4.8.2/bits/allocator.h' line='96' column='1' id='type-id-61'/>
</member-type>
<member-type access='public'>
<!-- typedef char* allocator<char>::pointer -->
<typedef-decl name='pointer' type-id='type-id-30' filepath='/usr/include/c++/4.8.2/bits/allocator.h' line='97' column='1' id='type-id-63'/>
</member-type>
<member-type access='public'>
<!-- typedef char& allocator<char>::reference -->
<typedef-decl name='reference' type-id='type-id-29' filepath='/usr/include/c++/4.8.2/bits/allocator.h' line='99' column='1' id='type-id-64'/>
</member-type>
<member-type access='public'>
<!-- typedef std::size_t allocator<char>::size_type -->
<typedef-decl name='size_type' type-id='type-id-21' filepath='/usr/include/c++/4.8.2/bits/allocator.h' line='95' column='1' id='type-id-65'/>
</member-type>
</class-decl>
<!-- const allocator<char> -->
<qualified-type-def type-id='type-id-58' const='yes' id='type-id-66'/>
<reference-type-def kind='lvalue' type-id='type-id-66' size-in-bits='64' id='type-id-67'/>
<!-- const std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep -->
<qualified-type-def type-id='type-id-68' const='yes' id='type-id-69'/>
<!-- namespace __gnu_cxx -->
<namespace-decl name='__gnu_cxx'>
<!-- class __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > -->
<class-decl name='__normal_iterator&lt;char const*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;' visibility='default' is-declaration-only='yes' id='type-id-70'/>
<!-- class __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > -->
<class-decl name='__normal_iterator&lt;char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;' visibility='default' is-declaration-only='yes' id='type-id-71'/>
</namespace-decl>
<!-- namespace std -->
<namespace-decl name='std'>
<!-- typedef std::basic_string<char, std::char_traits<char>, std::allocator<char> > std::string -->
<typedef-decl name='string' type-id='type-id-37' filepath='/usr/include/c++/4.8.2/bits/stringfwd.h' line='62' column='1' id='type-id-51'/>
</namespace-decl>
<!-- namespace std -->
<namespace-decl name='std'>
<!-- class std::basic_string<char, std::char_traits<char>, std::allocator<char> > -->
<class-decl name='basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;' size-in-bits='64' visibility='default' filepath='/usr/include/c++/4.8.2/bits/basic_string.h' line='112' column='1' id='type-id-37'>
<member-type access='public'>
<!-- typedef allocator<char>::const_pointer std::basic_string<char, std::char_traits<char>, std::allocator<char> >::const_pointer -->
<typedef-decl name='const_pointer' type-id='type-id-59' filepath='/usr/include/c++/4.8.2/bits/basic_string.h' line='126' column='1' id='type-id-72'/>
</member-type>
<member-type access='public'>
<!-- typedef allocator<char>::const_reference std::basic_string<char, std::char_traits<char>, std::allocator<char> >::const_reference -->
<typedef-decl name='const_reference' type-id='type-id-60' filepath='/usr/include/c++/4.8.2/bits/basic_string.h' line='124' column='1' id='type-id-73'/>
</member-type>
<member-type access='public'>
<!-- typedef allocator<char>::difference_type std::basic_string<char, std::char_traits<char>, std::allocator<char> >::difference_type -->
<typedef-decl name='difference_type' type-id='type-id-61' filepath='/usr/include/c++/4.8.2/bits/basic_string.h' line='122' column='1' id='type-id-74'/>
</member-type>
<member-type access='public'>
<!-- typedef allocator<char>::pointer std::basic_string<char, std::char_traits<char>, std::allocator<char> >::pointer -->
<typedef-decl name='pointer' type-id='type-id-63' filepath='/usr/include/c++/4.8.2/bits/basic_string.h' line='125' column='1' id='type-id-75'/>
</member-type>
<member-type access='public'>
<!-- typedef allocator<char>::reference std::basic_string<char, std::char_traits<char>, std::allocator<char> >::reference -->
<typedef-decl name='reference' type-id='type-id-64' filepath='/usr/include/c++/4.8.2/bits/basic_string.h' line='123' column='1' id='type-id-76'/>
</member-type>
<member-type access='public'>
<!-- typedef allocator<char>::size_type std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size_type -->
<typedef-decl name='size_type' type-id='type-id-65' filepath='/usr/include/c++/4.8.2/bits/basic_string.h' line='121' column='1' id='type-id-41'/>
</member-type>
<member-type access='public'>
<!-- typedef char_traits<char>::char_type std::basic_string<char, std::char_traits<char>, std::allocator<char> >::value_type -->
<typedef-decl name='value_type' type-id='type-id-78' filepath='/usr/include/c++/4.8.2/bits/basic_string.h' line='119' column='1' id='type-id-77'/>
</member-type>
<member-type access='private'>
<!-- struct std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider -->
<class-decl name='_Alloc_hider' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-79'/>
</member-type>
<member-type access='private'>
<!-- struct std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep -->
<class-decl name='_Rep' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-68'/>
</member-type>
<member-type access='private'>
<!-- struct std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep_base -->
<class-decl name='_Rep_base' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-80'/>
</member-type>
<member-type access='private'>
<!-- typedef rebind<char>::other std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_CharT_alloc_type -->
<typedef-decl name='_CharT_alloc_type' type-id='type-id-82' filepath='/usr/include/c++/4.8.2/bits/basic_string.h' line='114' column='1' id='type-id-81'/>
</member-type>
<member-type access='public'>
<!-- typedef allocator<char> std::basic_string<char, std::char_traits<char>, std::allocator<char> >::allocator_type -->
<typedef-decl name='allocator_type' type-id='type-id-58' filepath='/usr/include/c++/4.8.2/bits/basic_string.h' line='120' column='1' id='type-id-83'/>
</member-type>
<member-type access='public'>
<!-- typedef __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > std::basic_string<char, std::char_traits<char>, std::allocator<char> >::const_iterator -->
<typedef-decl name='const_iterator' type-id='type-id-70' filepath='/usr/include/c++/4.8.2/bits/basic_string.h' line='129' column='1' id='type-id-84'/>
</member-type>
<member-type access='public'>
<!-- typedef std::reverse_iterator<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > std::basic_string<char, std::char_traits<char>, std::allocator<char> >::const_reverse_iterator -->
<typedef-decl name='const_reverse_iterator' type-id='type-id-86' filepath='/usr/include/c++/4.8.2/bits/basic_string.h' line='130' column='1' id='type-id-85'/>
</member-type>
<member-type access='public'>
<!-- typedef __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > std::basic_string<char, std::char_traits<char>, std::allocator<char> >::iterator -->
<typedef-decl name='iterator' type-id='type-id-71' filepath='/usr/include/c++/4.8.2/bits/basic_string.h' line='127' column='1' id='type-id-87'/>
</member-type>
<member-type access='public'>
<!-- typedef std::reverse_iterator<__gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > std::basic_string<char, std::char_traits<char>, std::allocator<char> >::reverse_iterator -->
<typedef-decl name='reverse_iterator' type-id='type-id-89' filepath='/usr/include/c++/4.8.2/bits/basic_string.h' line='131' column='1' id='type-id-88'/>
</member-type>
<member-type access='public'>
<!-- typedef char_traits<char> std::basic_string<char, std::char_traits<char>, std::allocator<char> >::traits_type -->
<typedef-decl name='traits_type' type-id='type-id-91' filepath='/usr/include/c++/4.8.2/bits/basic_string.h' line='118' column='1' id='type-id-90'/>
</member-type>
<data-member access='public' static='yes'>
<!-- static const std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size_type std::basic_string<char, std::char_traits<char>, std::allocator<char> >::npos -->
<var-decl name='npos' type-id='type-id-42' visibility='default' filepath='/usr/include/c++/4.8.2/bits/basic_string.h' line='285' column='1'/>
</data-member>
<data-member access='private' layout-offset-in-bits='0'>
<!-- std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_dataplus -->
<var-decl name='_M_dataplus' type-id='type-id-79' visibility='default' filepath='/usr/include/c++/4.8.2/bits/basic_string.h' line='289' column='1'/>
</data-member>
<member-function access='public'>
<!-- void std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string() -->
<function-decl name='basic_string' filepath='/usr/include/c++/4.8.2/bits/basic_string.h' line='437' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- implicit parameter of type 'std::basic_string<char, std::char_traits<char>, std::allocator<char> >*' -->
<parameter type-id='type-id-50' is-artificial='yes'/>
<!-- void -->
<return type-id='type-id-92'/>
</function-decl>
</member-function>
<member-function access='public'>
<!-- void std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(const allocator<char>&) -->
<function-decl name='basic_string' filepath='/usr/include/c++/4.8.2/bits/basic_string.tcc' line='177' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- implicit parameter of type 'std::basic_string<char, std::char_traits<char>, std::allocator<char> >*' -->
<parameter type-id='type-id-50' is-artificial='yes'/>
<!-- parameter of type 'const allocator<char>&' -->
<parameter type-id='type-id-67'/>
<!-- void -->
<return type-id='type-id-92'/>
</function-decl>
</member-function>
<member-function access='public'>
<!-- void std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&) -->
<function-decl name='basic_string' filepath='/usr/include/c++/4.8.2/bits/basic_string.tcc' line='169' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- implicit parameter of type 'std::basic_string<char, std::char_traits<char>, std::allocator<char> >*' -->
<parameter type-id='type-id-50' is-artificial='yes'/>
<!-- parameter of type 'const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&' -->
<parameter type-id='type-id-39'/>
<!-- void -->
<return type-id='type-id-92'/>
</function-decl>
</member-function>
<member-function access='public'>
<!-- void std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size_type, std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size_type) -->
<function-decl name='basic_string' filepath='/usr/include/c++/4.8.2/bits/basic_string.tcc' line='183' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- implicit parameter of type 'std::basic_string<char, std::char_traits<char>, std::allocator<char> >*' -->
<parameter type-id='type-id-50' is-artificial='yes'/>
<!-- parameter of type 'const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&' -->
<parameter type-id='type-id-39'/>
<!-- parameter of type 'typedef std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size_type' -->
<parameter type-id='type-id-41'/>
<!-- parameter of type 'typedef std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size_type' -->
<parameter type-id='type-id-41'/>
<!-- void -->
<return type-id='type-id-92'/>
</function-decl>
</member-function>
<member-function access='public'>
<!-- void std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size_type, std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size_type, const allocator<char>&) -->
<function-decl name='basic_string' filepath='/usr/include/c++/4.8.2/bits/basic_string.tcc' line='193' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- implicit parameter of type 'std::basic_string<char, std::char_traits<char>, std::allocator<char> >*' -->
<parameter type-id='type-id-50' is-artificial='yes'/>
<!-- parameter of type 'const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&' -->
<parameter type-id='type-id-39'/>
<!-- parameter of type 'typedef std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size_type' -->
<parameter type-id='type-id-41'/>
<!-- parameter of type 'typedef std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size_type' -->
<parameter type-id='type-id-41'/>
<!-- parameter of type 'const allocator<char>&' -->
<parameter type-id='type-id-67'/>
<!-- void -->
<return type-id='type-id-92'/>
</function-decl>
</member-function>
<member-function access='public'>
<!-- void std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(const char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size_type, const allocator<char>&) -->
<function-decl name='basic_string' filepath='/usr/include/c++/4.8.2/bits/basic_string.tcc' line='205' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- implicit parameter of type 'std::basic_string<char, std::char_traits<char>, std::allocator<char> >*' -->
<parameter type-id='type-id-50' is-artificial='yes'/>
<!-- parameter of type 'const char*' -->
<parameter type-id='type-id-13'/>
<!-- parameter of type 'typedef std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size_type' -->
<parameter type-id='type-id-41'/>
<!-- parameter of type 'const allocator<char>&' -->
<parameter type-id='type-id-67'/>
<!-- void -->
<return type-id='type-id-92'/>
</function-decl>
</member-function>
<member-function access='public'>
<!-- void std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(const char*, const allocator<char>&) -->
<function-decl name='basic_string' filepath='/usr/include/c++/4.8.2/bits/basic_string.tcc' line='212' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- implicit parameter of type 'std::basic_string<char, std::char_traits<char>, std::allocator<char> >*' -->
<parameter type-id='type-id-50' is-artificial='yes'/>
<!-- parameter of type 'const char*' -->
<parameter type-id='type-id-13'/>
<!-- parameter of type 'const allocator<char>&' -->
<parameter type-id='type-id-67'/>
<!-- void -->
<return type-id='type-id-92'/>
</function-decl>
</member-function>
<member-function access='public'>
<!-- void std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size_type, char, const allocator<char>&) -->
<function-decl name='basic_string' filepath='/usr/include/c++/4.8.2/bits/basic_string.tcc' line='219' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- implicit parameter of type 'std::basic_string<char, std::char_traits<char>, std::allocator<char> >*' -->
<parameter type-id='type-id-50' is-artificial='yes'/>
<!-- parameter of type 'typedef std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size_type' -->
<parameter type-id='type-id-41'/>
<!-- parameter of type 'char' -->
<parameter type-id='type-id-2'/>
<!-- parameter of type 'const allocator<char>&' -->
<parameter type-id='type-id-67'/>
<!-- void -->
<return type-id='type-id-92'/>
</function-decl>
</member-function>
<member-function access='public' destructor='yes'>
<!-- std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string(int) -->
<function-decl name='~basic_string' filepath='/usr/include/c++/4.8.2/bits/basic_string.h' line='538' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- implicit parameter of type 'std::basic_string<char, std::char_traits<char>, std::allocator<char> >*' -->
<parameter type-id='type-id-50' is-artificial='yes'/>
<!-- artificial parameter of type 'int' -->
<parameter type-id='type-id-5' is-artificial='yes'/>
<!-- void -->
<return type-id='type-id-92'/>
</function-decl>
</member-function>
</class-decl>
</namespace-decl>
<!-- namespace std -->
<namespace-decl name='std'>
<!-- typedef long int std::ptrdiff_t -->
<typedef-decl name='ptrdiff_t' type-id='type-id-7' filepath='/usr/include/c++/4.8.2/x86_64-redhat-linux/bits/c++config.h' line='1858' column='1' id='type-id-62'/>
<!-- class std::reverse_iterator<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > -->
<class-decl name='reverse_iterator&lt;__gnu_cxx::__normal_iterator&lt;char const*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt;' visibility='default' is-declaration-only='yes' id='type-id-86'/>
<!-- class std::reverse_iterator<__gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > -->
<class-decl name='reverse_iterator&lt;__gnu_cxx::__normal_iterator&lt;char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt;' visibility='default' is-declaration-only='yes' id='type-id-89'/>
</namespace-decl>
<reference-type-def kind='lvalue' type-id='type-id-68' size-in-bits='64' id='type-id-93'/>
<!-- std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep* -->
<pointer-type-def type-id='type-id-68' size-in-bits='64' id='type-id-94'/>
<!-- struct _IO_FILE -->
<class-decl name='_IO_FILE' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-95'/>
<!-- struct char_traits<char> -->
<class-decl name='char_traits&lt;char&gt;' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-91'>
<member-type access='public'>
<!-- typedef char char_traits<char>::char_type -->
<typedef-decl name='char_type' type-id='type-id-2' filepath='/usr/include/c++/4.8.2/bits/char_traits.h' line='235' column='1' id='type-id-78'/>
</member-type>
</class-decl>
<!-- struct rebind<char> -->
<class-decl name='rebind&lt;char&gt;' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-96'>
<member-type access='public'>
<!-- typedef allocator<char> rebind<char>::other -->
<typedef-decl name='other' type-id='type-id-58' filepath='/usr/include/c++/4.8.2/bits/allocator.h' line='105' column='1' id='type-id-82'/>
</member-type>
</class-decl>
<!-- void emit(std::string&) -->
<function-decl name='emit' mangled-name='_Z4emitRSs' filepath='/home/dodji/git/libabigail/PR20369/tests/data/test-read-dwarf/test23-first-tu.cc' line='12' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Z4emitRSs'>
<!-- parameter of type 'std::string&' -->
<parameter type-id='type-id-52' name='s' filepath='/home/dodji/git/libabigail/PR20369/tests/data/test-read-dwarf/test23-first-tu.cc' line='12' column='1'/>
<!-- void -->
<return type-id='type-id-92'/>
</function-decl>
<!-- namespace __gnu_cxx -->
<namespace-decl name='__gnu_cxx'>
<!-- struct __gnu_cxx::__numeric_traits_integer<char> -->
<class-decl name='__numeric_traits_integer&lt;char&gt;' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-97'/>
<!-- struct __gnu_cxx::__numeric_traits_integer<int> -->
<class-decl name='__numeric_traits_integer&lt;int&gt;' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-98'/>
<!-- struct __gnu_cxx::__numeric_traits_integer<long int> -->
<class-decl name='__numeric_traits_integer&lt;long int&gt;' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-99'/>
<!-- struct __gnu_cxx::__numeric_traits_integer<long unsigned int> -->
<class-decl name='__numeric_traits_integer&lt;long unsigned int&gt;' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-100'/>
<!-- struct __gnu_cxx::__numeric_traits_integer<short int> -->
<class-decl name='__numeric_traits_integer&lt;short int&gt;' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-101'/>
</namespace-decl>
<!-- char* setlocale(int, const char*) -->
<function-decl name='setlocale' filepath='/usr/include/locale.h' line='125' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'int' -->
<parameter type-id='type-id-5'/>
<!-- parameter of type 'const char*' -->
<parameter type-id='type-id-13'/>
<!-- char* -->
<return type-id='type-id-30'/>
</function-decl>
<!-- __anonymous_struct__* localeconv() -->
<function-decl name='localeconv' filepath='/usr/include/locale.h' line='128' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- __anonymous_struct__* -->
<return type-id='type-id-28'/>
</function-decl>
<!-- typedef _IO_FILE __FILE -->
<typedef-decl name='__FILE' type-id='type-id-95' filepath='/usr/include/stdio.h' line='64' column='1' id='type-id-56'/>
<!-- wchar_t* wcscpy(wchar_t*, const wchar_t*) -->
<function-decl name='wcscpy' filepath='/usr/include/wchar.h' line='147' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'wchar_t*' -->
<parameter type-id='type-id-54'/>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- wchar_t* -->
<return type-id='type-id-54'/>
</function-decl>
<!-- wchar_t* wcsncpy(wchar_t*, const wchar_t*, size_t) -->
<function-decl name='wcsncpy' filepath='/usr/include/wchar.h' line='150' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'wchar_t*' -->
<parameter type-id='type-id-54'/>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- parameter of type 'typedef size_t' -->
<parameter type-id='type-id-21'/>
<!-- wchar_t* -->
<return type-id='type-id-54'/>
</function-decl>
<!-- wchar_t* wcscat(wchar_t*, const wchar_t*) -->
<function-decl name='wcscat' filepath='/usr/include/wchar.h' line='155' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'wchar_t*' -->
<parameter type-id='type-id-54'/>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- wchar_t* -->
<return type-id='type-id-54'/>
</function-decl>
<!-- wchar_t* wcsncat(wchar_t*, const wchar_t*, size_t) -->
<function-decl name='wcsncat' filepath='/usr/include/wchar.h' line='158' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'wchar_t*' -->
<parameter type-id='type-id-54'/>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- parameter of type 'typedef size_t' -->
<parameter type-id='type-id-21'/>
<!-- wchar_t* -->
<return type-id='type-id-54'/>
</function-decl>
<!-- int wcscmp(const wchar_t*, const wchar_t*) -->
<function-decl name='wcscmp' filepath='/usr/include/wchar.h' line='163' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- int -->
<return type-id='type-id-5'/>
</function-decl>
<!-- int wcsncmp(const wchar_t*, const wchar_t*, size_t) -->
<function-decl name='wcsncmp' filepath='/usr/include/wchar.h' line='166' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- parameter of type 'typedef size_t' -->
<parameter type-id='type-id-21'/>
<!-- int -->
<return type-id='type-id-5'/>
</function-decl>
<!-- int wcscoll(const wchar_t*, const wchar_t*) -->
<function-decl name='wcscoll' filepath='/usr/include/wchar.h' line='192' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- int -->
<return type-id='type-id-5'/>
</function-decl>
<!-- size_t wcsxfrm(wchar_t*, const wchar_t*, size_t) -->
<function-decl name='wcsxfrm' filepath='/usr/include/wchar.h' line='196' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'wchar_t*' -->
<parameter type-id='type-id-54'/>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- parameter of type 'typedef size_t' -->
<parameter type-id='type-id-21'/>
<!-- typedef size_t -->
<return type-id='type-id-21'/>
</function-decl>
<!-- size_t wcscspn(const wchar_t*, const wchar_t*) -->
<function-decl name='wcscspn' filepath='/usr/include/wchar.h' line='252' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- typedef size_t -->
<return type-id='type-id-21'/>
</function-decl>
<!-- size_t wcsspn(const wchar_t*, const wchar_t*) -->
<function-decl name='wcsspn' filepath='/usr/include/wchar.h' line='256' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- typedef size_t -->
<return type-id='type-id-21'/>
</function-decl>
<!-- wchar_t* wcstok(wchar_t*, const wchar_t*, wchar_t**) -->
<function-decl name='wcstok' filepath='/usr/include/wchar.h' line='282' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'wchar_t*' -->
<parameter type-id='type-id-54'/>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- parameter of type 'wchar_t**' -->
<parameter type-id='type-id-55'/>
<!-- wchar_t* -->
<return type-id='type-id-54'/>
</function-decl>
<!-- size_t wcslen(const wchar_t*) -->
<function-decl name='wcslen' filepath='/usr/include/wchar.h' line='287' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- typedef size_t -->
<return type-id='type-id-21'/>
</function-decl>
<!-- int wmemcmp(const wchar_t*, const wchar_t*, size_t) -->
<function-decl name='wmemcmp' filepath='/usr/include/wchar.h' line='325' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- parameter of type 'typedef size_t' -->
<parameter type-id='type-id-21'/>
<!-- int -->
<return type-id='type-id-5'/>
</function-decl>
<!-- wchar_t* wmemcpy(wchar_t*, const wchar_t*, size_t) -->
<function-decl name='wmemcpy' filepath='/usr/include/wchar.h' line='329' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'wchar_t*' -->
<parameter type-id='type-id-54'/>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- parameter of type 'typedef size_t' -->
<parameter type-id='type-id-21'/>
<!-- wchar_t* -->
<return type-id='type-id-54'/>
</function-decl>
<!-- wchar_t* wmemmove(wchar_t*, const wchar_t*, size_t) -->
<function-decl name='wmemmove' filepath='/usr/include/wchar.h' line='334' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'wchar_t*' -->
<parameter type-id='type-id-54'/>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- parameter of type 'typedef size_t' -->
<parameter type-id='type-id-21'/>
<!-- wchar_t* -->
<return type-id='type-id-54'/>
</function-decl>
<!-- wchar_t* wmemset(wchar_t*, wchar_t, size_t) -->
<function-decl name='wmemset' filepath='/usr/include/wchar.h' line='338' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'wchar_t*' -->
<parameter type-id='type-id-54'/>
<!-- parameter of type 'wchar_t' -->
<parameter type-id='type-id-27'/>
<!-- parameter of type 'typedef size_t' -->
<parameter type-id='type-id-21'/>
<!-- wchar_t* -->
<return type-id='type-id-54'/>
</function-decl>
<!-- wint_t btowc(int) -->
<function-decl name='btowc' filepath='/usr/include/wchar.h' line='353' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'int' -->
<parameter type-id='type-id-5'/>
<!-- typedef wint_t -->
<return type-id='type-id-25'/>
</function-decl>
<!-- int wctob(wint_t) -->
<function-decl name='wctob' filepath='/usr/include/wchar.h' line='357' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'typedef wint_t' -->
<parameter type-id='type-id-25'/>
<!-- int -->
<return type-id='type-id-5'/>
</function-decl>
<!-- int mbsinit(const mbstate_t*) -->
<function-decl name='mbsinit' filepath='/usr/include/wchar.h' line='361' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'const mbstate_t*' -->
<parameter type-id='type-id-36'/>
<!-- int -->
<return type-id='type-id-5'/>
</function-decl>
<!-- size_t mbrtowc(wchar_t*, const char*, size_t, mbstate_t*) -->
<function-decl name='mbrtowc' filepath='/usr/include/wchar.h' line='365' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'wchar_t*' -->
<parameter type-id='type-id-54'/>
<!-- parameter of type 'const char*' -->
<parameter type-id='type-id-13'/>
<!-- parameter of type 'typedef size_t' -->
<parameter type-id='type-id-21'/>
<!-- parameter of type 'mbstate_t*' -->
<parameter type-id='type-id-48'/>
<!-- typedef size_t -->
<return type-id='type-id-21'/>
</function-decl>
<!-- size_t wcrtomb(char*, wchar_t, mbstate_t*) -->
<function-decl name='wcrtomb' filepath='/usr/include/wchar.h' line='370' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'char*' -->
<parameter type-id='type-id-30'/>
<!-- parameter of type 'wchar_t' -->
<parameter type-id='type-id-27'/>
<!-- parameter of type 'mbstate_t*' -->
<parameter type-id='type-id-48'/>
<!-- typedef size_t -->
<return type-id='type-id-21'/>
</function-decl>
<!-- size_t mbrlen(const char*, size_t, mbstate_t*) -->
<function-decl name='mbrlen' filepath='/usr/include/wchar.h' line='376' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'const char*' -->
<parameter type-id='type-id-13'/>
<!-- parameter of type 'typedef size_t' -->
<parameter type-id='type-id-21'/>
<!-- parameter of type 'mbstate_t*' -->
<parameter type-id='type-id-48'/>
<!-- typedef size_t -->
<return type-id='type-id-21'/>
</function-decl>
<!-- size_t mbsrtowcs(wchar_t*, const char**, size_t, mbstate_t*) -->
<function-decl name='mbsrtowcs' filepath='/usr/include/wchar.h' line='408' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'wchar_t*' -->
<parameter type-id='type-id-54'/>
<!-- parameter of type 'const char**' -->
<parameter type-id='type-id-34'/>
<!-- parameter of type 'typedef size_t' -->
<parameter type-id='type-id-21'/>
<!-- parameter of type 'mbstate_t*' -->
<parameter type-id='type-id-48'/>
<!-- typedef size_t -->
<return type-id='type-id-21'/>
</function-decl>
<!-- size_t wcsrtombs(char*, const wchar_t**, size_t, mbstate_t*) -->
<function-decl name='wcsrtombs' filepath='/usr/include/wchar.h' line='414' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'char*' -->
<parameter type-id='type-id-30'/>
<!-- parameter of type 'const wchar_t**' -->
<parameter type-id='type-id-47'/>
<!-- parameter of type 'typedef size_t' -->
<parameter type-id='type-id-21'/>
<!-- parameter of type 'mbstate_t*' -->
<parameter type-id='type-id-48'/>
<!-- typedef size_t -->
<return type-id='type-id-21'/>
</function-decl>
<!-- double wcstod(const wchar_t*, wchar_t**) -->
<function-decl name='wcstod' filepath='/usr/include/wchar.h' line='450' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- parameter of type 'wchar_t**' -->
<parameter type-id='type-id-55'/>
<!-- double -->
<return type-id='type-id-3'/>
</function-decl>
<!-- float wcstof(const wchar_t*, wchar_t**) -->
<function-decl name='wcstof' filepath='/usr/include/wchar.h' line='457' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- parameter of type 'wchar_t**' -->
<parameter type-id='type-id-55'/>
<!-- float -->
<return type-id='type-id-4'/>
</function-decl>
<!-- long double wcstold(const wchar_t*, wchar_t**) -->
<function-decl name='wcstold' filepath='/usr/include/wchar.h' line='459' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- parameter of type 'wchar_t**' -->
<parameter type-id='type-id-55'/>
<!-- long double -->
<return type-id='type-id-6'/>
</function-decl>
<!-- long int wcstol(const wchar_t*, wchar_t**, int) -->
<function-decl name='wcstol' filepath='/usr/include/wchar.h' line='468' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- parameter of type 'wchar_t**' -->
<parameter type-id='type-id-55'/>
<!-- parameter of type 'int' -->
<parameter type-id='type-id-5'/>
<!-- long int -->
<return type-id='type-id-7'/>
</function-decl>
<!-- unsigned long int wcstoul(const wchar_t*, wchar_t**, int) -->
<function-decl name='wcstoul' filepath='/usr/include/wchar.h' line='473' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- parameter of type 'wchar_t**' -->
<parameter type-id='type-id-55'/>
<!-- parameter of type 'int' -->
<parameter type-id='type-id-5'/>
<!-- unsigned long int -->
<return type-id='type-id-20'/>
</function-decl>
<!-- long long int wcstoll(const wchar_t*, wchar_t**, int) -->
<function-decl name='wcstoll' filepath='/usr/include/wchar.h' line='483' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- parameter of type 'wchar_t**' -->
<parameter type-id='type-id-55'/>
<!-- parameter of type 'int' -->
<parameter type-id='type-id-5'/>
<!-- long long int -->
<return type-id='type-id-8'/>
</function-decl>
<!-- unsigned long long int wcstoull(const wchar_t*, wchar_t**, int) -->
<function-decl name='wcstoull' filepath='/usr/include/wchar.h' line='490' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- parameter of type 'wchar_t**' -->
<parameter type-id='type-id-55'/>
<!-- parameter of type 'int' -->
<parameter type-id='type-id-5'/>
<!-- unsigned long long int -->
<return type-id='type-id-26'/>
</function-decl>
<!-- int fwide(__FILE*, int) -->
<function-decl name='fwide' filepath='/usr/include/wchar.h' line='587' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type '__FILE*' -->
<parameter type-id='type-id-57'/>
<!-- parameter of type 'int' -->
<parameter type-id='type-id-5'/>
<!-- int -->
<return type-id='type-id-5'/>
</function-decl>
<!-- int fwprintf(__FILE*, const wchar_t*, ...) -->
<function-decl name='fwprintf' filepath='/usr/include/wchar.h' line='594' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type '__FILE*' -->
<parameter type-id='type-id-57'/>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<parameter is-variadic='yes'/>
<!-- int -->
<return type-id='type-id-5'/>
</function-decl>
<!-- int wprintf(const wchar_t*, ...) -->
<function-decl name='wprintf' filepath='/usr/include/wchar.h' line='601' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<parameter is-variadic='yes'/>
<!-- int -->
<return type-id='type-id-5'/>
</function-decl>
<!-- int swprintf(wchar_t*, size_t, const wchar_t*, ...) -->
<function-decl name='swprintf' filepath='/usr/include/wchar.h' line='604' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'wchar_t*' -->
<parameter type-id='type-id-54'/>
<!-- parameter of type 'typedef size_t' -->
<parameter type-id='type-id-21'/>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<parameter is-variadic='yes'/>
<!-- int -->
<return type-id='type-id-5'/>
</function-decl>
<!-- int vfwprintf(__FILE*, const wchar_t*, typedef __va_list_tag __va_list_tag*) -->
<function-decl name='vfwprintf' filepath='/usr/include/wchar.h' line='612' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type '__FILE*' -->
<parameter type-id='type-id-57'/>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- parameter of type 'typedef __va_list_tag __va_list_tag*' -->
<parameter type-id='type-id-53'/>
<!-- int -->
<return type-id='type-id-5'/>
</function-decl>
<!-- int vwprintf(const wchar_t*, typedef __va_list_tag __va_list_tag*) -->
<function-decl name='vwprintf' filepath='/usr/include/wchar.h' line='620' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- parameter of type 'typedef __va_list_tag __va_list_tag*' -->
<parameter type-id='type-id-53'/>
<!-- int -->
<return type-id='type-id-5'/>
</function-decl>
<!-- int vswprintf(wchar_t*, size_t, const wchar_t*, typedef __va_list_tag __va_list_tag*) -->
<function-decl name='vswprintf' filepath='/usr/include/wchar.h' line='625' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'wchar_t*' -->
<parameter type-id='type-id-54'/>
<!-- parameter of type 'typedef size_t' -->
<parameter type-id='type-id-21'/>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- parameter of type 'typedef __va_list_tag __va_list_tag*' -->
<parameter type-id='type-id-53'/>
<!-- int -->
<return type-id='type-id-5'/>
</function-decl>
<!-- int fwscanf(__FILE*, const wchar_t*, ...) -->
<function-decl name='fwscanf' filepath='/usr/include/wchar.h' line='635' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type '__FILE*' -->
<parameter type-id='type-id-57'/>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<parameter is-variadic='yes'/>
<!-- int -->
<return type-id='type-id-5'/>
</function-decl>
<!-- int wscanf(const wchar_t*, ...) -->
<function-decl name='wscanf' filepath='/usr/include/wchar.h' line='642' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<parameter is-variadic='yes'/>
<!-- int -->
<return type-id='type-id-5'/>
</function-decl>
<!-- int swscanf(const wchar_t*, const wchar_t*, ...) -->
<function-decl name='swscanf' filepath='/usr/include/wchar.h' line='645' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<parameter is-variadic='yes'/>
<!-- int -->
<return type-id='type-id-5'/>
</function-decl>
<!-- int vfwscanf(__FILE*, const wchar_t*, typedef __va_list_tag __va_list_tag*) -->
<function-decl name='vfwscanf' filepath='/usr/include/wchar.h' line='689' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type '__FILE*' -->
<parameter type-id='type-id-57'/>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- parameter of type 'typedef __va_list_tag __va_list_tag*' -->
<parameter type-id='type-id-53'/>
<!-- int -->
<return type-id='type-id-5'/>
</function-decl>
<!-- int vwscanf(const wchar_t*, typedef __va_list_tag __va_list_tag*) -->
<function-decl name='vwscanf' filepath='/usr/include/wchar.h' line='697' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- parameter of type 'typedef __va_list_tag __va_list_tag*' -->
<parameter type-id='type-id-53'/>
<!-- int -->
<return type-id='type-id-5'/>
</function-decl>
<!-- int vswscanf(const wchar_t*, const wchar_t*, typedef __va_list_tag __va_list_tag*) -->
<function-decl name='vswscanf' filepath='/usr/include/wchar.h' line='701' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- parameter of type 'typedef __va_list_tag __va_list_tag*' -->
<parameter type-id='type-id-53'/>
<!-- int -->
<return type-id='type-id-5'/>
</function-decl>
<!-- wint_t fgetwc(__FILE*) -->
<function-decl name='fgetwc' filepath='/usr/include/wchar.h' line='745' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type '__FILE*' -->
<parameter type-id='type-id-57'/>
<!-- typedef wint_t -->
<return type-id='type-id-25'/>
</function-decl>
<!-- wint_t getwc(__FILE*) -->
<function-decl name='getwc' filepath='/usr/include/wchar.h' line='746' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type '__FILE*' -->
<parameter type-id='type-id-57'/>
<!-- typedef wint_t -->
<return type-id='type-id-25'/>
</function-decl>
<!-- wint_t getwchar() -->
<function-decl name='getwchar' filepath='/usr/include/wchar.h' line='752' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- typedef wint_t -->
<return type-id='type-id-25'/>
</function-decl>
<!-- wint_t fputwc(wchar_t, __FILE*) -->
<function-decl name='fputwc' filepath='/usr/include/wchar.h' line='759' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'wchar_t' -->
<parameter type-id='type-id-27'/>
<!-- parameter of type '__FILE*' -->
<parameter type-id='type-id-57'/>
<!-- typedef wint_t -->
<return type-id='type-id-25'/>
</function-decl>
<!-- wint_t putwc(wchar_t, __FILE*) -->
<function-decl name='putwc' filepath='/usr/include/wchar.h' line='760' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'wchar_t' -->
<parameter type-id='type-id-27'/>
<!-- parameter of type '__FILE*' -->
<parameter type-id='type-id-57'/>
<!-- typedef wint_t -->
<return type-id='type-id-25'/>
</function-decl>
<!-- wint_t putwchar(wchar_t) -->
<function-decl name='putwchar' filepath='/usr/include/wchar.h' line='766' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'wchar_t' -->
<parameter type-id='type-id-27'/>
<!-- typedef wint_t -->
<return type-id='type-id-25'/>
</function-decl>
<!-- wchar_t* fgetws(wchar_t*, int, __FILE*) -->
<function-decl name='fgetws' filepath='/usr/include/wchar.h' line='774' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'wchar_t*' -->
<parameter type-id='type-id-54'/>
<!-- parameter of type 'int' -->
<parameter type-id='type-id-5'/>
<!-- parameter of type '__FILE*' -->
<parameter type-id='type-id-57'/>
<!-- wchar_t* -->
<return type-id='type-id-54'/>
</function-decl>
<!-- int fputws(const wchar_t*, __FILE*) -->
<function-decl name='fputws' filepath='/usr/include/wchar.h' line='781' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- parameter of type '__FILE*' -->
<parameter type-id='type-id-57'/>
<!-- int -->
<return type-id='type-id-5'/>
</function-decl>
<!-- wint_t ungetwc(wint_t, __FILE*) -->
<function-decl name='ungetwc' filepath='/usr/include/wchar.h' line='789' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'typedef wint_t' -->
<parameter type-id='type-id-25'/>
<!-- parameter of type '__FILE*' -->
<parameter type-id='type-id-57'/>
<!-- typedef wint_t -->
<return type-id='type-id-25'/>
</function-decl>
<!-- size_t wcsftime(wchar_t*, size_t, const wchar_t*, const tm*) -->
<function-decl name='wcsftime' filepath='/usr/include/wchar.h' line='855' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'wchar_t*' -->
<parameter type-id='type-id-54'/>
<!-- parameter of type 'typedef size_t' -->
<parameter type-id='type-id-21'/>
<!-- parameter of type 'const wchar_t*' -->
<parameter type-id='type-id-46'/>
<!-- parameter of type 'const tm*' -->
<parameter type-id='type-id-44'/>
<!-- typedef size_t -->
<return type-id='type-id-21'/>
</function-decl>
<!-- wctype_t wctype(const char*) -->
<function-decl name='wctype' filepath='/usr/include/wctype.h' line='171' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'const char*' -->
<parameter type-id='type-id-13'/>
<!-- typedef wctype_t -->
<return type-id='type-id-24'/>
</function-decl>
<!-- int iswctype(wint_t, wctype_t) -->
<function-decl name='iswctype' filepath='/usr/include/wctype.h' line='175' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'typedef wint_t' -->
<parameter type-id='type-id-25'/>
<!-- parameter of type 'typedef wctype_t' -->
<parameter type-id='type-id-24'/>
<!-- int -->
<return type-id='type-id-5'/>
</function-decl>
<!-- wctrans_t wctrans(const char*) -->
<function-decl name='wctrans' filepath='/usr/include/wctype.h' line='218' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'const char*' -->
<parameter type-id='type-id-13'/>
<!-- typedef wctrans_t -->
<return type-id='type-id-23'/>
</function-decl>
<!-- wint_t towctrans(wint_t, wctrans_t) -->
<function-decl name='towctrans' filepath='/usr/include/wctype.h' line='221' column='1' visibility='default' binding='global' size-in-bits='64'>
<!-- parameter of type 'typedef wint_t' -->
<parameter type-id='type-id-25'/>
<!-- parameter of type 'typedef wctrans_t' -->
<parameter type-id='type-id-23'/>
<!-- typedef wint_t -->
<return type-id='type-id-25'/>
</function-decl>
<!-- variadic parameter type -->
<type-decl name='variadic parameter type' id='type-id-102'/>
<!-- void -->
<type-decl name='void' id='type-id-92'/>
<!-- void* -->
<pointer-type-def type-id='type-id-92' id='type-id-16'/>
</abi-instr>
<abi-instr address-size='64' path='test23-second-tu.cc' comp-dir-path='/home/dodji/git/libabigail/PR20369/tests/data/test-read-dwarf' language='LANG_C_plus_plus'>
<!-- __FILE* -->
<pointer-type-def type-id='type-id-103' size-in-bits='64' id='type-id-104'/>
<!-- namespace std -->
<namespace-decl name='std'>
</namespace-decl>
<!-- struct _IO_FILE -->
<class-decl name='_IO_FILE' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-105'/>
<!-- void emit(std::string&, std::string&) -->
<function-decl name='emit' mangled-name='_Z4emitRSsS_' filepath='/home/dodji/git/libabigail/PR20369/tests/data/test-read-dwarf/test23-second-tu.cc' line='13' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Z4emitRSsS_'>
<!-- parameter of type 'std::string&' -->
<parameter type-id='type-id-52' name='prefix' filepath='/home/dodji/git/libabigail/PR20369/tests/data/test-read-dwarf/test23-second-tu.cc' line='13' column='1'/>
<!-- parameter of type 'std::string&' -->
<parameter type-id='type-id-52' name='s' filepath='/home/dodji/git/libabigail/PR20369/tests/data/test-read-dwarf/test23-second-tu.cc' line='13' column='1'/>
<!-- void -->
<return type-id='type-id-92'/>
</function-decl>
<!-- namespace __gnu_cxx -->
<namespace-decl name='__gnu_cxx'>
<!-- struct __gnu_cxx::__numeric_traits_integer<char> -->
<class-decl name='__numeric_traits_integer&lt;char&gt;' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-106'/>
<!-- struct __gnu_cxx::__numeric_traits_integer<int> -->
<class-decl name='__numeric_traits_integer&lt;int&gt;' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-107'/>
<!-- struct __gnu_cxx::__numeric_traits_integer<long int> -->
<class-decl name='__numeric_traits_integer&lt;long int&gt;' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-108'/>
<!-- struct __gnu_cxx::__numeric_traits_integer<long unsigned int> -->
<class-decl name='__numeric_traits_integer&lt;long unsigned int&gt;' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-109'/>
<!-- struct __gnu_cxx::__numeric_traits_integer<short int> -->
<class-decl name='__numeric_traits_integer&lt;short int&gt;' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-110'/>
</namespace-decl>
<!-- typedef _IO_FILE __FILE -->
<typedef-decl name='__FILE' type-id='type-id-105' filepath='/usr/include/stdio.h' line='64' column='1' id='type-id-103'/>
</abi-instr>
</abi-corpus>