mirror of
git://sourceware.org/git/libabigail.git
synced 2024-12-16 23:14:36 +00:00
Improve and stabilise sort of member functions
The functor virtual_member_function_less_than did not take into account linkage name which can be the only difference when multiple destructors with differing mangled names are present. This change adds a check for linkage names and also flattens the control flow in the comparison method to make the logic clearer. Lastly, this change also uses std::stable_sort, in case all that remains is insertion order. * src/abg-ir.cc (virtual_member_function_less_than::operator()): Name temporaries like offsets and symbols to reduce repetition; test each pair of elements (including symbol presence) and return immediately if there's a difference; add a comparison of linkage name just after comparing symbol names. (sort_virtual_member_functions): Use stable_sort instead of sort. * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi: Update with new ordering of member functions. * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Likewise. Signed-off-by: Giuliano Procida <gprocida@google.com> Signed-off-by: Matthias Maennich <maennich@google.com>
This commit is contained in:
parent
b4ec62929c
commit
32343f8091
@ -20487,53 +20487,45 @@ struct virtual_member_function_less_than
|
||||
ABG_ASSERT(get_member_function_is_virtual(f));
|
||||
ABG_ASSERT(get_member_function_is_virtual(s));
|
||||
|
||||
if (get_member_function_vtable_offset(f)
|
||||
== get_member_function_vtable_offset(s))
|
||||
ssize_t f_offset = get_member_function_vtable_offset(f);
|
||||
ssize_t s_offset = get_member_function_vtable_offset(s);
|
||||
if (f_offset != s_offset) return f_offset < s_offset;
|
||||
|
||||
string fn, sn;
|
||||
|
||||
// If the functions have symbols, then compare their symbol-id
|
||||
// string.
|
||||
elf_symbol_sptr f_sym = f.get_symbol();
|
||||
elf_symbol_sptr s_sym = s.get_symbol();
|
||||
if ((!f_sym) != (!s_sym)) return !f_sym;
|
||||
if (f_sym && s_sym)
|
||||
{
|
||||
string fn, sn;
|
||||
|
||||
// If the functions have symbols, then compare their symbol-id
|
||||
// string.
|
||||
if (f.get_symbol() && s.get_symbol())
|
||||
{
|
||||
fn = f.get_symbol()->get_id_string();
|
||||
sn = s.get_symbol()->get_id_string();
|
||||
}
|
||||
else if (f.get_symbol())
|
||||
return false;
|
||||
else if (s.get_symbol())
|
||||
return true;
|
||||
else
|
||||
{
|
||||
// None of the functions have symbols, so compare their
|
||||
// pretty representation.
|
||||
if (fn.empty())
|
||||
{
|
||||
fn = f.get_pretty_representation();
|
||||
sn = s.get_pretty_representation();
|
||||
}
|
||||
}
|
||||
|
||||
/// If it's just the file paths that are different then sort
|
||||
/// them too.
|
||||
if (fn == sn)
|
||||
{
|
||||
string fn_filepath, sn_filepath;
|
||||
unsigned line = 0, column = 0;
|
||||
location fn_loc = f.get_location(), sn_loc = s.get_location();
|
||||
if (fn_loc)
|
||||
fn_loc.expand(fn_filepath, line, column);
|
||||
if (sn_loc)
|
||||
sn_loc.expand(sn_filepath, line, column);
|
||||
|
||||
if (!fn_filepath.empty() && !sn_filepath.empty())
|
||||
return fn_filepath < sn_filepath;
|
||||
}
|
||||
return fn < sn;
|
||||
fn = f_sym->get_id_string();
|
||||
sn = s_sym->get_id_string();
|
||||
if (fn != sn) return fn < sn;
|
||||
}
|
||||
|
||||
return (get_member_function_vtable_offset(f)
|
||||
< get_member_function_vtable_offset(s));
|
||||
// Try the linkage names (important for destructors).
|
||||
fn = f.get_linkage_name();
|
||||
sn = s.get_linkage_name();
|
||||
if (fn != sn) return fn < sn;
|
||||
|
||||
// None of the functions have symbols or linkage names that
|
||||
// distinguish them, so compare their pretty representation.
|
||||
fn = f.get_pretty_representation();
|
||||
sn = s.get_pretty_representation();
|
||||
if (fn != sn) return fn < sn;
|
||||
|
||||
/// If it's just the file paths that are different then sort them
|
||||
/// too.
|
||||
string fn_filepath, sn_filepath;
|
||||
unsigned line = 0, column = 0;
|
||||
location fn_loc = f.get_location(), sn_loc = s.get_location();
|
||||
if (fn_loc)
|
||||
fn_loc.expand(fn_filepath, line, column);
|
||||
if (sn_loc)
|
||||
sn_loc.expand(sn_filepath, line, column);
|
||||
return fn_filepath < sn_filepath;
|
||||
}
|
||||
|
||||
/// The less than operator. First, it sorts the methods by their
|
||||
@ -20560,7 +20552,7 @@ static void
|
||||
sort_virtual_member_functions(class_decl::member_functions& mem_fns)
|
||||
{
|
||||
virtual_member_function_less_than lt;
|
||||
std::sort(mem_fns.begin(), mem_fns.end(), lt);
|
||||
std::stable_sort(mem_fns.begin(), mem_fns.end(), lt);
|
||||
}
|
||||
|
||||
/// Add a member function to the current instance of @ref class_or_union.
|
||||
|
@ -1031,13 +1031,13 @@
|
||||
</function-decl>
|
||||
</member-function>
|
||||
<member-function access='public' destructor='yes' vtable-offset='0'>
|
||||
<function-decl name='~clone_impl' mangled-name='_ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINSt8ios_base7failureB5cxx11EEEED1Ev' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='462' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<function-decl name='~clone_impl' mangled-name='_ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINSt8ios_base7failureB5cxx11EEEED0Ev' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='462' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='type-id-76' is-artificial='yes'/>
|
||||
<return type-id='type-id-18'/>
|
||||
</function-decl>
|
||||
</member-function>
|
||||
<member-function access='public' destructor='yes' vtable-offset='0'>
|
||||
<function-decl name='~clone_impl' mangled-name='_ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINSt8ios_base7failureB5cxx11EEEED0Ev' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='462' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<function-decl name='~clone_impl' mangled-name='_ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINSt8ios_base7failureB5cxx11EEEED1Ev' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='462' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='type-id-76' is-artificial='yes'/>
|
||||
<return type-id='type-id-18'/>
|
||||
</function-decl>
|
||||
@ -1072,13 +1072,13 @@
|
||||
</function-decl>
|
||||
</member-function>
|
||||
<member-function access='public' destructor='yes' vtable-offset='0'>
|
||||
<function-decl name='~error_info_injector' mangled-name='_ZN5boost16exception_detail19error_info_injectorINSt8ios_base7failureB5cxx11EED2Ev' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='336' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<function-decl name='~error_info_injector' mangled-name='_ZN5boost16exception_detail19error_info_injectorINSt8ios_base7failureB5cxx11EED0Ev' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='336' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='type-id-80' is-artificial='yes'/>
|
||||
<return type-id='type-id-18'/>
|
||||
</function-decl>
|
||||
</member-function>
|
||||
<member-function access='public' destructor='yes' vtable-offset='0'>
|
||||
<function-decl name='~error_info_injector' mangled-name='_ZN5boost16exception_detail19error_info_injectorINSt8ios_base7failureB5cxx11EED0Ev' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='336' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<function-decl name='~error_info_injector' mangled-name='_ZN5boost16exception_detail19error_info_injectorINSt8ios_base7failureB5cxx11EED2Ev' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='336' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='type-id-80' is-artificial='yes'/>
|
||||
<return type-id='type-id-18'/>
|
||||
</function-decl>
|
||||
|
@ -4481,14 +4481,14 @@
|
||||
</function-decl>
|
||||
</member-function>
|
||||
<member-function access='private' destructor='yes' vtable-offset='-1'>
|
||||
<function-decl name='~__forced_unwind' mangled-name='_ZN10__cxxabiv115__forced_unwindD2Ev' filepath='../../.././libstdc++-v3/libsupc++/eh_exception.cc' line='35' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<function-decl name='~__forced_unwind' mangled-name='_ZN10__cxxabiv115__forced_unwindD0Ev' filepath='../../.././libstdc++-v3/libsupc++/eh_exception.cc' line='35' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='type-id-97' is-artificial='yes'/>
|
||||
<parameter type-id='type-id-6' is-artificial='yes'/>
|
||||
<return type-id='type-id-5'/>
|
||||
</function-decl>
|
||||
</member-function>
|
||||
<member-function access='private' destructor='yes' vtable-offset='-1'>
|
||||
<function-decl name='~__forced_unwind' mangled-name='_ZN10__cxxabiv115__forced_unwindD0Ev' filepath='../../.././libstdc++-v3/libsupc++/eh_exception.cc' line='35' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<function-decl name='~__forced_unwind' mangled-name='_ZN10__cxxabiv115__forced_unwindD2Ev' filepath='../../.././libstdc++-v3/libsupc++/eh_exception.cc' line='35' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='type-id-97' is-artificial='yes'/>
|
||||
<parameter type-id='type-id-6' is-artificial='yes'/>
|
||||
<return type-id='type-id-5'/>
|
||||
@ -4510,14 +4510,14 @@
|
||||
</function-decl>
|
||||
</member-function>
|
||||
<member-function access='private' destructor='yes' vtable-offset='-1'>
|
||||
<function-decl name='~__foreign_exception' mangled-name='_ZN10__cxxabiv119__foreign_exceptionD2Ev' filepath='../../.././libstdc++-v3/libsupc++/eh_exception.cc' line='37' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<function-decl name='~__foreign_exception' mangled-name='_ZN10__cxxabiv119__foreign_exceptionD0Ev' filepath='../../.././libstdc++-v3/libsupc++/eh_exception.cc' line='37' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='type-id-99' is-artificial='yes'/>
|
||||
<parameter type-id='type-id-6' is-artificial='yes'/>
|
||||
<return type-id='type-id-5'/>
|
||||
</function-decl>
|
||||
</member-function>
|
||||
<member-function access='private' destructor='yes' vtable-offset='-1'>
|
||||
<function-decl name='~__foreign_exception' mangled-name='_ZN10__cxxabiv119__foreign_exceptionD0Ev' filepath='../../.././libstdc++-v3/libsupc++/eh_exception.cc' line='37' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<function-decl name='~__foreign_exception' mangled-name='_ZN10__cxxabiv119__foreign_exceptionD2Ev' filepath='../../.././libstdc++-v3/libsupc++/eh_exception.cc' line='37' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='type-id-99' is-artificial='yes'/>
|
||||
<parameter type-id='type-id-6' is-artificial='yes'/>
|
||||
<return type-id='type-id-5'/>
|
||||
@ -5044,14 +5044,14 @@
|
||||
</function-decl>
|
||||
</member-function>
|
||||
<member-function access='private' destructor='yes' vtable-offset='-1'>
|
||||
<function-decl name='~recursive_init_error' mangled-name='_ZN9__gnu_cxx20recursive_init_errorD2Ev' filepath='../../.././libstdc++-v3/libsupc++/guard_error.cc' line='29' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<function-decl name='~recursive_init_error' mangled-name='_ZN9__gnu_cxx20recursive_init_errorD0Ev' filepath='../../.././libstdc++-v3/libsupc++/guard_error.cc' line='29' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='type-id-131' is-artificial='yes'/>
|
||||
<parameter type-id='type-id-6' is-artificial='yes'/>
|
||||
<return type-id='type-id-5'/>
|
||||
</function-decl>
|
||||
</member-function>
|
||||
<member-function access='private' destructor='yes' vtable-offset='-1'>
|
||||
<function-decl name='~recursive_init_error' mangled-name='_ZN9__gnu_cxx20recursive_init_errorD0Ev' filepath='../../.././libstdc++-v3/libsupc++/guard_error.cc' line='29' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<function-decl name='~recursive_init_error' mangled-name='_ZN9__gnu_cxx20recursive_init_errorD2Ev' filepath='../../.././libstdc++-v3/libsupc++/guard_error.cc' line='29' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='type-id-131' is-artificial='yes'/>
|
||||
<parameter type-id='type-id-6' is-artificial='yes'/>
|
||||
<return type-id='type-id-5'/>
|
||||
@ -28513,14 +28513,14 @@
|
||||
</function-decl>
|
||||
</member-function>
|
||||
<member-function access='protected' destructor='yes' vtable-offset='-1'>
|
||||
<function-decl name='~__codecvt_abstract_base' mangled-name='_ZNSt23__codecvt_abstract_baseIcc11__mbstate_tED2Ev' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/codecvt.h' line='228' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<function-decl name='~__codecvt_abstract_base' mangled-name='_ZNSt23__codecvt_abstract_baseIcc11__mbstate_tED0Ev' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/codecvt.h' line='228' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='type-id-2058' is-artificial='yes'/>
|
||||
<parameter type-id='type-id-6' is-artificial='yes'/>
|
||||
<return type-id='type-id-5'/>
|
||||
</function-decl>
|
||||
</member-function>
|
||||
<member-function access='protected' destructor='yes' vtable-offset='-1'>
|
||||
<function-decl name='~__codecvt_abstract_base' mangled-name='_ZNSt23__codecvt_abstract_baseIcc11__mbstate_tED0Ev' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/codecvt.h' line='228' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<function-decl name='~__codecvt_abstract_base' mangled-name='_ZNSt23__codecvt_abstract_baseIcc11__mbstate_tED2Ev' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/codecvt.h' line='228' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='type-id-2058' is-artificial='yes'/>
|
||||
<parameter type-id='type-id-6' is-artificial='yes'/>
|
||||
<return type-id='type-id-5'/>
|
||||
@ -28685,14 +28685,14 @@
|
||||
</function-decl>
|
||||
</member-function>
|
||||
<member-function access='protected' destructor='yes' vtable-offset='-1'>
|
||||
<function-decl name='~__codecvt_abstract_base' mangled-name='_ZNSt23__codecvt_abstract_baseIwc11__mbstate_tED2Ev' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/codecvt.h' line='228' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<function-decl name='~__codecvt_abstract_base' mangled-name='_ZNSt23__codecvt_abstract_baseIwc11__mbstate_tED0Ev' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/codecvt.h' line='228' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='type-id-2060' is-artificial='yes'/>
|
||||
<parameter type-id='type-id-6' is-artificial='yes'/>
|
||||
<return type-id='type-id-5'/>
|
||||
</function-decl>
|
||||
</member-function>
|
||||
<member-function access='protected' destructor='yes' vtable-offset='-1'>
|
||||
<function-decl name='~__codecvt_abstract_base' mangled-name='_ZNSt23__codecvt_abstract_baseIwc11__mbstate_tED0Ev' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/codecvt.h' line='228' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<function-decl name='~__codecvt_abstract_base' mangled-name='_ZNSt23__codecvt_abstract_baseIwc11__mbstate_tED2Ev' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/codecvt.h' line='228' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='type-id-2060' is-artificial='yes'/>
|
||||
<parameter type-id='type-id-6' is-artificial='yes'/>
|
||||
<return type-id='type-id-5'/>
|
||||
@ -30852,14 +30852,14 @@
|
||||
</function-decl>
|
||||
</member-function>
|
||||
<member-function access='protected' destructor='yes' vtable-offset='-1'>
|
||||
<function-decl name='~__ctype_abstract_base' mangled-name='_ZNSt21__ctype_abstract_baseIwED2Ev' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='357' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<function-decl name='~__ctype_abstract_base' mangled-name='_ZNSt21__ctype_abstract_baseIwED0Ev' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='357' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='type-id-2263' is-artificial='yes'/>
|
||||
<parameter type-id='type-id-6' is-artificial='yes'/>
|
||||
<return type-id='type-id-5'/>
|
||||
</function-decl>
|
||||
</member-function>
|
||||
<member-function access='protected' destructor='yes' vtable-offset='-1'>
|
||||
<function-decl name='~__ctype_abstract_base' mangled-name='_ZNSt21__ctype_abstract_baseIwED0Ev' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='357' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<function-decl name='~__ctype_abstract_base' mangled-name='_ZNSt21__ctype_abstract_baseIwED2Ev' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='357' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='type-id-2263' is-artificial='yes'/>
|
||||
<parameter type-id='type-id-6' is-artificial='yes'/>
|
||||
<return type-id='type-id-5'/>
|
||||
@ -32571,13 +32571,6 @@
|
||||
<return type-id='type-id-5'/>
|
||||
</function-decl>
|
||||
</member-function>
|
||||
<member-function access='protected' const='yes' vtable-offset='2'>
|
||||
<function-decl name='do_toupper' mangled-name='_ZNKSt5ctypeIcE10do_toupperEc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1007' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIcE10do_toupperEc@@GLIBCXX_3.4'>
|
||||
<parameter type-id='type-id-2350' is-artificial='yes'/>
|
||||
<parameter type-id='type-id-2351'/>
|
||||
<return type-id='type-id-2351'/>
|
||||
</function-decl>
|
||||
</member-function>
|
||||
<member-function access='protected' const='yes' vtable-offset='2'>
|
||||
<function-decl name='do_toupper' mangled-name='_ZNKSt5ctypeIcE10do_toupperEc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/src/c++98/ctype_configure_char.cc' line='166' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIcE10do_toupperEc@@GLIBCXX_3.4'>
|
||||
<parameter type-id='type-id-2350' is-artificial='yes'/>
|
||||
@ -32585,12 +32578,11 @@
|
||||
<return type-id='type-id-186'/>
|
||||
</function-decl>
|
||||
</member-function>
|
||||
<member-function access='protected' const='yes' vtable-offset='3'>
|
||||
<function-decl name='do_toupper' mangled-name='_ZNKSt5ctypeIcE10do_toupperEPcPKc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1024' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIcE10do_toupperEPcPKc@@GLIBCXX_3.4'>
|
||||
<member-function access='protected' const='yes' vtable-offset='2'>
|
||||
<function-decl name='do_toupper' mangled-name='_ZNKSt5ctypeIcE10do_toupperEc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1007' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIcE10do_toupperEc@@GLIBCXX_3.4'>
|
||||
<parameter type-id='type-id-2350' is-artificial='yes'/>
|
||||
<parameter type-id='type-id-2357'/>
|
||||
<parameter type-id='type-id-2353'/>
|
||||
<return type-id='type-id-2353'/>
|
||||
<parameter type-id='type-id-2351'/>
|
||||
<return type-id='type-id-2351'/>
|
||||
</function-decl>
|
||||
</member-function>
|
||||
<member-function access='protected' const='yes' vtable-offset='3'>
|
||||
@ -32601,11 +32593,12 @@
|
||||
<return type-id='type-id-4'/>
|
||||
</function-decl>
|
||||
</member-function>
|
||||
<member-function access='protected' const='yes' vtable-offset='4'>
|
||||
<function-decl name='do_tolower' mangled-name='_ZNKSt5ctypeIcE10do_tolowerEc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1040' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIcE10do_tolowerEc@@GLIBCXX_3.4'>
|
||||
<member-function access='protected' const='yes' vtable-offset='3'>
|
||||
<function-decl name='do_toupper' mangled-name='_ZNKSt5ctypeIcE10do_toupperEPcPKc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1024' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIcE10do_toupperEPcPKc@@GLIBCXX_3.4'>
|
||||
<parameter type-id='type-id-2350' is-artificial='yes'/>
|
||||
<parameter type-id='type-id-2351'/>
|
||||
<return type-id='type-id-2351'/>
|
||||
<parameter type-id='type-id-2357'/>
|
||||
<parameter type-id='type-id-2353'/>
|
||||
<return type-id='type-id-2353'/>
|
||||
</function-decl>
|
||||
</member-function>
|
||||
<member-function access='protected' const='yes' vtable-offset='4'>
|
||||
@ -32615,12 +32608,11 @@
|
||||
<return type-id='type-id-186'/>
|
||||
</function-decl>
|
||||
</member-function>
|
||||
<member-function access='protected' const='yes' vtable-offset='5'>
|
||||
<function-decl name='do_tolower' mangled-name='_ZNKSt5ctypeIcE10do_tolowerEPcPKc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1057' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIcE10do_tolowerEPcPKc@@GLIBCXX_3.4'>
|
||||
<member-function access='protected' const='yes' vtable-offset='4'>
|
||||
<function-decl name='do_tolower' mangled-name='_ZNKSt5ctypeIcE10do_tolowerEc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1040' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIcE10do_tolowerEc@@GLIBCXX_3.4'>
|
||||
<parameter type-id='type-id-2350' is-artificial='yes'/>
|
||||
<parameter type-id='type-id-2357'/>
|
||||
<parameter type-id='type-id-2353'/>
|
||||
<return type-id='type-id-2353'/>
|
||||
<parameter type-id='type-id-2351'/>
|
||||
<return type-id='type-id-2351'/>
|
||||
</function-decl>
|
||||
</member-function>
|
||||
<member-function access='protected' const='yes' vtable-offset='5'>
|
||||
@ -32631,6 +32623,14 @@
|
||||
<return type-id='type-id-4'/>
|
||||
</function-decl>
|
||||
</member-function>
|
||||
<member-function access='protected' const='yes' vtable-offset='5'>
|
||||
<function-decl name='do_tolower' mangled-name='_ZNKSt5ctypeIcE10do_tolowerEPcPKc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1057' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIcE10do_tolowerEPcPKc@@GLIBCXX_3.4'>
|
||||
<parameter type-id='type-id-2350' is-artificial='yes'/>
|
||||
<parameter type-id='type-id-2357'/>
|
||||
<parameter type-id='type-id-2353'/>
|
||||
<return type-id='type-id-2353'/>
|
||||
</function-decl>
|
||||
</member-function>
|
||||
<member-function access='protected' const='yes' vtable-offset='6'>
|
||||
<function-decl name='do_widen' mangled-name='_ZNKSt5ctypeIcE8do_widenEc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1077' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIcE8do_widenEc@@GLIBCXX_3.4'>
|
||||
<parameter type-id='type-id-2350' is-artificial='yes'/>
|
||||
@ -32918,14 +32918,14 @@
|
||||
</function-decl>
|
||||
</member-function>
|
||||
<member-function access='private' destructor='yes' vtable-offset='-1'>
|
||||
<function-decl name='~stdio_filebuf' mangled-name='_ZN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEED2Ev' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/ext/stdio_filebuf.h' line='124' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<function-decl name='~stdio_filebuf' mangled-name='_ZN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEED0Ev' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/ext/stdio_filebuf.h' line='124' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='type-id-2428' is-artificial='yes'/>
|
||||
<parameter type-id='type-id-6' is-artificial='yes'/>
|
||||
<return type-id='type-id-5'/>
|
||||
</function-decl>
|
||||
</member-function>
|
||||
<member-function access='private' destructor='yes' vtable-offset='-1'>
|
||||
<function-decl name='~stdio_filebuf' mangled-name='_ZN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEED0Ev' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/ext/stdio_filebuf.h' line='124' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<function-decl name='~stdio_filebuf' mangled-name='_ZN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEED2Ev' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/ext/stdio_filebuf.h' line='124' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='type-id-2428' is-artificial='yes'/>
|
||||
<parameter type-id='type-id-6' is-artificial='yes'/>
|
||||
<return type-id='type-id-5'/>
|
||||
@ -33005,14 +33005,14 @@
|
||||
</function-decl>
|
||||
</member-function>
|
||||
<member-function access='private' destructor='yes' vtable-offset='-1'>
|
||||
<function-decl name='~stdio_filebuf' mangled-name='_ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEED2Ev' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/ext/stdio_filebuf.h' line='124' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<function-decl name='~stdio_filebuf' mangled-name='_ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEED0Ev' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/ext/stdio_filebuf.h' line='124' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='type-id-2426' is-artificial='yes'/>
|
||||
<parameter type-id='type-id-6' is-artificial='yes'/>
|
||||
<return type-id='type-id-5'/>
|
||||
</function-decl>
|
||||
</member-function>
|
||||
<member-function access='private' destructor='yes' vtable-offset='-1'>
|
||||
<function-decl name='~stdio_filebuf' mangled-name='_ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEED0Ev' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/ext/stdio_filebuf.h' line='124' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<function-decl name='~stdio_filebuf' mangled-name='_ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEED2Ev' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/ext/stdio_filebuf.h' line='124' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='type-id-2426' is-artificial='yes'/>
|
||||
<parameter type-id='type-id-6' is-artificial='yes'/>
|
||||
<return type-id='type-id-5'/>
|
||||
@ -35340,14 +35340,14 @@
|
||||
</function-decl>
|
||||
</member-function>
|
||||
<member-function access='protected' destructor='yes' vtable-offset='-1'>
|
||||
<function-decl name='~__ctype_abstract_base' mangled-name='_ZNSt21__ctype_abstract_baseIcED2Ev' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='357' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<function-decl name='~__ctype_abstract_base' mangled-name='_ZNSt21__ctype_abstract_baseIcED0Ev' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='357' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='type-id-2718' is-artificial='yes'/>
|
||||
<parameter type-id='type-id-6' is-artificial='yes'/>
|
||||
<return type-id='type-id-5'/>
|
||||
</function-decl>
|
||||
</member-function>
|
||||
<member-function access='protected' destructor='yes' vtable-offset='-1'>
|
||||
<function-decl name='~__ctype_abstract_base' mangled-name='_ZNSt21__ctype_abstract_baseIcED0Ev' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='357' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<function-decl name='~__ctype_abstract_base' mangled-name='_ZNSt21__ctype_abstract_baseIcED2Ev' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='357' column='1' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='type-id-2718' is-artificial='yes'/>
|
||||
<parameter type-id='type-id-6' is-artificial='yes'/>
|
||||
<return type-id='type-id-5'/>
|
||||
|
Loading…
Reference in New Issue
Block a user