Fix decl_base comparison function

When two decl_base ojects are compared, there are both fast and slow
paths to the name comparison. The latter is roughly equivalent to
comparing names after applying the regex
s/(__anonymous_(?:struct|union|enum)__)\d+/\1/g to the names before
comparing them while the former is a straight string comparison with
some tweaks for detecting anonymous types.

The slow path is taken care of by the helper function
tools_utils::decl_names_equal but unfortunately, there is a missing
negation of the returned bool. This commit fixes this and updates the
few affected tests.

Rather than just adding a '!', this commit replaces the negative
decls_are_different with a positive decls_are_same. I spent far too
long staring at the code before I spotted the mistake and having
positively-named things improves readability.

The same helper function is also called by has_harmless_name_change
and that should be reviewed as well.

	* src/abg-ir.cc (equals): In the decl_base overload, note that
	the value returned by decl_names_equal should be negated and
	replace decls_are_different with decls_are_same, negating all
	occurrences.
	* tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt:
	Update tests, removing some spurious anonymous union name change.
	* tests/data/test-diff-filter/test33-report-0.txt: Diff now
	completely empty.
	* tests/data/test-diff-pkg/elfutils-libs-0.170-4.el7.x86_64-multiple-sym-vers-report-0.txt:
	3 functions previously considered to have harmless changes are
	now deemed to have no changes.
	* tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt:
	1 struct RedStore data member previously considered to have
	harmless changes is now deemed to have no changes.
	* tests/data/test-read-dwarf/test9-pr18818-clang.so.abi:
	One instance of an anonymous struct removed and a typedef
	repointed at another existing instance; many type ids
	renumbered.

Signed-off-by: Giuliano Procida <gprocida@google.com>
Signed-off-by: Dodji Seketeli <dodji@redhat.com>
This commit is contained in:
Giuliano Procida 2020-07-22 12:07:36 +01:00 committed by Dodji Seketeli
parent 2862147c0a
commit d5576ba30a
6 changed files with 118 additions and 143 deletions

View File

@ -4065,13 +4065,13 @@ equals(const decl_base& l, const decl_base& r, change_kind* k)
/// If both of the current decls have an anonymous scope then let's
/// compare their name component by component by properly handling
/// anonyous scopes. That's the slow path.
/// anonymous scopes. That's the slow path.
///
/// Otherwise, let's just compare their name, the obvious way.
/// That's the fast path because in that case the names are
/// interned_string and comparing them is much faster.
bool decls_are_different = (ln != rn);
if (decls_are_different
bool decls_are_same = (ln == rn);
if (!decls_are_same
&& l.get_is_anonymous()
&& !l.get_has_anonymous_parent()
&& r.get_is_anonymous()
@ -4079,17 +4079,17 @@ equals(const decl_base& l, const decl_base& r, change_kind* k)
// Both decls are anonymous and their scope are *NOT* anonymous.
// So we consider the decls to have equivalent names (both
// anonymous, remember). We are still in the fast path here.
decls_are_different = false;
decls_are_same = true;
if (decls_are_different
if (!decls_are_same
&& l.get_has_anonymous_parent()
&& r.get_has_anonymous_parent())
// This is the slow path as we are comparing the decl qualified
// names component by component, properly handling anonymous
// scopes.
decls_are_different = tools_utils::decl_names_equal(ln, rn);
decls_are_same = tools_utils::decl_names_equal(ln, rn);
if (decls_are_different)
if (!decls_are_same)
{
result = false;
if (k)

View File

@ -130,10 +130,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
type of 'union {lttng_event_perf_counter_ctx perf_counter; struct {char* provider_name; char* ctx_name;} app_ctx; char padding[288];} lttng_event_context::u' changed:
type name changed from '__anonymous_union__4' to '__anonymous_union__5'
type size hasn't changed
3 data member changes:
name of '__anonymous_union__4::app_ctx' changed to '__anonymous_union__5::app_ctx'
name of '__anonymous_union__4::padding' changed to '__anonymous_union__5::padding'
name of '__anonymous_union__4::perf_counter' changed to '__anonymous_union__5::perf_counter'
type changed from:
union {lttng_event_perf_counter_ctx perf_counter; struct {char* provider_name; char* ctx_name;} app_ctx; char padding[288];}
to:

View File

@ -1,3 +0,0 @@
Functions changes summary: 0 Removed, 0 Changed (16 filtered out), 0 Added functions
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable

View File

@ -1,5 +1,5 @@
================ changes of 'libdw-0.170.so'===============
Functions changes summary: 0 Removed, 0 Changed (178 filtered out), 4 Added functions
Functions changes summary: 0 Removed, 0 Changed (175 filtered out), 4 Added functions
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
4 Added functions:

View File

@ -630,7 +630,7 @@
in pointed to type 'typedef SpiceServer' at spice-server.h:38:1:
underlying type 'struct RedsState' at reds-private.h:127:1 changed:
type size hasn't changed
5 data member changes (2 filtered):
5 data member changes (1 filtered):
type of 'SpiceWatch* RedsState::listen_watch' changed:
pointed to type 'typedef SpiceWatch' changed at spice.h:61:1, as reported earlier
type of 'SpiceWatch* RedsState::secure_listen_watch' changed:

View File

@ -6313,7 +6313,7 @@
<typedef-decl name='result' type-id='type-id-474' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/codecvt.h' line='73' column='1' id='type-id-473'/>
</member-type>
<member-type access='private'>
<typedef-decl name='state_type' type-id='type-id-475' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/codecvt.h' line='76' column='1' id='type-id-469'/>
<typedef-decl name='state_type' type-id='type-id-34' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/codecvt.h' line='76' column='1' id='type-id-469'/>
</member-type>
<member-type access='private'>
<typedef-decl name='intern_type' type-id='type-id-19' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/codecvt.h' line='74' column='1' id='type-id-461'/>
@ -6348,7 +6348,7 @@
</function-decl>
</member-function>
</class-decl>
<class-decl name='codecvt_base' size-in-bits='8' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/codecvt.h' line='46' column='1' id='type-id-476'>
<class-decl name='codecvt_base' size-in-bits='8' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/codecvt.h' line='46' column='1' id='type-id-475'>
<member-type access='private'>
<enum-decl name='result' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/codecvt.h' line='49' column='1' id='type-id-474'>
<underlying-type type-id='type-id-142'/>
@ -6469,24 +6469,6 @@
</member-function>
</class-decl>
</namespace-decl>
<class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-469' visibility='default' filepath='/usr/include/wchar.h' line='82' column='1' id='type-id-475'>
<member-type access='public'>
<union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='/usr/include/wchar.h' line='85' column='1' id='type-id-477'>
<data-member access='private'>
<var-decl name='__wch' type-id='type-id-7' visibility='default' filepath='/usr/include/wchar.h' line='88' column='1'/>
</data-member>
<data-member access='private'>
<var-decl name='__wchb' type-id='type-id-3' visibility='default' filepath='/usr/include/wchar.h' line='92' column='1'/>
</data-member>
</union-decl>
</member-type>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='__count' type-id='type-id-11' visibility='default' filepath='/usr/include/wchar.h' line='84' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
<var-decl name='__value' type-id='type-id-477' visibility='default' filepath='/usr/include/wchar.h' line='93' column='1'/>
</data-member>
</class-decl>
</abi-instr>
<abi-instr version='1.0' address-size='64' path='src/third_party/boost-1.56.0/libs/filesystem/src/portability.cpp' comp-dir-path='/home/andrew/Documents/10gen/dev/src/mongodb' language='LANG_C_plus_plus'>
<namespace-decl name='std'>
@ -6526,17 +6508,17 @@
</namespace-decl>
</abi-instr>
<abi-instr version='1.0' address-size='64' path='src/third_party/boost-1.56.0/libs/filesystem/src/unique_path.cpp' comp-dir-path='/home/andrew/Documents/10gen/dev/src/mongodb' language='LANG_C_plus_plus'>
<reference-type-def kind='lvalue' type-id='type-id-478' size-in-bits='64' id='type-id-479'/>
<pointer-type-def type-id='type-id-478' size-in-bits='64' id='type-id-480'/>
<pointer-type-def type-id='type-id-481' size-in-bits='64' id='type-id-337'/>
<qualified-type-def type-id='type-id-478' const='yes' id='type-id-482'/>
<pointer-type-def type-id='type-id-482' size-in-bits='64' id='type-id-483'/>
<qualified-type-def type-id='type-id-401' const='yes' id='type-id-484'/>
<reference-type-def kind='lvalue' type-id='type-id-484' size-in-bits='64' id='type-id-336'/>
<reference-type-def kind='lvalue' type-id='type-id-320' size-in-bits='64' id='type-id-485'/>
<reference-type-def kind='lvalue' type-id='type-id-95' size-in-bits='64' id='type-id-486'/>
<qualified-type-def type-id='type-id-96' const='yes' id='type-id-487'/>
<reference-type-def kind='lvalue' type-id='type-id-487' size-in-bits='64' id='type-id-488'/>
<reference-type-def kind='lvalue' type-id='type-id-476' size-in-bits='64' id='type-id-477'/>
<pointer-type-def type-id='type-id-476' size-in-bits='64' id='type-id-478'/>
<pointer-type-def type-id='type-id-479' size-in-bits='64' id='type-id-337'/>
<qualified-type-def type-id='type-id-476' const='yes' id='type-id-480'/>
<pointer-type-def type-id='type-id-480' size-in-bits='64' id='type-id-481'/>
<qualified-type-def type-id='type-id-401' const='yes' id='type-id-482'/>
<reference-type-def kind='lvalue' type-id='type-id-482' size-in-bits='64' id='type-id-336'/>
<reference-type-def kind='lvalue' type-id='type-id-320' size-in-bits='64' id='type-id-483'/>
<reference-type-def kind='lvalue' type-id='type-id-95' size-in-bits='64' id='type-id-484'/>
<qualified-type-def type-id='type-id-96' const='yes' id='type-id-485'/>
<reference-type-def kind='lvalue' type-id='type-id-485' size-in-bits='64' id='type-id-486'/>
<namespace-decl name='boost'>
<namespace-decl name='filesystem'>
<namespace-decl name='detail'>
@ -6548,151 +6530,151 @@
</namespace-decl>
<namespace-decl name='path_traits'>
<function-decl name='dispatch&lt;std::basic_string&lt;char&gt; &gt;' mangled-name='_ZN5boost10filesystem11path_traits8dispatchISsEEvRKSbIwSt11char_traitsIwESaIwEERT_RKSt7codecvtIwc11__mbstate_tE' filepath='src/third_party/boost-1.56.0/boost/filesystem/path_traits.hpp' line='177' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost10filesystem11path_traits8dispatchISsEEvRKSbIwSt11char_traitsIwESaIwEERT_RKSt7codecvtIwc11__mbstate_tE'>
<parameter type-id='type-id-485' name='c' filepath='src/third_party/boost-1.56.0/boost/filesystem/path_traits.hpp' line='177' column='1'/>
<parameter type-id='type-id-483' name='c' filepath='src/third_party/boost-1.56.0/boost/filesystem/path_traits.hpp' line='177' column='1'/>
<parameter type-id='type-id-133' name='to' filepath='src/third_party/boost-1.56.0/boost/filesystem/path_traits.hpp' line='177' column='1'/>
<parameter type-id='type-id-269' name='cvt' filepath='src/third_party/boost-1.56.0/boost/filesystem/path_traits.hpp' line='177' column='1'/>
<return type-id='type-id-18'/>
</function-decl>
</namespace-decl>
</namespace-decl>
<class-decl name='enable_if_c&lt;true, void&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='src/third_party/boost-1.56.0/boost/core/enable_if.hpp' line='28' column='1' id='type-id-489'>
<class-decl name='enable_if_c&lt;true, void&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='src/third_party/boost-1.56.0/boost/core/enable_if.hpp' line='28' column='1' id='type-id-487'>
<member-type access='public'>
<typedef-decl name='type' type-id='type-id-18' filepath='src/third_party/boost-1.56.0/boost/core/enable_if.hpp' line='29' column='1' id='type-id-481'/>
<typedef-decl name='type' type-id='type-id-18' filepath='src/third_party/boost-1.56.0/boost/core/enable_if.hpp' line='29' column='1' id='type-id-479'/>
</member-type>
</class-decl>
</namespace-decl>
<namespace-decl name='std'>
<class-decl name='allocator&lt;wchar_t&gt;' visibility='default' is-declaration-only='yes' id='type-id-490'>
<class-decl name='allocator&lt;wchar_t&gt;' visibility='default' is-declaration-only='yes' id='type-id-488'>
<member-type access='private'>
<typedef-decl name='size_type' type-id='type-id-391' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/allocator.h' line='95' column='1' id='type-id-403'/>
</member-type>
</class-decl>
<class-decl name='iterator_traits&lt;const wchar_t *&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_iterator_base_types.h' line='186' column='1' id='type-id-491'>
<class-decl name='iterator_traits&lt;const wchar_t *&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_iterator_base_types.h' line='186' column='1' id='type-id-489'>
<member-type access='public'>
<typedef-decl name='reference' type-id='type-id-486' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_iterator_base_types.h' line='192' column='1' id='type-id-492'/>
<typedef-decl name='reference' type-id='type-id-484' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_iterator_base_types.h' line='192' column='1' id='type-id-490'/>
</member-type>
<member-type access='public'>
<typedef-decl name='pointer' type-id='type-id-96' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_iterator_base_types.h' line='191' column='1' id='type-id-493'/>
<typedef-decl name='pointer' type-id='type-id-96' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_iterator_base_types.h' line='191' column='1' id='type-id-491'/>
</member-type>
<member-type access='public'>
<typedef-decl name='difference_type' type-id='type-id-344' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_iterator_base_types.h' line='190' column='1' id='type-id-494'/>
<typedef-decl name='difference_type' type-id='type-id-344' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_iterator_base_types.h' line='190' column='1' id='type-id-492'/>
</member-type>
</class-decl>
</namespace-decl>
<namespace-decl name='__gnu_cxx'>
<class-decl name='__normal_iterator&lt;const wchar_t *, std::basic_string&lt;wchar_t&gt; &gt;' size-in-bits='64' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_iterator.h' line='709' column='1' id='type-id-478'>
<class-decl name='__normal_iterator&lt;const wchar_t *, std::basic_string&lt;wchar_t&gt; &gt;' size-in-bits='64' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_iterator.h' line='709' column='1' id='type-id-476'>
<member-type access='private'>
<typedef-decl name='reference' type-id='type-id-492' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_iterator.h' line='721' column='1' id='type-id-495'/>
<typedef-decl name='reference' type-id='type-id-490' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_iterator.h' line='721' column='1' id='type-id-493'/>
</member-type>
<member-type access='private'>
<typedef-decl name='pointer' type-id='type-id-493' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_iterator.h' line='722' column='1' id='type-id-496'/>
<typedef-decl name='pointer' type-id='type-id-491' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_iterator.h' line='722' column='1' id='type-id-494'/>
</member-type>
<member-type access='private'>
<typedef-decl name='difference_type' type-id='type-id-494' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_iterator.h' line='720' column='1' id='type-id-497'/>
<typedef-decl name='difference_type' type-id='type-id-492' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_iterator.h' line='720' column='1' id='type-id-495'/>
</member-type>
<data-member access='protected' layout-offset-in-bits='0'>
<var-decl name='_M_current' type-id='type-id-96' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_iterator.h' line='712' column='1'/>
</data-member>
<member-function access='public'>
<function-decl name='__normal_iterator' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_iterator.h' line='724' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-480' is-artificial='yes'/>
<parameter type-id='type-id-478' is-artificial='yes'/>
<return type-id='type-id-18'/>
</function-decl>
</member-function>
<member-function access='public'>
<function-decl name='__normal_iterator' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_iterator.h' line='728' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-480' is-artificial='yes'/>
<parameter type-id='type-id-488'/>
<parameter type-id='type-id-478' is-artificial='yes'/>
<parameter type-id='type-id-486'/>
<return type-id='type-id-18'/>
</function-decl>
</member-function>
<member-function access='public'>
<function-decl name='operator*' mangled-name='_ZNK9__gnu_cxx17__normal_iteratorIPKwSbIwSt11char_traitsIwESaIwEEEdeEv' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_iterator.h' line='741' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNK9__gnu_cxx17__normal_iteratorIPKwSbIwSt11char_traitsIwESaIwEEEdeEv'>
<parameter type-id='type-id-483' is-artificial='yes'/>
<return type-id='type-id-495'/>
<parameter type-id='type-id-481' is-artificial='yes'/>
<return type-id='type-id-493'/>
</function-decl>
</member-function>
<member-function access='public'>
<function-decl name='operator-&gt;' mangled-name='_ZNK9__gnu_cxx17__normal_iteratorIPKwSbIwSt11char_traitsIwESaIwEEEptEv' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_iterator.h' line='745' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-483' is-artificial='yes'/>
<return type-id='type-id-496'/>
<parameter type-id='type-id-481' is-artificial='yes'/>
<return type-id='type-id-494'/>
</function-decl>
</member-function>
<member-function access='public'>
<function-decl name='operator++' mangled-name='_ZN9__gnu_cxx17__normal_iteratorIPKwSbIwSt11char_traitsIwESaIwEEEppEv' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_iterator.h' line='749' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-480' is-artificial='yes'/>
<return type-id='type-id-479'/>
<parameter type-id='type-id-478' is-artificial='yes'/>
<return type-id='type-id-477'/>
</function-decl>
</member-function>
<member-function access='public'>
<function-decl name='operator++' mangled-name='_ZN9__gnu_cxx17__normal_iteratorIPKwSbIwSt11char_traitsIwESaIwEEEppEi' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_iterator.h' line='756' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-480' is-artificial='yes'/>
<parameter type-id='type-id-478' is-artificial='yes'/>
<parameter type-id='type-id-11'/>
<return type-id='type-id-478'/>
<return type-id='type-id-476'/>
</function-decl>
</member-function>
<member-function access='public'>
<function-decl name='operator--' mangled-name='_ZN9__gnu_cxx17__normal_iteratorIPKwSbIwSt11char_traitsIwESaIwEEEmmEv' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_iterator.h' line='761' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-480' is-artificial='yes'/>
<return type-id='type-id-479'/>
<parameter type-id='type-id-478' is-artificial='yes'/>
<return type-id='type-id-477'/>
</function-decl>
</member-function>
<member-function access='public'>
<function-decl name='operator--' mangled-name='_ZN9__gnu_cxx17__normal_iteratorIPKwSbIwSt11char_traitsIwESaIwEEEmmEi' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_iterator.h' line='768' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-480' is-artificial='yes'/>
<parameter type-id='type-id-478' is-artificial='yes'/>
<parameter type-id='type-id-11'/>
<return type-id='type-id-478'/>
<return type-id='type-id-476'/>
</function-decl>
</member-function>
<member-function access='public'>
<function-decl name='operator[]' mangled-name='_ZNK9__gnu_cxx17__normal_iteratorIPKwSbIwSt11char_traitsIwESaIwEEEixEl' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_iterator.h' line='773' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-483' is-artificial='yes'/>
<parameter type-id='type-id-497'/>
<return type-id='type-id-495'/>
<parameter type-id='type-id-481' is-artificial='yes'/>
<parameter type-id='type-id-495'/>
<return type-id='type-id-493'/>
</function-decl>
</member-function>
<member-function access='public'>
<function-decl name='operator+=' mangled-name='_ZN9__gnu_cxx17__normal_iteratorIPKwSbIwSt11char_traitsIwESaIwEEEpLEl' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_iterator.h' line='777' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-480' is-artificial='yes'/>
<parameter type-id='type-id-497'/>
<return type-id='type-id-479'/>
<parameter type-id='type-id-478' is-artificial='yes'/>
<parameter type-id='type-id-495'/>
<return type-id='type-id-477'/>
</function-decl>
</member-function>
<member-function access='public'>
<function-decl name='operator+' mangled-name='_ZNK9__gnu_cxx17__normal_iteratorIPKwSbIwSt11char_traitsIwESaIwEEEplEl' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_iterator.h' line='781' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-483' is-artificial='yes'/>
<parameter type-id='type-id-497'/>
<return type-id='type-id-478'/>
<parameter type-id='type-id-481' is-artificial='yes'/>
<parameter type-id='type-id-495'/>
<return type-id='type-id-476'/>
</function-decl>
</member-function>
<member-function access='public'>
<function-decl name='operator-=' mangled-name='_ZN9__gnu_cxx17__normal_iteratorIPKwSbIwSt11char_traitsIwESaIwEEEmIEl' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_iterator.h' line='785' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-480' is-artificial='yes'/>
<parameter type-id='type-id-497'/>
<return type-id='type-id-479'/>
<parameter type-id='type-id-478' is-artificial='yes'/>
<parameter type-id='type-id-495'/>
<return type-id='type-id-477'/>
</function-decl>
</member-function>
<member-function access='public'>
<function-decl name='operator-' mangled-name='_ZNK9__gnu_cxx17__normal_iteratorIPKwSbIwSt11char_traitsIwESaIwEEEmiEl' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_iterator.h' line='789' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-483' is-artificial='yes'/>
<parameter type-id='type-id-497'/>
<return type-id='type-id-478'/>
<parameter type-id='type-id-481' is-artificial='yes'/>
<parameter type-id='type-id-495'/>
<return type-id='type-id-476'/>
</function-decl>
</member-function>
<member-function access='public'>
<function-decl name='base' mangled-name='_ZNK9__gnu_cxx17__normal_iteratorIPKwSbIwSt11char_traitsIwESaIwEEE4baseEv' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_iterator.h' line='793' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-483' is-artificial='yes'/>
<return type-id='type-id-488'/>
<parameter type-id='type-id-481' is-artificial='yes'/>
<return type-id='type-id-486'/>
</function-decl>
</member-function>
</class-decl>
</namespace-decl>
</abi-instr>
<abi-instr version='1.0' address-size='64' path='src/third_party/boost-1.56.0/libs/filesystem/src/utf8_codecvt_facet.cpp' comp-dir-path='/home/andrew/Documents/10gen/dev/src/mongodb' language='LANG_C_plus_plus'>
<type-decl name='unsigned char' size-in-bits='8' id='type-id-498'/>
<class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/wchar.h' line='82' column='1' id='type-id-499'>
<type-decl name='unsigned char' size-in-bits='8' id='type-id-496'/>
<class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/wchar.h' line='82' column='1' id='type-id-497'>
<member-type access='public'>
<union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='/usr/include/wchar.h' line='85' column='1' id='type-id-500'>
<union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='/usr/include/wchar.h' line='85' column='1' id='type-id-498'>
<data-member access='private'>
<var-decl name='__wch' type-id='type-id-7' visibility='default' filepath='/usr/include/wchar.h' line='88' column='1'/>
</data-member>
@ -6705,117 +6687,117 @@
<var-decl name='__count' type-id='type-id-11' visibility='default' filepath='/usr/include/wchar.h' line='84' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
<var-decl name='__value' type-id='type-id-500' visibility='default' filepath='/usr/include/wchar.h' line='93' column='1'/>
<var-decl name='__value' type-id='type-id-498' visibility='default' filepath='/usr/include/wchar.h' line='93' column='1'/>
</data-member>
</class-decl>
<pointer-type-def type-id='type-id-501' size-in-bits='64' id='type-id-502'/>
<reference-type-def kind='lvalue' type-id='type-id-62' size-in-bits='64' id='type-id-503'/>
<qualified-type-def type-id='type-id-501' const='yes' id='type-id-504'/>
<pointer-type-def type-id='type-id-504' size-in-bits='64' id='type-id-505'/>
<reference-type-def kind='lvalue' type-id='type-id-36' size-in-bits='64' id='type-id-506'/>
<qualified-type-def type-id='type-id-11' const='yes' id='type-id-507'/>
<pointer-type-def type-id='type-id-499' size-in-bits='64' id='type-id-500'/>
<reference-type-def kind='lvalue' type-id='type-id-62' size-in-bits='64' id='type-id-501'/>
<qualified-type-def type-id='type-id-499' const='yes' id='type-id-502'/>
<pointer-type-def type-id='type-id-502' size-in-bits='64' id='type-id-503'/>
<reference-type-def kind='lvalue' type-id='type-id-36' size-in-bits='64' id='type-id-504'/>
<qualified-type-def type-id='type-id-11' const='yes' id='type-id-505'/>
<qualified-type-def type-id='type-id-506' const='yes' id='type-id-507'/>
<qualified-type-def type-id='type-id-508' const='yes' id='type-id-509'/>
<qualified-type-def type-id='type-id-510' const='yes' id='type-id-511'/>
<reference-type-def kind='lvalue' type-id='type-id-96' size-in-bits='64' id='type-id-512'/>
<reference-type-def kind='lvalue' type-id='type-id-33' size-in-bits='64' id='type-id-513'/>
<reference-type-def kind='lvalue' type-id='type-id-112' size-in-bits='64' id='type-id-514'/>
<reference-type-def kind='lvalue' type-id='type-id-96' size-in-bits='64' id='type-id-510'/>
<reference-type-def kind='lvalue' type-id='type-id-33' size-in-bits='64' id='type-id-511'/>
<reference-type-def kind='lvalue' type-id='type-id-112' size-in-bits='64' id='type-id-512'/>
<namespace-decl name='boost'>
<namespace-decl name='filesystem'>
<namespace-decl name='detail'>
<class-decl name='utf8_codecvt_facet' size-in-bits='192' is-struct='yes' visibility='default' filepath='src/third_party/boost-1.56.0/boost/detail/utf8_codecvt_facet.hpp' line='106' column='1' id='type-id-501'>
<class-decl name='utf8_codecvt_facet' size-in-bits='192' is-struct='yes' visibility='default' filepath='src/third_party/boost-1.56.0/boost/detail/utf8_codecvt_facet.hpp' line='106' column='1' id='type-id-499'>
<base-class access='public' layout-offset-in-bits='0' type-id='type-id-334'/>
<member-function access='public' constructor='yes'>
<function-decl name='utf8_codecvt_facet' filepath='src/third_party/boost-1.56.0/boost/detail/utf8_codecvt_facet.hpp' line='110' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-502' is-artificial='yes'/>
<parameter type-id='type-id-500' is-artificial='yes'/>
<parameter type-id='type-id-391'/>
<return type-id='type-id-18'/>
</function-decl>
</member-function>
<member-function access='protected'>
<function-decl name='invalid_continuing_octet' mangled-name='_ZNK5boost10filesystem6detail18utf8_codecvt_facet24invalid_continuing_octetEh' filepath='src/third_party/boost-1.56.0/boost/detail/utf8_codecvt_facet.hpp' line='134' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNK5boost10filesystem6detail18utf8_codecvt_facet24invalid_continuing_octetEh'>
<parameter type-id='type-id-505' is-artificial='yes'/>
<parameter type-id='type-id-498'/>
<parameter type-id='type-id-503' is-artificial='yes'/>
<parameter type-id='type-id-496'/>
<return type-id='type-id-1'/>
</function-decl>
</member-function>
<member-function access='protected'>
<function-decl name='invalid_leading_octet' mangled-name='_ZNK5boost10filesystem6detail18utf8_codecvt_facet21invalid_leading_octetEh' filepath='src/third_party/boost-1.56.0/boost/detail/utf8_codecvt_facet.hpp' line='138' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNK5boost10filesystem6detail18utf8_codecvt_facet21invalid_leading_octetEh'>
<parameter type-id='type-id-505' is-artificial='yes'/>
<parameter type-id='type-id-498'/>
<parameter type-id='type-id-503' is-artificial='yes'/>
<parameter type-id='type-id-496'/>
<return type-id='type-id-1'/>
</function-decl>
</member-function>
<member-function access='protected' static='yes'>
<function-decl name='get_cont_octet_count' mangled-name='_ZN5boost10filesystem6detail18utf8_codecvt_facet20get_cont_octet_countEh' filepath='src/third_party/boost-1.56.0/boost/detail/utf8_codecvt_facet.hpp' line='144' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost10filesystem6detail18utf8_codecvt_facet20get_cont_octet_countEh'>
<parameter type-id='type-id-498'/>
<parameter type-id='type-id-496'/>
<return type-id='type-id-7'/>
</function-decl>
</member-function>
<member-function access='protected' static='yes'>
<function-decl name='get_octet_count' mangled-name='_ZN5boost10filesystem6detail18utf8_codecvt_facet15get_octet_countEh' filepath='src/third_party/boost-1.56.0/boost/detail/utf8_codecvt_facet.hpp' line='148' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost10filesystem6detail18utf8_codecvt_facet15get_octet_countEh'>
<parameter type-id='type-id-498'/>
<parameter type-id='type-id-496'/>
<return type-id='type-id-7'/>
</function-decl>
</member-function>
<member-function access='protected'>
<function-decl name='get_cont_octet_out_count' mangled-name='_ZNK5boost10filesystem6detail18utf8_codecvt_facet24get_cont_octet_out_countEw' filepath='src/third_party/boost-1.56.0/boost/detail/utf8_codecvt_facet.hpp' line='152' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNK5boost10filesystem6detail18utf8_codecvt_facet24get_cont_octet_out_countEw'>
<parameter type-id='type-id-505' is-artificial='yes'/>
<parameter type-id='type-id-503' is-artificial='yes'/>
<parameter type-id='type-id-19'/>
<return type-id='type-id-11'/>
</function-decl>
</member-function>
<member-function access='protected' vtable-offset='2'>
<function-decl name='do_out' mangled-name='_ZNK5boost10filesystem6detail18utf8_codecvt_facet6do_outER11__mbstate_tPKwS6_RS6_PcS8_RS8_' filepath='src/third_party/boost-1.56.0/boost/detail/utf8_codecvt_facet.hpp' line='124' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNK5boost10filesystem6detail18utf8_codecvt_facet6do_outER11__mbstate_tPKwS6_RS6_PcS8_RS8_'>
<parameter type-id='type-id-505' is-artificial='yes'/>
<parameter type-id='type-id-513'/>
<parameter type-id='type-id-503' is-artificial='yes'/>
<parameter type-id='type-id-511'/>
<parameter type-id='type-id-96'/>
<parameter type-id='type-id-96'/>
<parameter type-id='type-id-512'/>
<parameter type-id='type-id-510'/>
<parameter type-id='type-id-62'/>
<parameter type-id='type-id-62'/>
<parameter type-id='type-id-503'/>
<parameter type-id='type-id-501'/>
<return type-id='type-id-474'/>
</function-decl>
</member-function>
<member-function access='protected' vtable-offset='3'>
<function-decl name='do_unshift' mangled-name='_ZNK5boost10filesystem6detail18utf8_codecvt_facet10do_unshiftER11__mbstate_tPcS5_RS5_' filepath='src/third_party/boost-1.56.0/boost/detail/utf8_codecvt_facet.hpp' line='159' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNK5boost10filesystem6detail18utf8_codecvt_facet10do_unshiftER11__mbstate_tPcS5_RS5_'>
<parameter type-id='type-id-505' is-artificial='yes'/>
<parameter type-id='type-id-513'/>
<parameter type-id='type-id-503' is-artificial='yes'/>
<parameter type-id='type-id-511'/>
<parameter type-id='type-id-62'/>
<parameter type-id='type-id-62'/>
<parameter type-id='type-id-503'/>
<parameter type-id='type-id-501'/>
<return type-id='type-id-474'/>
</function-decl>
</member-function>
<member-function access='protected' vtable-offset='4'>
<function-decl name='do_in' mangled-name='_ZNK5boost10filesystem6detail18utf8_codecvt_facet5do_inER11__mbstate_tPKcS6_RS6_PwS8_RS8_' filepath='src/third_party/boost-1.56.0/boost/detail/utf8_codecvt_facet.hpp' line='114' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNK5boost10filesystem6detail18utf8_codecvt_facet5do_inER11__mbstate_tPKcS6_RS6_PwS8_RS8_'>
<parameter type-id='type-id-505' is-artificial='yes'/>
<parameter type-id='type-id-513'/>
<parameter type-id='type-id-503' is-artificial='yes'/>
<parameter type-id='type-id-511'/>
<parameter type-id='type-id-36'/>
<parameter type-id='type-id-36'/>
<parameter type-id='type-id-506'/>
<parameter type-id='type-id-504'/>
<parameter type-id='type-id-112'/>
<parameter type-id='type-id-112'/>
<parameter type-id='type-id-514'/>
<parameter type-id='type-id-512'/>
<return type-id='type-id-474'/>
</function-decl>
</member-function>
<member-function access='protected' vtable-offset='5'>
<function-decl name='do_encoding' mangled-name='_ZNK5boost10filesystem6detail18utf8_codecvt_facet11do_encodingEv' filepath='src/third_party/boost-1.56.0/boost/detail/utf8_codecvt_facet.hpp' line='169' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNK5boost10filesystem6detail18utf8_codecvt_facet11do_encodingEv'>
<parameter type-id='type-id-505' is-artificial='yes'/>
<parameter type-id='type-id-503' is-artificial='yes'/>
<return type-id='type-id-11'/>
</function-decl>
</member-function>
<member-function access='protected' vtable-offset='6'>
<function-decl name='do_always_noconv' mangled-name='_ZNK5boost10filesystem6detail18utf8_codecvt_facet16do_always_noconvEv' filepath='src/third_party/boost-1.56.0/boost/detail/utf8_codecvt_facet.hpp' line='154' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNK5boost10filesystem6detail18utf8_codecvt_facet16do_always_noconvEv'>
<parameter type-id='type-id-505' is-artificial='yes'/>
<parameter type-id='type-id-503' is-artificial='yes'/>
<return type-id='type-id-1'/>
</function-decl>
</member-function>
<member-function access='protected' vtable-offset='7'>
<function-decl name='do_length' mangled-name='_ZNK5boost10filesystem6detail18utf8_codecvt_facet9do_lengthER11__mbstate_tPKcS6_m' filepath='src/third_party/boost-1.56.0/boost/detail/utf8_codecvt_facet.hpp' line='176' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNK5boost10filesystem6detail18utf8_codecvt_facet9do_lengthER11__mbstate_tPKcS6_m'>
<parameter type-id='type-id-505' is-artificial='yes'/>
<parameter type-id='type-id-513'/>
<parameter type-id='type-id-503' is-artificial='yes'/>
<parameter type-id='type-id-511'/>
<parameter type-id='type-id-36'/>
<parameter type-id='type-id-36'/>
<parameter type-id='type-id-391'/>
@ -6824,7 +6806,7 @@
</member-function>
<member-function access='protected' vtable-offset='8'>
<function-decl name='do_max_length' mangled-name='_ZNK5boost10filesystem6detail18utf8_codecvt_facet13do_max_lengthEv' filepath='src/third_party/boost-1.56.0/boost/detail/utf8_codecvt_facet.hpp' line='184' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNK5boost10filesystem6detail18utf8_codecvt_facet13do_max_lengthEv'>
<parameter type-id='type-id-505' is-artificial='yes'/>
<parameter type-id='type-id-503' is-artificial='yes'/>
<return type-id='type-id-11'/>
</function-decl>
</member-function>
@ -6833,18 +6815,18 @@
</namespace-decl>
</namespace-decl>
<namespace-decl name='std'>
<class-decl name='numeric_limits&lt;wchar_t&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/limits' line='650' column='1' id='type-id-515'>
<class-decl name='numeric_limits&lt;wchar_t&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/limits' line='650' column='1' id='type-id-513'>
<data-member access='public' static='yes'>
<var-decl name='is_specialized' type-id='type-id-221' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/limits' line='652' column='1'/>
</data-member>
<data-member access='public' static='yes'>
<var-decl name='digits' type-id='type-id-507' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/limits' line='665' column='1'/>
<var-decl name='digits' type-id='type-id-505' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/limits' line='665' column='1'/>
</data-member>
<data-member access='public' static='yes'>
<var-decl name='digits10' type-id='type-id-507' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/limits' line='666' column='1'/>
<var-decl name='digits10' type-id='type-id-505' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/limits' line='666' column='1'/>
</data-member>
<data-member access='public' static='yes'>
<var-decl name='max_digits10' type-id='type-id-507' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/limits' line='669' column='1'/>
<var-decl name='max_digits10' type-id='type-id-505' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/limits' line='669' column='1'/>
</data-member>
<data-member access='public' static='yes'>
<var-decl name='is_signed' type-id='type-id-221' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/limits' line='671' column='1'/>
@ -6856,19 +6838,19 @@
<var-decl name='is_exact' type-id='type-id-221' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/limits' line='673' column='1'/>
</data-member>
<data-member access='public' static='yes'>
<var-decl name='radix' type-id='type-id-507' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/limits' line='674' column='1'/>
<var-decl name='radix' type-id='type-id-505' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/limits' line='674' column='1'/>
</data-member>
<data-member access='public' static='yes'>
<var-decl name='min_exponent' type-id='type-id-507' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/limits' line='682' column='1'/>
<var-decl name='min_exponent' type-id='type-id-505' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/limits' line='682' column='1'/>
</data-member>
<data-member access='public' static='yes'>
<var-decl name='min_exponent10' type-id='type-id-507' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/limits' line='683' column='1'/>
<var-decl name='min_exponent10' type-id='type-id-505' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/limits' line='683' column='1'/>
</data-member>
<data-member access='public' static='yes'>
<var-decl name='max_exponent' type-id='type-id-507' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/limits' line='684' column='1'/>
<var-decl name='max_exponent' type-id='type-id-505' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/limits' line='684' column='1'/>
</data-member>
<data-member access='public' static='yes'>
<var-decl name='max_exponent10' type-id='type-id-507' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/limits' line='685' column='1'/>
<var-decl name='max_exponent10' type-id='type-id-505' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/limits' line='685' column='1'/>
</data-member>
<data-member access='public' static='yes'>
<var-decl name='has_infinity' type-id='type-id-221' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/limits' line='687' column='1'/>
@ -6880,7 +6862,7 @@
<var-decl name='has_signaling_NaN' type-id='type-id-221' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/limits' line='689' column='1'/>
</data-member>
<data-member access='public' static='yes'>
<var-decl name='has_denorm' type-id='type-id-509' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/limits' line='690' column='1'/>
<var-decl name='has_denorm' type-id='type-id-507' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/limits' line='690' column='1'/>
</data-member>
<data-member access='public' static='yes'>
<var-decl name='has_denorm_loss' type-id='type-id-221' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/limits' line='692' column='1'/>
@ -6901,7 +6883,7 @@
<var-decl name='tinyness_before' type-id='type-id-221' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/limits' line='711' column='1'/>
</data-member>
<data-member access='public' static='yes'>
<var-decl name='round_style' type-id='type-id-511' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/limits' line='712' column='1'/>
<var-decl name='round_style' type-id='type-id-509' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/limits' line='712' column='1'/>
</data-member>
<member-function access='public' static='yes'>
<function-decl name='min' mangled-name='_ZNSt14numeric_limitsIwE3minEv' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/limits' line='655' column='1' visibility='default' binding='global' size-in-bits='64'>
@ -6949,13 +6931,13 @@
</function-decl>
</member-function>
</class-decl>
<enum-decl name='float_denorm_style' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/limits' line='171' column='1' id='type-id-508'>
<enum-decl name='float_denorm_style' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/limits' line='171' column='1' id='type-id-506'>
<underlying-type type-id='type-id-142'/>
<enumerator name='denorm_indeterminate' value='-1'/>
<enumerator name='denorm_absent' value='0'/>
<enumerator name='denorm_present' value='1'/>
</enum-decl>
<enum-decl name='float_round_style' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/limits' line='156' column='1' id='type-id-510'>
<enum-decl name='float_round_style' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/limits' line='156' column='1' id='type-id-508'>
<underlying-type type-id='type-id-142'/>
<enumerator name='round_indeterminate' value='-1'/>
<enumerator name='round_toward_zero' value='0'/>