libabigail/tests/data/test-read-write/test28-without-std-fns.xml
Dodji Seketeli 98c8d61684 Drop suppressed ABI artifacts from the IR
This patch allows dropping suppressed ABI artifacts from the in-memory
internal representation right during the DWARF or abixml reading.

In practise, this means that abidw and abilint now have a
--suppressions options to give them suppression specifications.  If a
suppression specification that has the "drop" property matches an ABI
artifact (type, function or variable) then that artifact is dropped
from the internal representation.  This also applies to abidiff.

Note that now, by default, ABI artifacts (types) that are suppressed
due to the --headers-dir{1,2} option of abidiff are now also dropped
from the IR as well.  Incidentally, abidw and abilint tools now have a
--header-dir option too.

	* doc/manuals/abidw.rst: Document the new --suppressions and
	--headers-dir options off the abidw tool.
	* doc/manuals/abilint.rst: Document the new --suppressions and
	--headers-dir options on the abilint tool.
	* doc/manuals/libabigail-concepts.rst: Document the new "drop" and
	"name_not_regexp" properties on suppression directives.
	* include/abg-corpus.h (corpus::corpus): Add a default argument to
	the path parameter.
	* src/abg-suppression-priv.h: New private header file.
	* src/Makefile.am: Add the new abg-suppression-priv.h file to
	source distribution.
	* include/abg-suppression.h ({suppression_base, type_suppression,
	function_suppression, variable_suppression}::priv): Make these
	public.
	(suppression_base::{g,s}et_drops_artifact_from_ir): Declare new
	member functions.
	(type_suppression::{suppressed_type}): Likewise.
	(suppression_base::{names,sonames}_of_binaries_match): Remove
	member functions.
	(function_suppression::{get_name, set_name, get_name_regex_str,
	set_name_regex_str}): Renamed get_function_name,
	set_function_name, get_function_name_regex_str,
	set_function_name_regex_str into these.
	({variable,function}_suppression::{g,s}et_name_not_regex_str):
	Declare new member functions.
	* src/abg-suppression.cc: Include the new abg-suppression-priv.h
	private header.
	(class suppression_base::priv, class type_suppression::priv, class
	function_suppression::parameter_spec::priv, class
	function_suppression::priv, class variable_suppression::priv):
	Move these types to that new private header.
	(suppression_base::{g,s}et_drops_artifact_from_ir)
	(function_suppression::{g,s}et_name_not_regex_str)
	(variable_suppression::{g,s}et_name_not_regex_str): New member
	functions.
	(sonames_of_binaries_match): New static function, taken from
	suppression_base::sonames_of_binaries_match.
	(names_of_binaries_match): New static function, taken from
	suppression_base::names_of_binaries_match.
	(suppression_matches_type_no_name): New static function.
	(type_suppression::suppresses_type): Adjust
	(function_suppression::suppresses_function)
	(variable_suppression::suppresses_variable): Adjust.  Evaluate the
	new "name_not_regexp" property.
	(suppression_matches_type_name)
	(suppression_matches_type_location)
	(suppression_matches_type_name_or_location)
	(suppression_matches_function_name)
	(suppression_matches_function_sym_name)
	(suppression_matches_variable_name)
	(suppression_matches_variable_sym_name, suppression_matches_type):
	New functions.
	(read_type_suppression): Support the new "drop_artifacts" and
	"drop" properties.
	(read_function_suppression, read_variable_suppression): Support
	the new "drop_artifacts", "drop", and "name_not_regexp"
	properties.
	(function_suppression::{g,s}et_name): Renamed
	{g,s}et_function_name into these.
	(function_suppression::set_name_not_regex_str): Renamed
	{g,s}et_name_regex_str into this.
	(function_suppression::suppresses_function_symbol): Adjust.
	* include/abg-dwarf-reader.h (add_read_context_suppressions):
	Declare new function.
	* src/abg-dwarf-reader.cc: Use the new private
	abg-suppression-priv.h header file.
	(read_context::supprs_): New data member.
	(read_context::get_suppressions): New member function.
	(read_context::get_die_source): Make this const.
	(read_context::tu_die_imported_unit_points_map): Add a const
	overload.
	(read_context::cur_transl_unit): Renamed current_translation_unit
	unit into this;
	(read_context::cur_tu): Remove or rename into cur_transl_unit.
	(get_scope_for_die, build_translation_unit_and_add_to_ir)
	(build_enum_type, build_pointer_type_def, build_reference_type)
	(build_function_type, build_array_type, build_function_decl):
	Adjust.
	(read_context::{suppression_can_match,
	suppression_matches_function_sym_name,
	suppression_matches_function_name,
	suppression_matches_variable_sym_name,
	suppression_matches_variable_name,
	suppression_matches_type_name_or_location,
	suppression_matches_type_name}): Add member functions.
	(die_signed_constant_attribute): Remove this as dead code.
	(die_location, die_loc_and_name)
	(find_import_unit_point_between_dies)
	(find_import_unit_point_before_die, get_parent_die): Make the
	read_context& parameter be const and adjust as required.
	(build_var_decl_if_not_suppressed, function_is_suppressed)
	(variable_is_suppressed, type_is_suppressed): Define new static
	functions.
	(add_read_context_suppressions): Define new function.
	(build_class_type_and_add_to_ir): Do not add suppressed static
	data members to the IR.
	(build_ir_node_from_die): Do not add suppressed enum types, class
	types, variables or functions to the IR.  Adjust for the
	read_context::cur_tu -> read_context::cur_transl_unit rename.
	* include/abg-reader.h (read_context_sptr): Declare new type.
	(create_native_xml_read_context, read_corpus_from_input)
	(add_read_context_suppressions): Declare new functions.
	* src/abg-reader.cc: Include the new private
	abg-suppression-priv.h header file.
	(read_context::m_exported_decls_builder): Renamed
	m_exported_decls_builder_ into this.
	(read_context::get_exported_decls_builder): Adjust.
	(read_context::get_cur_scope): Make this const.
	(read_location): Take a const read_context and adjust.
	(read_corpus_from_input): Make this non-static.
	(build_namespace_decl): Don't abort if trying to add an artifact
	to the IR doesn't succeed.  It might be suppressed now.
	(read_context::{m_path, m_supprs}): New data members.
	(read_context::{g,s}et_path): New member functions.
	(read_context::{get_suppressions,
	suppression_matches_function_name, suppression_can_match,
	suppression_matches_function_name,
	suppression_matches_function_sym_name,
	suppression_matches_variable_name,
	suppression_matches_variable_sym_name,
	suppression_matches_type_name_or_location}): Likewise.
	(add_read_context_suppressions, create_native_xml_read_context)
	(read_corpus_from_native_xml): New functions.
	(build_function_decl_if_not_suppressed, function_is_suppressed)
	(type_is_suppressed, build_var_decl_if_not_suppressed)
	(variable_is_suppressed, build_enum_type_decl_if_not_suppressed)
	(build_class_decl_if_not_suppressed): New static functions.
	(build_class_decl): Add member types that are being built early,
	so that their sub-types can be evaluated for suppression.  Do not
	add suppressed static data members or suppressed member functions
	to the IR.
	(build_type): Do not add an enum type or a class type to the IR if
	they are suppressed.
	(handle_enum_type_decl): Do not add an enum type to the IR if its
	suppressed.
	(handle_var_decl): Likewise for a variable decl.
	(handle_function_decl): Likewise for a function decl.
	(handle_class_decl): Likewise for a class decl.
	* src/abg-tools-utils.cc (handle_fts_entry): Drop suppressed ABI
	from the IR.
	* tools/abidiff.cc (display_usage): Fix help strings for
	--headers-dirs{1,2}.
	(set_suppressions): New static function.
	(main): Adjust.  Release the memory used by read_context early.
	* tools/abidw.cc (options::{headers_dir, suppression_paths}):
	(display_usage): New help strings for the new --header-dir and
	--suppressions options.
	(parse_command_line): Parse the new --header-dir and
	--suppressions options.
	(maybe_check_suppression_files, set_suppressions): New static
	functions.
	(main): Use the two new functions above.  Free the memory used by
	the read context before working with the corpus.
	* tools/abilint.cc (options::suppression_paths):
	(display_usage): New help strings for the new --header-dir and
	--suppressions options.
	(parse_command_line): Parse the new --header-dir and
	--suppressions options.
	(maybe_check_suppression_files, set_suppressions): New static
	functions.
	(main): Use the two new functions above.  Free the memory used by
	the read context before working with the corpus.
	* tests/data/test-diff-suppr/test24-soname-suppr-{2,3].txt:
	Adjust.
	* tests/data/test-diff-suppr/test29-suppr-6.txt: Likewise.
	* tests/data/test-diff-suppr/test29-suppr-8.txt: Likewise.
	* tests/data/test-diff-suppr/libtest31-v{0,1}.so: New test input.
	* tests/data/test-diff-suppr/libtest31.suppr: Likewise
	* tests/data/test-diff-suppr/libtest32-v{0,1}.so: Likewise.
	* tests/data/test-diff-suppr/libtest32-0.suppr: Likewise.
	* tests/data/test-diff-suppr/libtest33-v{0,1}.so: Likewise.
	* tests/data/test-diff-suppr/test31-report-{0,1}.txt: Likewise.
	* tests/data/test-diff-suppr/test31-v{0,1}.cc: Likewise.
	* tests/data/test-diff-suppr/test32-report-{0,1}.txt: Likewise.
	* tests/data/test-diff-suppr/test32-v{0,1}.c: Likewise.
	* tests/data/test-diff-suppr/test33-suppr-1.txt: Likewise.
	* tests/data/test-diff-suppr/test33-v{0,1}.cc: Likewise.
	* tests/data/test-diff-suppr/test33-v{0,1}.h: Likewise.
	* tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi:
	Likewise.
	* tests/data/test-read-dwarf/libtest24-drop-fns.so: Likewise.
	* tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Likewise.
	* tests/data/test-read-dwarf/test24-drop-fns-0.suppr: Likewise.
	* tests/data/test-read-dwarf/test24-drop-fns.cc: Likewise.
	* tests/data/test-read-write/test28-drop-std-fns.abignore:
	Likewise.
	* tests/data/test-read-write/test28-drop-std-vars.abignore:
	Likewise.
	* tests/data/test-read-write/test28-without-std-fns-ref.xml:
	Likewise.
	* tests/data/test-read-write/test28-without-std-fns.xml: Likewise.
	* tests/data/test-read-write/test28-without-std-vars-ref.xml:
	Likewise.
	* tests/data/test-read-write/test28-without-std-vars.xml:
	Likewise.
	* tests/data/test-read-write/test28.xml: Likewise.
	* tests/data/Makefile.am: Add the new test artifacts to source
	distribution.
	* tests/test-diff-suppr.cc (in_out_spec): Take the new test inputs
	into account.
	* tests/test-read-dwarf.cc (Inoutspec::in_suppr_spec_path): New
	data member.
	(in_out_spec): Adjust.  The new test inputs into account.
	(set_suppressions): New static function.
	(handle_in_out_spec): Adjust.
	* tests/test-read-write.cc (Inoutspec::{in_suppr_spec_path,
	ref_out_path}): New data members.
	(in_out_spec): Adjust.  Take new test inputs into account.
	(main): Adjust.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
2016-09-21 18:35:08 +02:00

842 lines
57 KiB
XML

<abi-corpus path='tests/data/test-read-dwarf/libtest24-drop-fns.so' architecture='elf-amd-x86_64'>
<elf-needed>
<dependency name='libgcc_s.so.1'/>
<dependency name='libc.so.6'/>
</elf-needed>
<elf-function-symbols>
<elf-symbol name='_Z3barRKSs' type='func-type' binding='global-binding' is-defined='yes'/>
<elf-symbol name='_Z3fooRKSs' type='func-type' binding='global-binding' is-defined='yes'/>
<elf-symbol name='_ZNSt11char_traitsIcE6lengthEPKc' type='func-type' binding='weak-binding' is-defined='yes'/>
<elf-symbol name='_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_' 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>
<abi-instr version='1.0' address-size='64' path='test24-drop-fns.cc' language='LANG_C_plus_plus'>
<namespace-decl name='std'>
<namespace-decl name='__debug'>
</namespace-decl>
<class-decl name='basic_ostream&lt;char, std::char_traits&lt;char&gt; &gt;' visibility='default' is-declaration-only='yes' id='type-id-1'/>
<typedef-decl name='ostream' type-id='type-id-1' filepath='/usr/include/c++/5.3.1/iosfwd' line='141' column='1' id='type-id-2'/>
<var-decl name='cout' type-id='type-id-2' mangled-name='_ZSt4cout' visibility='default' filepath='/usr/include/c++/5.3.1/iostream' line='61' column='1'/>
<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++/5.3.1/bits/basic_string.h' line='2510' column='1' id='type-id-3'>
<member-type access='private'>
<class-decl name='_Alloc_hider' size-in-bits='64' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2670' column='1' id='type-id-4'>
<base-class access='public' layout-offset-in-bits='0' type-id='type-id-5'/>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='_M_p' type-id='type-id-6' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2675' column='1'/>
</data-member>
</class-decl>
</member-type>
<member-type access='public'>
<typedef-decl name='size_type' type-id='type-id-8' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2519' column='1' id='type-id-7'/>
</member-type>
<member-type access='public'>
<typedef-decl name='allocator_type' type-id='type-id-5' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2518' column='1' id='type-id-9'/>
</member-type>
<member-type access='public'>
<typedef-decl name='reference' type-id='type-id-11' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2521' column='1' id='type-id-10'/>
</member-type>
<member-type access='public'>
<typedef-decl name='const_reference' type-id='type-id-13' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2522' column='1' id='type-id-12'/>
</member-type>
<member-type access='public'>
<typedef-decl name='iterator' type-id='type-id-15' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2525' column='1' id='type-id-14'/>
</member-type>
<member-type access='public'>
<typedef-decl name='const_iterator' type-id='type-id-17' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2527' column='1' id='type-id-16'/>
</member-type>
<member-type access='public'>
<typedef-decl name='const_reverse_iterator' type-id='type-id-19' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2528' column='1' id='type-id-18'/>
</member-type>
<member-type access='public'>
<typedef-decl name='reverse_iterator' type-id='type-id-21' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2529' column='1' id='type-id-20'/>
</member-type>
<member-type access='private'>
<class-decl name='_Rep_base' size-in-bits='192' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2546' column='1' id='type-id-22'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='_M_length' type-id='type-id-7' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2548' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='_M_capacity' type-id='type-id-7' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2549' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
<var-decl name='_M_refcount' type-id='type-id-23' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2550' column='1'/>
</data-member>
</class-decl>
</member-type>
<member-type access='private'>
<class-decl name='_Rep' size-in-bits='192' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2553' column='1' id='type-id-24'>
<base-class access='public' layout-offset-in-bits='0' type-id='type-id-22'/>
<data-member access='public' static='yes'>
<var-decl name='_S_max_size' type-id='type-id-25' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.tcc' line='494' column='1'/>
</data-member>
<data-member access='public' static='yes'>
<var-decl name='_S_terminal' type-id='type-id-26' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.tcc' line='499' column='1'/>
</data-member>
</class-decl>
</member-type>
<data-member access='public' static='yes'>
<var-decl name='npos' type-id='type-id-25' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2683' column='1'/>
</data-member>
<data-member access='private' layout-offset-in-bits='0'>
<var-decl name='_M_dataplus' type-id='type-id-4' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2687' column='1'/>
</data-member>
</class-decl>
<class-decl name='allocator&lt;char&gt;' size-in-bits='8' visibility='default' filepath='/usr/include/c++/5.3.1/bits/allocator.h' line='92' column='1' id='type-id-5'>
<base-class access='public' layout-offset-in-bits='0' type-id='type-id-27'/>
<member-type access='public'>
<typedef-decl name='size_type' type-id='type-id-28' filepath='/usr/include/c++/5.3.1/bits/allocator.h' line='95' column='1' id='type-id-8'/>
</member-type>
<member-type access='public'>
<typedef-decl name='reference' type-id='type-id-29' filepath='/usr/include/c++/5.3.1/bits/allocator.h' line='99' column='1' id='type-id-11'/>
</member-type>
<member-type access='public'>
<typedef-decl name='const_reference' type-id='type-id-30' filepath='/usr/include/c++/5.3.1/bits/allocator.h' line='100' column='1' id='type-id-13'/>
</member-type>
</class-decl>
<typedef-decl name='size_t' type-id='type-id-31' filepath='/usr/include/c++/5.3.1/x86_64-redhat-linux/bits/c++config.h' line='1969' column='1' id='type-id-28'/>
<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-19'/>
<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-21'/>
<class-decl name='char_traits&lt;char&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/bits/char_traits.h' line='233' column='1' id='type-id-32'>
<member-type access='public'>
<typedef-decl name='char_type' type-id='type-id-34' filepath='/usr/include/c++/5.3.1/bits/char_traits.h' line='235' column='1' id='type-id-33'/>
</member-type>
<member-type access='public'>
<typedef-decl name='int_type' type-id='type-id-36' filepath='/usr/include/c++/5.3.1/bits/char_traits.h' line='236' column='1' id='type-id-35'/>
</member-type>
</class-decl>
<typedef-decl name='string' type-id='type-id-3' filepath='/usr/include/c++/5.3.1/bits/stringfwd.h' line='74' column='1' id='type-id-37'/>
</namespace-decl>
<namespace-decl name='__gnu_cxx'>
<namespace-decl name='__ops'>
</namespace-decl>
<class-decl name='new_allocator&lt;char&gt;' size-in-bits='8' visibility='default' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='58' column='1' id='type-id-27'>
<member-type access='public'>
<typedef-decl name='size_type' type-id='type-id-28' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='61' column='1' id='type-id-38'/>
</member-type>
<member-type access='public'>
<typedef-decl name='pointer' type-id='type-id-6' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='63' column='1' id='type-id-39'/>
</member-type>
<member-type access='public'>
<typedef-decl name='const_pointer' type-id='type-id-41' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='64' column='1' id='type-id-40'/>
</member-type>
<member-type access='public'>
<typedef-decl name='reference' type-id='type-id-29' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='65' column='1' id='type-id-42'/>
</member-type>
<member-type access='public'>
<typedef-decl name='const_reference' type-id='type-id-30' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='66' column='1' id='type-id-43'/>
</member-type>
<member-function access='public'>
<function-decl name='new_allocator' mangled-name='_ZN9__gnu_cxx13new_allocatorIcEC4Ev' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='79' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-44' is-artificial='yes'/>
<return type-id='type-id-45'/>
</function-decl>
</member-function>
<member-function access='public'>
<function-decl name='new_allocator' mangled-name='_ZN9__gnu_cxx13new_allocatorIcEC4ERKS1_' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='81' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-44' is-artificial='yes'/>
<parameter type-id='type-id-46'/>
<return type-id='type-id-45'/>
</function-decl>
</member-function>
<member-function access='public' destructor='yes'>
<function-decl name='~new_allocator' mangled-name='_ZN9__gnu_cxx13new_allocatorIcED4Ev' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='86' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-44' is-artificial='yes'/>
<parameter type-id='type-id-36' is-artificial='yes'/>
<return type-id='type-id-45'/>
</function-decl>
</member-function>
<member-function access='public'>
<function-decl name='address' mangled-name='_ZNK9__gnu_cxx13new_allocatorIcE7addressERc' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='89' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-47' is-artificial='yes'/>
<parameter type-id='type-id-42'/>
<return type-id='type-id-39'/>
</function-decl>
</member-function>
<member-function access='public'>
<function-decl name='address' mangled-name='_ZNK9__gnu_cxx13new_allocatorIcE7addressERKc' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='93' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-47' is-artificial='yes'/>
<parameter type-id='type-id-43'/>
<return type-id='type-id-40'/>
</function-decl>
</member-function>
<member-function access='public'>
<function-decl name='allocate' mangled-name='_ZN9__gnu_cxx13new_allocatorIcE8allocateEmPKv' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='99' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-44' is-artificial='yes'/>
<parameter type-id='type-id-38'/>
<parameter type-id='type-id-48'/>
<return type-id='type-id-39'/>
</function-decl>
</member-function>
<member-function access='public'>
<function-decl name='deallocate' mangled-name='_ZN9__gnu_cxx13new_allocatorIcE10deallocateEPcm' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='109' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-44' is-artificial='yes'/>
<parameter type-id='type-id-39'/>
<parameter type-id='type-id-38'/>
<return type-id='type-id-45'/>
</function-decl>
</member-function>
<member-function access='public'>
<function-decl name='max_size' mangled-name='_ZNK9__gnu_cxx13new_allocatorIcE8max_sizeEv' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='113' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-47' is-artificial='yes'/>
<return type-id='type-id-38'/>
</function-decl>
</member-function>
<member-function access='public'>
<function-decl name='construct' mangled-name='_ZN9__gnu_cxx13new_allocatorIcE9constructEPcRKc' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='129' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-44' is-artificial='yes'/>
<parameter type-id='type-id-39'/>
<parameter type-id='type-id-30'/>
<return type-id='type-id-45'/>
</function-decl>
</member-function>
<member-function access='public'>
<function-decl name='destroy' mangled-name='_ZN9__gnu_cxx13new_allocatorIcE7destroyEPc' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='133' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-44' is-artificial='yes'/>
<parameter type-id='type-id-39'/>
<return type-id='type-id-45'/>
</function-decl>
</member-function>
</class-decl>
<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-15'/>
<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-17'/>
<class-decl name='__numeric_traits_integer&lt;int&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-49'>
<data-member access='public' static='yes'>
<var-decl name='__min' type-id='type-id-50' mangled-name='_ZN9__gnu_cxx24__numeric_traits_integerIiE5__minE' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='58' column='1'/>
</data-member>
<data-member access='public' static='yes'>
<var-decl name='__max' type-id='type-id-50' mangled-name='_ZN9__gnu_cxx24__numeric_traits_integerIiE5__maxE' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='59' column='1'/>
</data-member>
<data-member access='public' static='yes'>
<var-decl name='__is_signed' type-id='type-id-51' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='63' column='1'/>
</data-member>
<data-member access='public' static='yes'>
<var-decl name='__digits' type-id='type-id-50' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='64' column='1'/>
</data-member>
</class-decl>
<class-decl name='__numeric_traits_integer&lt;long unsigned int&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-52'>
<data-member access='public' static='yes'>
<var-decl name='__min' type-id='type-id-53' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='58' column='1'/>
</data-member>
<data-member access='public' static='yes'>
<var-decl name='__max' type-id='type-id-53' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='59' column='1'/>
</data-member>
<data-member access='public' static='yes'>
<var-decl name='__is_signed' type-id='type-id-51' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='63' column='1'/>
</data-member>
<data-member access='public' static='yes'>
<var-decl name='__digits' type-id='type-id-50' mangled-name='_ZN9__gnu_cxx24__numeric_traits_integerImE8__digitsE' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='64' column='1'/>
</data-member>
</class-decl>
<class-decl name='__numeric_traits_integer&lt;char&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-54'>
<data-member access='public' static='yes'>
<var-decl name='__min' type-id='type-id-26' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='58' column='1'/>
</data-member>
<data-member access='public' static='yes'>
<var-decl name='__max' type-id='type-id-26' mangled-name='_ZN9__gnu_cxx24__numeric_traits_integerIcE5__maxE' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='59' column='1'/>
</data-member>
<data-member access='public' static='yes'>
<var-decl name='__is_signed' type-id='type-id-51' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='63' column='1'/>
</data-member>
<data-member access='public' static='yes'>
<var-decl name='__digits' type-id='type-id-50' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='64' column='1'/>
</data-member>
</class-decl>
<class-decl name='__numeric_traits_integer&lt;short int&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-55'>
<data-member access='public' static='yes'>
<var-decl name='__min' type-id='type-id-56' mangled-name='_ZN9__gnu_cxx24__numeric_traits_integerIsE5__minE' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='58' column='1'/>
</data-member>
<data-member access='public' static='yes'>
<var-decl name='__max' type-id='type-id-56' mangled-name='_ZN9__gnu_cxx24__numeric_traits_integerIsE5__maxE' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='59' column='1'/>
</data-member>
<data-member access='public' static='yes'>
<var-decl name='__is_signed' type-id='type-id-51' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='63' column='1'/>
</data-member>
<data-member access='public' static='yes'>
<var-decl name='__digits' type-id='type-id-50' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='64' column='1'/>
</data-member>
</class-decl>
<class-decl name='__numeric_traits_integer&lt;long int&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-57'>
<data-member access='public' static='yes'>
<var-decl name='__min' type-id='type-id-58' mangled-name='_ZN9__gnu_cxx24__numeric_traits_integerIlE5__minE' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='58' column='1'/>
</data-member>
<data-member access='public' static='yes'>
<var-decl name='__max' type-id='type-id-58' mangled-name='_ZN9__gnu_cxx24__numeric_traits_integerIlE5__maxE' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='59' column='1'/>
</data-member>
<data-member access='public' static='yes'>
<var-decl name='__is_signed' type-id='type-id-51' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='63' column='1'/>
</data-member>
<data-member access='public' static='yes'>
<var-decl name='__digits' type-id='type-id-50' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='64' column='1'/>
</data-member>
</class-decl>
</namespace-decl>
<type-decl name='unsigned long int' size-in-bits='64' id='type-id-31'/>
<type-decl name='char' size-in-bits='8' id='type-id-34'/>
<pointer-type-def type-id='type-id-34' size-in-bits='64' id='type-id-6'/>
<qualified-type-def type-id='type-id-34' const='yes' id='type-id-26'/>
<pointer-type-def type-id='type-id-26' size-in-bits='64' id='type-id-41'/>
<reference-type-def kind='lvalue' type-id='type-id-34' size-in-bits='64' id='type-id-29'/>
<reference-type-def kind='lvalue' type-id='type-id-26' size-in-bits='64' id='type-id-30'/>
<pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-44'/>
<type-decl name='void' id='type-id-45'/>
<qualified-type-def type-id='type-id-27' const='yes' id='type-id-59'/>
<reference-type-def kind='lvalue' type-id='type-id-59' size-in-bits='64' id='type-id-46'/>
<type-decl name='int' size-in-bits='32' id='type-id-36'/>
<pointer-type-def type-id='type-id-59' size-in-bits='64' id='type-id-47'/>
<pointer-type-def type-id='type-id-45' size-in-bits='64' id='type-id-48'/>
<qualified-type-def type-id='type-id-36' const='yes' id='type-id-50'/>
<type-decl name='bool' size-in-bits='8' id='type-id-60'/>
<qualified-type-def type-id='type-id-60' const='yes' id='type-id-51'/>
<qualified-type-def type-id='type-id-31' const='yes' id='type-id-53'/>
<type-decl name='short int' size-in-bits='16' id='type-id-61'/>
<qualified-type-def type-id='type-id-61' const='yes' id='type-id-56'/>
<type-decl name='long int' size-in-bits='64' id='type-id-62'/>
<qualified-type-def type-id='type-id-62' const='yes' id='type-id-58'/>
<typedef-decl name='_Atomic_word' type-id='type-id-36' filepath='/usr/include/c++/5.3.1/x86_64-redhat-linux/bits/atomic_word.h' line='32' column='1' id='type-id-23'/>
<qualified-type-def type-id='type-id-7' const='yes' id='type-id-25'/>
<pointer-type-def type-id='type-id-5' size-in-bits='64' id='type-id-63'/>
<qualified-type-def type-id='type-id-5' const='yes' id='type-id-64'/>
<reference-type-def kind='lvalue' type-id='type-id-64' size-in-bits='64' id='type-id-65'/>
<pointer-type-def type-id='type-id-4' size-in-bits='64' id='type-id-66'/>
<reference-type-def kind='lvalue' type-id='type-id-24' size-in-bits='64' id='type-id-67'/>
<qualified-type-def type-id='type-id-24' const='yes' id='type-id-68'/>
<pointer-type-def type-id='type-id-68' size-in-bits='64' id='type-id-69'/>
<pointer-type-def type-id='type-id-24' size-in-bits='64' id='type-id-70'/>
<qualified-type-def type-id='type-id-3' const='yes' id='type-id-71'/>
<pointer-type-def type-id='type-id-71' size-in-bits='64' id='type-id-72'/>
<pointer-type-def type-id='type-id-3' size-in-bits='64' id='type-id-73'/>
<reference-type-def kind='lvalue' type-id='type-id-71' size-in-bits='64' id='type-id-74'/>
<reference-type-def kind='lvalue' type-id='type-id-3' size-in-bits='64' id='type-id-75'/>
<type-decl name='unsigned int' size-in-bits='32' id='type-id-76'/>
<typedef-decl name='wint_t' type-id='type-id-76' filepath='/usr/lib/gcc/x86_64-redhat-linux/5.3.1/include/stddef.h' line='357' column='1' id='type-id-77'/>
<function-decl name='btowc' filepath='/usr/include/wchar.h' line='353' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-36'/>
<return type-id='type-id-77'/>
</function-decl>
<class-decl name='_IO_FILE' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-78'/>
<typedef-decl name='__FILE' type-id='type-id-78' filepath='/usr/include/stdio.h' line='64' column='1' id='type-id-79'/>
<pointer-type-def type-id='type-id-79' size-in-bits='64' id='type-id-80'/>
<function-decl name='fgetwc' filepath='/usr/include/wchar.h' line='745' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-80'/>
<return type-id='type-id-77'/>
</function-decl>
<type-decl name='wchar_t' size-in-bits='32' id='type-id-81'/>
<pointer-type-def type-id='type-id-81' size-in-bits='64' id='type-id-82'/>
<function-decl name='fgetws' filepath='/usr/include/wchar.h' line='774' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-82'/>
<parameter type-id='type-id-36'/>
<parameter type-id='type-id-80'/>
<return type-id='type-id-82'/>
</function-decl>
<function-decl name='fputwc' filepath='/usr/include/wchar.h' line='759' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-81'/>
<parameter type-id='type-id-80'/>
<return type-id='type-id-77'/>
</function-decl>
<qualified-type-def type-id='type-id-81' const='yes' id='type-id-83'/>
<pointer-type-def type-id='type-id-83' size-in-bits='64' id='type-id-84'/>
<function-decl name='fputws' filepath='/usr/include/wchar.h' line='781' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-80'/>
<return type-id='type-id-36'/>
</function-decl>
<function-decl name='fwide' filepath='/usr/include/wchar.h' line='587' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-80'/>
<parameter type-id='type-id-36'/>
<return type-id='type-id-36'/>
</function-decl>
<function-decl name='fwprintf' filepath='/usr/include/wchar.h' line='594' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-80'/>
<parameter type-id='type-id-84'/>
<parameter is-variadic='yes'/>
<return type-id='type-id-36'/>
</function-decl>
<function-decl name='fwscanf' filepath='/usr/include/wchar.h' line='635' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-80'/>
<parameter type-id='type-id-84'/>
<parameter is-variadic='yes'/>
<return type-id='type-id-36'/>
</function-decl>
<function-decl name='getwc' filepath='/usr/include/wchar.h' line='746' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-80'/>
<return type-id='type-id-77'/>
</function-decl>
<function-decl name='getwchar' filepath='/usr/include/wchar.h' line='752' column='1' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-77'/>
</function-decl>
<typedef-decl name='size_t' type-id='type-id-31' filepath='/usr/lib/gcc/x86_64-redhat-linux/5.3.1/include/stddef.h' line='216' column='1' id='type-id-85'/>
<class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/wchar.h' line='83' column='1' id='type-id-86'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='__count' type-id='type-id-36' visibility='default' filepath='/usr/include/wchar.h' line='84' column='1'/>
</data-member>
</class-decl>
<typedef-decl name='__mbstate_t' type-id='type-id-86' filepath='/usr/include/wchar.h' line='94' column='1' id='type-id-87'/>
<typedef-decl name='mbstate_t' type-id='type-id-87' filepath='/usr/include/wchar.h' line='106' column='1' id='type-id-88'/>
<pointer-type-def type-id='type-id-88' size-in-bits='64' id='type-id-89'/>
<function-decl name='mbrlen' filepath='/usr/include/wchar.h' line='376' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-41'/>
<parameter type-id='type-id-85'/>
<parameter type-id='type-id-89'/>
<return type-id='type-id-85'/>
</function-decl>
<function-decl name='mbrtowc' filepath='/usr/include/wchar.h' line='365' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-82'/>
<parameter type-id='type-id-41'/>
<parameter type-id='type-id-85'/>
<parameter type-id='type-id-89'/>
<return type-id='type-id-85'/>
</function-decl>
<qualified-type-def type-id='type-id-88' const='yes' id='type-id-90'/>
<pointer-type-def type-id='type-id-90' size-in-bits='64' id='type-id-91'/>
<function-decl name='mbsinit' filepath='/usr/include/wchar.h' line='361' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-91'/>
<return type-id='type-id-36'/>
</function-decl>
<pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-92'/>
<function-decl name='mbsrtowcs' filepath='/usr/include/wchar.h' line='408' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-82'/>
<parameter type-id='type-id-92'/>
<parameter type-id='type-id-85'/>
<parameter type-id='type-id-89'/>
<return type-id='type-id-85'/>
</function-decl>
<function-decl name='putwc' filepath='/usr/include/wchar.h' line='760' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-81'/>
<parameter type-id='type-id-80'/>
<return type-id='type-id-77'/>
</function-decl>
<function-decl name='putwchar' filepath='/usr/include/wchar.h' line='766' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-81'/>
<return type-id='type-id-77'/>
</function-decl>
<function-decl name='swprintf' filepath='/usr/include/wchar.h' line='604' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-82'/>
<parameter type-id='type-id-85'/>
<parameter type-id='type-id-84'/>
<parameter is-variadic='yes'/>
<return type-id='type-id-36'/>
</function-decl>
<function-decl name='swscanf' filepath='/usr/include/wchar.h' line='645' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-84'/>
<parameter is-variadic='yes'/>
<return type-id='type-id-36'/>
</function-decl>
<function-decl name='ungetwc' filepath='/usr/include/wchar.h' line='789' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-77'/>
<parameter type-id='type-id-80'/>
<return type-id='type-id-77'/>
</function-decl>
<class-decl name='typedef __va_list_tag __va_list_tag' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-93'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='gp_offset' type-id='type-id-76' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
<var-decl name='fp_offset' type-id='type-id-76' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='overflow_arg_area' type-id='type-id-48' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
<var-decl name='reg_save_area' type-id='type-id-48' visibility='default'/>
</data-member>
</class-decl>
<pointer-type-def type-id='type-id-93' size-in-bits='64' id='type-id-94'/>
<function-decl name='vfwprintf' filepath='/usr/include/wchar.h' line='612' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-80'/>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-94'/>
<return type-id='type-id-36'/>
</function-decl>
<function-decl name='vfwscanf' filepath='/usr/include/wchar.h' line='689' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-80'/>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-94'/>
<return type-id='type-id-36'/>
</function-decl>
<function-decl name='vswprintf' filepath='/usr/include/wchar.h' line='625' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-82'/>
<parameter type-id='type-id-85'/>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-94'/>
<return type-id='type-id-36'/>
</function-decl>
<function-decl name='vswscanf' filepath='/usr/include/wchar.h' line='701' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-94'/>
<return type-id='type-id-36'/>
</function-decl>
<function-decl name='vwprintf' filepath='/usr/include/wchar.h' line='620' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-94'/>
<return type-id='type-id-36'/>
</function-decl>
<function-decl name='vwscanf' filepath='/usr/include/wchar.h' line='697' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-94'/>
<return type-id='type-id-36'/>
</function-decl>
<function-decl name='wcrtomb' filepath='/usr/include/wchar.h' line='370' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-6'/>
<parameter type-id='type-id-81'/>
<parameter type-id='type-id-89'/>
<return type-id='type-id-85'/>
</function-decl>
<function-decl name='wcscat' filepath='/usr/include/wchar.h' line='155' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-82'/>
<parameter type-id='type-id-84'/>
<return type-id='type-id-82'/>
</function-decl>
<function-decl name='wcscmp' filepath='/usr/include/wchar.h' line='163' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-84'/>
<return type-id='type-id-36'/>
</function-decl>
<function-decl name='wcscoll' filepath='/usr/include/wchar.h' line='192' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-84'/>
<return type-id='type-id-36'/>
</function-decl>
<function-decl name='wcscpy' filepath='/usr/include/wchar.h' line='147' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-82'/>
<parameter type-id='type-id-84'/>
<return type-id='type-id-82'/>
</function-decl>
<function-decl name='wcscspn' filepath='/usr/include/wchar.h' line='252' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-84'/>
<return type-id='type-id-85'/>
</function-decl>
<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-95'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='tm_sec' type-id='type-id-36' visibility='default' filepath='/usr/include/time.h' line='135' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
<var-decl name='tm_min' type-id='type-id-36' visibility='default' filepath='/usr/include/time.h' line='136' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='tm_hour' type-id='type-id-36' visibility='default' filepath='/usr/include/time.h' line='137' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='96'>
<var-decl name='tm_mday' type-id='type-id-36' visibility='default' filepath='/usr/include/time.h' line='138' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
<var-decl name='tm_mon' type-id='type-id-36' visibility='default' filepath='/usr/include/time.h' line='139' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='160'>
<var-decl name='tm_year' type-id='type-id-36' visibility='default' filepath='/usr/include/time.h' line='140' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
<var-decl name='tm_wday' type-id='type-id-36' visibility='default' filepath='/usr/include/time.h' line='141' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='224'>
<var-decl name='tm_yday' type-id='type-id-36' visibility='default' filepath='/usr/include/time.h' line='142' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
<var-decl name='tm_isdst' type-id='type-id-36' visibility='default' filepath='/usr/include/time.h' line='143' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
<var-decl name='tm_gmtoff' type-id='type-id-62' visibility='default' filepath='/usr/include/time.h' line='146' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
<var-decl name='tm_zone' type-id='type-id-41' visibility='default' filepath='/usr/include/time.h' line='147' column='1'/>
</data-member>
</class-decl>
<qualified-type-def type-id='type-id-95' const='yes' id='type-id-96'/>
<pointer-type-def type-id='type-id-96' size-in-bits='64' id='type-id-97'/>
<function-decl name='wcsftime' filepath='/usr/include/wchar.h' line='855' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-82'/>
<parameter type-id='type-id-85'/>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-97'/>
<return type-id='type-id-85'/>
</function-decl>
<function-decl name='wcslen' filepath='/usr/include/wchar.h' line='287' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-84'/>
<return type-id='type-id-85'/>
</function-decl>
<function-decl name='wcsncat' filepath='/usr/include/wchar.h' line='158' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-82'/>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-85'/>
<return type-id='type-id-82'/>
</function-decl>
<function-decl name='wcsncmp' filepath='/usr/include/wchar.h' line='166' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-85'/>
<return type-id='type-id-36'/>
</function-decl>
<function-decl name='wcsncpy' filepath='/usr/include/wchar.h' line='150' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-82'/>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-85'/>
<return type-id='type-id-82'/>
</function-decl>
<pointer-type-def type-id='type-id-84' size-in-bits='64' id='type-id-98'/>
<function-decl name='wcsrtombs' filepath='/usr/include/wchar.h' line='414' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-6'/>
<parameter type-id='type-id-98'/>
<parameter type-id='type-id-85'/>
<parameter type-id='type-id-89'/>
<return type-id='type-id-85'/>
</function-decl>
<function-decl name='wcsspn' filepath='/usr/include/wchar.h' line='256' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-84'/>
<return type-id='type-id-85'/>
</function-decl>
<type-decl name='double' size-in-bits='64' id='type-id-99'/>
<pointer-type-def type-id='type-id-82' size-in-bits='64' id='type-id-100'/>
<function-decl name='wcstod' filepath='/usr/include/wchar.h' line='450' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-100'/>
<return type-id='type-id-99'/>
</function-decl>
<type-decl name='float' size-in-bits='32' id='type-id-101'/>
<function-decl name='wcstof' filepath='/usr/include/wchar.h' line='457' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-100'/>
<return type-id='type-id-101'/>
</function-decl>
<function-decl name='wcstok' filepath='/usr/include/wchar.h' line='282' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-82'/>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-100'/>
<return type-id='type-id-82'/>
</function-decl>
<function-decl name='wcstol' filepath='/usr/include/wchar.h' line='468' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-100'/>
<parameter type-id='type-id-36'/>
<return type-id='type-id-62'/>
</function-decl>
<function-decl name='wcstoul' filepath='/usr/include/wchar.h' line='473' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-100'/>
<parameter type-id='type-id-36'/>
<return type-id='type-id-31'/>
</function-decl>
<function-decl name='wcsxfrm' filepath='/usr/include/wchar.h' line='196' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-82'/>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-85'/>
<return type-id='type-id-85'/>
</function-decl>
<function-decl name='wctob' filepath='/usr/include/wchar.h' line='357' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-77'/>
<return type-id='type-id-36'/>
</function-decl>
<function-decl name='wmemcmp' filepath='/usr/include/wchar.h' line='325' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-85'/>
<return type-id='type-id-36'/>
</function-decl>
<function-decl name='wmemcpy' filepath='/usr/include/wchar.h' line='329' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-82'/>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-85'/>
<return type-id='type-id-82'/>
</function-decl>
<function-decl name='wmemmove' filepath='/usr/include/wchar.h' line='334' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-82'/>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-85'/>
<return type-id='type-id-82'/>
</function-decl>
<function-decl name='wmemset' filepath='/usr/include/wchar.h' line='338' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-82'/>
<parameter type-id='type-id-81'/>
<parameter type-id='type-id-85'/>
<return type-id='type-id-82'/>
</function-decl>
<function-decl name='wprintf' filepath='/usr/include/wchar.h' line='601' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-84'/>
<parameter is-variadic='yes'/>
<return type-id='type-id-36'/>
</function-decl>
<function-decl name='wscanf' filepath='/usr/include/wchar.h' line='642' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-84'/>
<parameter is-variadic='yes'/>
<return type-id='type-id-36'/>
</function-decl>
<function-decl name='wcschr' mangled-name='wcschr' filepath='/usr/include/wchar.h' line='224' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-81'/>
<return type-id='type-id-84'/>
</function-decl>
<function-decl name='wcspbrk' mangled-name='wcspbrk' filepath='/usr/include/wchar.h' line='262' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-84'/>
<return type-id='type-id-84'/>
</function-decl>
<function-decl name='wcsrchr' mangled-name='wcsrchr' filepath='/usr/include/wchar.h' line='234' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-81'/>
<return type-id='type-id-84'/>
</function-decl>
<function-decl name='wcsstr' mangled-name='wcsstr' filepath='/usr/include/wchar.h' line='273' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-84'/>
<return type-id='type-id-84'/>
</function-decl>
<function-decl name='wmemchr' mangled-name='wmemchr' filepath='/usr/include/wchar.h' line='316' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-81'/>
<parameter type-id='type-id-85'/>
<return type-id='type-id-84'/>
</function-decl>
<type-decl name='long double' size-in-bits='128' id='type-id-102'/>
<function-decl name='wcstold' filepath='/usr/include/wchar.h' line='459' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-100'/>
<return type-id='type-id-102'/>
</function-decl>
<type-decl name='long long int' size-in-bits='64' id='type-id-103'/>
<function-decl name='wcstoll' filepath='/usr/include/wchar.h' line='483' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-100'/>
<parameter type-id='type-id-36'/>
<return type-id='type-id-103'/>
</function-decl>
<type-decl name='long long unsigned int' size-in-bits='64' id='type-id-104'/>
<function-decl name='wcstoull' filepath='/usr/include/wchar.h' line='490' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-84'/>
<parameter type-id='type-id-100'/>
<parameter type-id='type-id-36'/>
<return type-id='type-id-104'/>
</function-decl>
<namespace-decl name='__gnu_debug'>
</namespace-decl>
<function-decl name='setlocale' filepath='/usr/include/locale.h' line='124' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-36'/>
<parameter type-id='type-id-41'/>
<return type-id='type-id-6'/>
</function-decl>
<class-decl name='lconv' size-in-bits='768' is-struct='yes' visibility='default' filepath='/usr/include/locale.h' line='53' column='1' id='type-id-105'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='decimal_point' type-id='type-id-6' visibility='default' filepath='/usr/include/locale.h' line='57' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='thousands_sep' type-id='type-id-6' visibility='default' filepath='/usr/include/locale.h' line='58' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
<var-decl name='grouping' type-id='type-id-6' visibility='default' filepath='/usr/include/locale.h' line='64' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
<var-decl name='int_curr_symbol' type-id='type-id-6' visibility='default' filepath='/usr/include/locale.h' line='70' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
<var-decl name='currency_symbol' type-id='type-id-6' visibility='default' filepath='/usr/include/locale.h' line='71' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
<var-decl name='mon_decimal_point' type-id='type-id-6' visibility='default' filepath='/usr/include/locale.h' line='72' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
<var-decl name='mon_thousands_sep' type-id='type-id-6' visibility='default' filepath='/usr/include/locale.h' line='73' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
<var-decl name='mon_grouping' type-id='type-id-6' visibility='default' filepath='/usr/include/locale.h' line='74' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
<var-decl name='positive_sign' type-id='type-id-6' visibility='default' filepath='/usr/include/locale.h' line='75' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
<var-decl name='negative_sign' type-id='type-id-6' visibility='default' filepath='/usr/include/locale.h' line='76' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
<var-decl name='int_frac_digits' type-id='type-id-34' visibility='default' filepath='/usr/include/locale.h' line='77' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='648'>
<var-decl name='frac_digits' type-id='type-id-34' visibility='default' filepath='/usr/include/locale.h' line='78' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='656'>
<var-decl name='p_cs_precedes' type-id='type-id-34' visibility='default' filepath='/usr/include/locale.h' line='80' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='664'>
<var-decl name='p_sep_by_space' type-id='type-id-34' visibility='default' filepath='/usr/include/locale.h' line='82' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='672'>
<var-decl name='n_cs_precedes' type-id='type-id-34' visibility='default' filepath='/usr/include/locale.h' line='84' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='680'>
<var-decl name='n_sep_by_space' type-id='type-id-34' visibility='default' filepath='/usr/include/locale.h' line='86' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='688'>
<var-decl name='p_sign_posn' type-id='type-id-34' visibility='default' filepath='/usr/include/locale.h' line='93' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='696'>
<var-decl name='n_sign_posn' type-id='type-id-34' visibility='default' filepath='/usr/include/locale.h' line='94' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='704'>
<var-decl name='int_p_cs_precedes' type-id='type-id-34' visibility='default' filepath='/usr/include/locale.h' line='97' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='712'>
<var-decl name='int_p_sep_by_space' type-id='type-id-34' visibility='default' filepath='/usr/include/locale.h' line='99' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='720'>
<var-decl name='int_n_cs_precedes' type-id='type-id-34' visibility='default' filepath='/usr/include/locale.h' line='101' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='728'>
<var-decl name='int_n_sep_by_space' type-id='type-id-34' visibility='default' filepath='/usr/include/locale.h' line='103' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='736'>
<var-decl name='int_p_sign_posn' type-id='type-id-34' visibility='default' filepath='/usr/include/locale.h' line='110' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='744'>
<var-decl name='int_n_sign_posn' type-id='type-id-34' visibility='default' filepath='/usr/include/locale.h' line='111' column='1'/>
</data-member>
</class-decl>
<pointer-type-def type-id='type-id-105' size-in-bits='64' id='type-id-106'/>
<function-decl name='localeconv' filepath='/usr/include/locale.h' line='127' column='1' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-106'/>
</function-decl>
<typedef-decl name='wctype_t' type-id='type-id-31' filepath='/usr/include/wctype.h' line='52' column='1' id='type-id-107'/>
<function-decl name='iswctype' filepath='/usr/include/wctype.h' line='175' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-77'/>
<parameter type-id='type-id-107'/>
<return type-id='type-id-36'/>
</function-decl>
<typedef-decl name='__int32_t' type-id='type-id-36' filepath='/usr/include/bits/types.h' line='40' column='1' id='type-id-108'/>
<qualified-type-def type-id='type-id-108' const='yes' id='type-id-109'/>
<pointer-type-def type-id='type-id-109' size-in-bits='64' id='type-id-110'/>
<typedef-decl name='wctrans_t' type-id='type-id-110' filepath='/usr/include/wctype.h' line='186' column='1' id='type-id-111'/>
<function-decl name='towctrans' filepath='/usr/include/wctype.h' line='221' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-77'/>
<parameter type-id='type-id-111'/>
<return type-id='type-id-77'/>
</function-decl>
<function-decl name='wctrans' filepath='/usr/include/wctype.h' line='218' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-41'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='wctype' filepath='/usr/include/wctype.h' line='171' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-41'/>
<return type-id='type-id-107'/>
</function-decl>
<reference-type-def kind='lvalue' type-id='type-id-33' size-in-bits='64' id='type-id-112'/>
<qualified-type-def type-id='type-id-33' const='yes' id='type-id-113'/>
<reference-type-def kind='lvalue' type-id='type-id-113' size-in-bits='64' id='type-id-114'/>
<pointer-type-def type-id='type-id-113' size-in-bits='64' id='type-id-115'/>
<pointer-type-def type-id='type-id-33' size-in-bits='64' id='type-id-116'/>
<qualified-type-def type-id='type-id-35' const='yes' id='type-id-117'/>
<reference-type-def kind='lvalue' type-id='type-id-117' size-in-bits='64' id='type-id-118'/>
<qualified-type-def type-id='type-id-37' const='yes' id='type-id-119'/>
<reference-type-def kind='lvalue' type-id='type-id-119' size-in-bits='64' id='type-id-120'/>
<qualified-type-def type-id='type-id-120' id='type-id-121'/>
<function-decl name='foo' mangled-name='_Z3fooRKSs' filepath='/home/dodji/git/libabigail.git/suppr/tests/data/test-read-dwarf/test24-drop-fns.cc' line='14' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Z3fooRKSs'>
<parameter type-id='type-id-121' name='s' filepath='/home/dodji/git/libabigail.git/suppr/tests/data/test-read-dwarf/test24-drop-fns.cc' line='14' column='1'/>
<return type-id='type-id-37'/>
</function-decl>
<pointer-type-def type-id='type-id-2' size-in-bits='64' id='type-id-122'/>
<function-decl name='bar' mangled-name='_Z3barRKSs' filepath='/home/dodji/git/libabigail.git/suppr/tests/data/test-read-dwarf/test24-drop-fns.cc' line='21' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Z3barRKSs'>
<parameter type-id='type-id-121' name='str' filepath='/home/dodji/git/libabigail.git/suppr/tests/data/test-read-dwarf/test24-drop-fns.cc' line='21' column='1'/>
<return type-id='type-id-122'/>
</function-decl>
<var-decl name='__dso_handle' type-id='type-id-48' visibility='default'/>
</abi-instr>
</abi-corpus>