aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3
diff options
context:
space:
mode:
Diffstat (limited to 'libstdc++-v3')
-rw-r--r--libstdc++-v3/ChangeLog476
-rw-r--r--libstdc++-v3/ChangeLog-1998942
-rw-r--r--libstdc++-v3/ChangeLog-19993545
-rw-r--r--libstdc++-v3/ChangeLog-20004486
-rw-r--r--libstdc++-v3/Makefile.in3
-rw-r--r--libstdc++-v3/acinclude.m422
-rw-r--r--libstdc++-v3/aclocal.m434
-rw-r--r--libstdc++-v3/config/abi/powerpc64-linux-gnu/32/baseline_symbols.txt3083
-rw-r--r--libstdc++-v3/config/abi/powerpc64-linux-gnu/32/nof/baseline_symbols.txt3083
-rw-r--r--libstdc++-v3/config/abi/powerpc64-linux-gnu/baseline_symbols.txt3239
-rw-r--r--libstdc++-v3/config/allocator/bitmap_allocator_base.h4
-rw-r--r--libstdc++-v3/config/allocator/malloc_allocator_base.h4
-rw-r--r--libstdc++-v3/config/allocator/mt_allocator_base.h4
-rw-r--r--libstdc++-v3/config/allocator/new_allocator_base.h4
-rw-r--r--libstdc++-v3/config/allocator/pool_allocator_base.h4
-rw-r--r--libstdc++-v3/config/cpu/alpha/atomicity.h38
-rw-r--r--libstdc++-v3/config/cpu/ia64/atomicity.h4
-rw-r--r--libstdc++-v3/config/cpu/powerpc/atomicity.h40
-rw-r--r--libstdc++-v3/config/cpu/s390/atomicity.h16
-rw-r--r--libstdc++-v3/config/linker-map.gnu14
-rwxr-xr-xlibstdc++-v3/configure18
-rw-r--r--libstdc++-v3/configure.ac2
-rw-r--r--libstdc++-v3/configure.host3
-rw-r--r--libstdc++-v3/docs/html/abi.html9
-rw-r--r--libstdc++-v3/docs/html/debug.html5
-rw-r--r--libstdc++-v3/docs/html/test.html4
-rw-r--r--libstdc++-v3/include/Makefile.am2
-rw-r--r--libstdc++-v3/include/Makefile.in5
-rw-r--r--libstdc++-v3/include/bits/allocator.h8
-rw-r--r--libstdc++-v3/include/bits/basic_string.h19
-rw-r--r--libstdc++-v3/include/bits/basic_string.tcc20
-rw-r--r--libstdc++-v3/include/bits/c++config51
-rw-r--r--libstdc++-v3/include/bits/deque.tcc54
-rw-r--r--libstdc++-v3/include/bits/fstream.tcc3
-rw-r--r--libstdc++-v3/include/bits/list.tcc6
-rw-r--r--libstdc++-v3/include/bits/stl_algo.h24
-rw-r--r--libstdc++-v3/include/bits/stl_algobase.h4
-rw-r--r--libstdc++-v3/include/bits/stl_deque.h89
-rw-r--r--libstdc++-v3/include/bits/stl_function.h6
-rw-r--r--libstdc++-v3/include/bits/stl_list.h74
-rw-r--r--libstdc++-v3/include/bits/stl_map.h73
-rw-r--r--libstdc++-v3/include/bits/stl_multimap.h81
-rw-r--r--libstdc++-v3/include/bits/stl_multiset.h88
-rw-r--r--libstdc++-v3/include/bits/stl_set.h78
-rw-r--r--libstdc++-v3/include/bits/stl_vector.h81
-rw-r--r--libstdc++-v3/include/bits/vector.tcc60
-rw-r--r--libstdc++-v3/include/c_std/std_cstdlib.h13
-rw-r--r--libstdc++-v3/include/debug/debug.h453
-rw-r--r--libstdc++-v3/include/debug/deque10
-rw-r--r--libstdc++-v3/include/debug/functions.h286
-rw-r--r--libstdc++-v3/include/debug/hash_map8
-rw-r--r--libstdc++-v3/include/debug/hash_set8
-rw-r--r--libstdc++-v3/include/debug/list10
-rw-r--r--libstdc++-v3/include/debug/macros.h229
-rw-r--r--libstdc++-v3/include/debug/map.h10
-rw-r--r--libstdc++-v3/include/debug/multimap.h10
-rw-r--r--libstdc++-v3/include/debug/multiset.h10
-rw-r--r--libstdc++-v3/include/debug/safe_iterator.h7
-rw-r--r--libstdc++-v3/include/debug/safe_sequence.h4
-rw-r--r--libstdc++-v3/include/debug/set.h10
-rw-r--r--libstdc++-v3/include/debug/string33
-rw-r--r--libstdc++-v3/include/debug/vector8
-rw-r--r--libstdc++-v3/include/ext/array_allocator.h5
-rw-r--r--libstdc++-v3/include/ext/hash_map7
-rw-r--r--libstdc++-v3/include/ext/hash_set7
-rw-r--r--libstdc++-v3/include/std/std_complex.h12
-rw-r--r--libstdc++-v3/include/std/std_sstream.h36
-rw-r--r--libstdc++-v3/include/tr1/hashtable2786
-rw-r--r--libstdc++-v3/include/tr1/unordered_map236
-rw-r--r--libstdc++-v3/include/tr1/unordered_set229
-rw-r--r--libstdc++-v3/libmath/Makefile.in3
-rw-r--r--libstdc++-v3/libmath/stubs.c17
-rw-r--r--libstdc++-v3/libsupc++/Makefile.in3
-rw-r--r--libstdc++-v3/libsupc++/unwind-cxx.h2
-rw-r--r--libstdc++-v3/po/Makefile.in3
-rw-r--r--libstdc++-v3/src/Makefile.in3
-rw-r--r--libstdc++-v3/src/bitmap_allocator.cc4
-rw-r--r--libstdc++-v3/src/debug.cc9
-rw-r--r--libstdc++-v3/src/misc-inst.cc5
-rw-r--r--libstdc++-v3/src/mt_allocator.cc5
-rw-r--r--libstdc++-v3/src/pool_allocator.cc1
-rw-r--r--libstdc++-v3/testsuite/17_intro/no_assert_neg.cc89
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/1.cc36
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/2.cc36
-rw-r--r--libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/1.cc (renamed from libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/2.cc35
-rw-r--r--libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/3.cc35
-rw-r--r--libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/1.cc (renamed from libstdc++-v3/testsuite/23_containers/list/explicit_instantiation.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/2.cc35
-rw-r--r--libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/3.cc35
-rw-r--r--libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/1.cc (renamed from libstdc++-v3/testsuite/23_containers/map/explicit_instantiation.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/2.cc37
-rw-r--r--libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/3.cc35
-rw-r--r--libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/1.cc (renamed from libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/2.cc36
-rw-r--r--libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/3.cc35
-rw-r--r--libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/1.cc (renamed from libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/2.cc35
-rw-r--r--libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/3.cc35
-rw-r--r--libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/1.cc (renamed from libstdc++-v3/testsuite/23_containers/set/explicit_instantiation.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/2.cc35
-rw-r--r--libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/3.cc35
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/1.cc (renamed from libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/2.cc35
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/3.cc35
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/adjacent_find/1.cc67
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/adjacent_find/check_type.cc42
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/binary_search/1.cc54
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/binary_search/check_type.cc42
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/count/1.cc58
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/count/check_type.cc42
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/count_if/1.cc65
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/count_if/check_type.cc52
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/equal/1.cc73
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/equal/check_type.cc48
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/equal/equal.cc (renamed from libstdc++-v3/testsuite/25_algorithms/equal.cc)0
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/equal_range/1.cc63
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/equal_range/check_type.cc43
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/find/1.cc58
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/find/check_type.cc38
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/find_end/1.cc57
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/find_end/check_type.cc53
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/find_first_of/1.cc58
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/find_first_of/check_type.cc49
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/find_if/1.cc65
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/find_if/check_type.cc49
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/heap/heap.cc (renamed from libstdc++-v3/testsuite/25_algorithms/heap.cc)0
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/includes/1.cc90
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/includes/check_type.cc46
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/inplace_merge/1.cc84
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/inplace_merge/check_type.cc48
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/1.cc86
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/check_type.cc51
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/lower_bound/1.cc47
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/lower_bound/check_type.cc44
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/lower_bound/lower_bound.cc (renamed from libstdc++-v3/testsuite/25_algorithms/lower_bound.cc)0
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/max_element/1.cc71
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/max_element/check_type.cc44
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/merge/1.cc101
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/merge/check_type.cc46
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/min_element/1.cc71
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/min_element/check_type.cc44
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/mismatch/1.cc89
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/mismatch/check_type.cc51
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/next_permutation/1.cc84
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/next_permutation/check_type.cc44
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/nth_element/1.cc79
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/nth_element/check_type.cc45
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/partial_sort/1.cc66
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/partial_sort/check_type.cc49
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/1.cc89
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/check_type.cc68
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/partition/partition.cc (renamed from libstdc++-v3/testsuite/25_algorithms/partition.cc)0
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/prev_permutation/1.cc84
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/prev_permutation/check_type.cc44
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/remove/1.cc63
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/remove/check_type.cc39
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/remove_if/1.cc66
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/remove_if/check_type.cc50
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/replace/1.cc61
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/replace/check_type.cc38
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/replace_copy/1.cc72
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/replace_copy/check_type.cc56
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/replace_copy_if/1.cc76
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/replace_copy_if/check_type.cc56
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/replace_if/1.cc65
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/replace_if/check_type.cc52
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/rotate/1.cc126
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/rotate/check_type.cc48
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/rotate/rotate.cc (renamed from libstdc++-v3/testsuite/25_algorithms/rotate.cc)0
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/search/1.cc113
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/search/check_type.cc46
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/search_n/check_type.cc39
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/search_n/iterator.cc2
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/set_difference/1.cc132
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/set_difference/check_type.cc44
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/set_intersection/1.cc132
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/set_intersection/check_type.cc44
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/1.cc134
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/check_type.cc45
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/set_union/1.cc137
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/set_union/check_type.cc44
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/stable_sort/1.cc90
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/stable_sort/check_type.cc49
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/swap_ranges/1.cc60
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/swap_ranges/check_type.cc35
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/unique_copy/1.cc85
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/unique_copy/check_type.cc55
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/upper_bound/1.cc47
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/upper_bound/check_type.cc44
-rw-r--r--libstdc++-v3/testsuite/26_numerics/cstdlib/13943.cc52
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_filebuf/in_avail/char/9701-3.cc (renamed from libstdc++-v3/testsuite/27_io/basic_streambuf/in_avail/char/9701-3.cc)0
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_streambuf/in_avail/char/1.cc (renamed from libstdc++-v3/testsuite/27_io/basic_streambuf/in_avail/wchar_t/9701-3.cc)49
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_streambuf/in_avail/wchar_t/1.cc54
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_stringbuf/in_avail/char/1.cc6
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_stringbuf/in_avail/char/21955.cc54
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_stringbuf/in_avail/wchar_t/1.cc6
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/1.cc4
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/1.cc4
-rw-r--r--libstdc++-v3/testsuite/27_io/ios_base/cons/assign_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/ios_base/cons/copy_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/Makefile.in3
-rw-r--r--libstdc++-v3/testsuite/ext/array_allocator/2.cc12
-rw-r--r--libstdc++-v3/testsuite/ext/is_heap/1.cc46
-rw-r--r--libstdc++-v3/testsuite/ext/is_heap/check_type.cc47
-rw-r--r--libstdc++-v3/testsuite/ext/median.cc42
-rw-r--r--libstdc++-v3/testsuite/lib/libstdc++.exp31
-rw-r--r--libstdc++-v3/testsuite/libstdc++-dg/normal.exp3
-rw-r--r--libstdc++-v3/testsuite/testsuite_abi.cc1
-rw-r--r--libstdc++-v3/testsuite/testsuite_hooks.h18
-rw-r--r--libstdc++-v3/testsuite/testsuite_iterators.h40
211 files changed, 23347 insertions, 7165 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index ff614e30eed..d1f7e03cadc 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,479 @@
+2005-06-15 Paolo Carlini <pcarlini@suse.de>
+
+ * include/tr1/hashtable: Trivial formatting fixes.
+ * include/tr1/unordered_map: Likewise.
+ * include/tr1/unordered_set: Likewise.
+
+2005-06-14 Tom Tromey <tromey@redhat.com>
+
+ PR libgcj/19877:
+ * configure, aclocal.m4: Rebuilt.
+ * Makefile.in, include/Makefile.in, libmath/Makefile.in,
+ libsupc++/Makefile.in, po/Makefile.in, src/Makefile.in,
+ testsuite/Makefile.in: Likewise.
+
+2005-06-08 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/21955
+ * include/std/std_sstream.h (basic_stringbuf::showmanyc): Add.
+ Remove unnecessary this->_M_mode decoration.
+ * include/bits/fstream.tcc: Adjust line spacing.
+ * testsuite/27_io/basic_streambuf/in_avail/char/1.cc: New, test
+ base class behavior.
+ * testsuite/27_io/basic_streambuf/in_avail/wchar_t/1.cc: Same.
+ * testsuite/27_io/basic_stringbuf/in_avail/char/21955.cc: New.
+ * testsuite/27_io/basic_stringbuf/in_avail/char/1.cc: Match
+ filebuf behavior.
+ * testsuite/27_io/basic_stringbuf/in_avail/wchar_t/1.cc: Same.
+ * testsuite/27_io/basic_stringbuf/str/wchar_t/1.cc: Same.
+ * testsuite/27_io/basic_stringbuf/str/char/1.cc: Same.
+ * testsuite/27_io/basic_streambuf/in_avail/char/9701-3.cc: Move...
+ * testsuite/27_io/basic_filebuf/in_avail/char/9701-3.cc: ...here.
+
+2005-06-07 Benjamin Kosnik <bkoz@redhat.com>
+
+ * acinclude.m4 (GLIBCXX_ENABLE_C99): Use C++ compiler for complex
+ tests.
+ * configure: Regenerated.
+
+2005-06-07 Adrian Straetling <straetling@de.ibm.com>
+
+ * config/cpu/s390/atomicity.h: (__exchange_and_add,
+ __atomic_add): Use the builtins for atomic memory operations.
+
+2005-06-06 Paolo Carlini <pcarlini@suse.de>
+
+ PR libstdc++/21770 (cont: __gnu_debug::string)
+ * include/debug/string: Use _Base typedefs for pointer, const_pointer,
+ reference, const_reference, size_type, difference_type.
+ * testsuite/21_strings/basic_string/2.cc: New.
+
+2005-06-06 Paolo Carlini <pcarlini@suse.de>
+
+ PR libstdc++/21770 (cont: debug-mode)
+ * include/debug/deque: Use _Base typedefs for pointer, const_pointer,
+ reference, const_reference.
+ * include/debug/list: Likewise.
+ * include/debug/map.h: Likewise.
+ * include/debug/multimap.h: Likewise.
+ * include/debug/multiset.h: Likewise.
+ * include/debug/set.h: Likewise.
+ * include/debug/vector: Likewise.
+
+2005-06-06 Paolo Carlini <pcarlini@suse.de>
+
+ Port from libstdcxx_so_7-branch:
+ 2004-09-24 Paolo Carlini <pcarlini@suse.de>
+ Jonathan Wakely <redi@gcc.gnu.org>
+
+ * include/bits/stl_list.h (list::list(size_type, value_type,
+ const allocator_type&): Implement according to the letter of the
+ standard, i.e., don't use two overloads, not equivalent in case
+ of non default constructible T.
+ (list::resize(size_type, const value_type&)): Fix the signature:
+ according to the standard the second argument is by value; also,
+ don't use two overloads.
+ * include/bits/list.tcc (list::resize(size_type, const value_type&)):
+ Adjust consistently the signature.
+ * include/bits/stl_deque.h (deque::deque(size_type, value_type,
+ const allocator_type&)): Likewise.
+ (deque::resize(size_type, const value_type&)): Likewise.
+ * include/bits/stl_vector.h (vector::vector(size_type, value_type,
+ const allocator_type&)): Likewise.
+ (vector::resize(size_type, const value_type&)): Likewise.
+ * testsuite/testsuite_hooks.h: Add NonDefaultConstructible test type.
+ * testsuite/23_containers/deque/explicit_instantiation/2.cc: New.
+ * testsuite/23_containers/list/explicit_instantiation/2.cc: New.
+ * testsuite/23_containers/map/explicit_instantiation/2.cc: New.
+ * testsuite/23_containers/multimap/explicit_instantiation/2.cc: New.
+ * testsuite/23_containers/multiset/explicit_instantiation/2.cc: New.
+ * testsuite/23_containers/set/explicit_instantiation/2.cc: New.
+ * testsuite/23_containers/vector/explicit_instantiation/2.cc: New.
+
+ * include/bits/deque.tcc: Minor formatting fix.
+
+2005-06-06 Peter Doerfler <doerfler@techinfo.rwth-aachen.de>
+
+ * include/bits/stl_function.h: ... and another one.
+
+2005-06-06 Peter Doerfler <doerfler@techinfo.rwth-aachen.de>
+
+ * include/bits/stl_function.h: Fix typo in comment.
+
+2005-06-05 Paolo Carlini <pcarlini@suse.de>
+
+ * acinclude.m4 ([GLIBCXX_ENABLE_C99]): Check clog, clogf, clogl
+ too for ac_c99_complex.
+ * configure: Regenerate.
+
+2005-06-03 Paolo Carlini <pcarlini@suse.de>
+
+ PR libstdc++/21770
+ * include/bits/stl_deque.h: Add concept-check. In class _Deque_base
+ rebind _Alloc to _Tp_alloc_type, change _Deque_impl to inherit from
+ the latter and add _M_get_Tp_allocator() which returns it. Use
+ everywhere _M_get_Tp_allocator() instead of get_allocator().
+ * include/bits/deque.tcc: Likewise, use _M_get_Tp_allocator().
+ * include/bits/stl_list.h: Add concept-check. In class _List_base
+ rebind _Alloc to _Tp_alloc_type and add _M_get_Tp_allocator(), which
+ returns the allocator (of type _Node_alloc_type) converted to
+ _Tp_alloc_type. Use everywhere _M_get_Tp_allocator() instead of
+ get_allocator().
+ * include/bits/list.tcc: Likewise, use _M_get_Tp_allocator().
+ * include/bits/stl_vector.h: Add concept-check. In class _Vector_base
+ rebind _Alloc to _Tp_alloc_type, change _Vector_impl to inherit from
+ the latter and add _M_get_Tp_allocator() which returns it. Use
+ everywhere _M_get_Tp_allocator() instead of get_allocator().
+ * include/bits/vector.tcc: Likewise, use _M_get_Tp_allocator().
+ * include/bits/stl_map.h: Add concept-check. Rebind _Alloc to
+ _Pair_alloc_type and use it for _Rb_tree.
+ * include/bits/stl_multimap.h: Likewise.
+ * include/bits/stl_multiset.h: Add concept-check. Rebind _Alloc to
+ _Key_alloc_type and use it for _Rb_tree.
+ * include/bits/stl_set.h: Likewise.
+ * include/bits/basic_string.h: Rebind _Alloc to _CharT_alloc_type and
+ use it for the allocator typedefs.
+ * testsuite/21_strings/basic_string/1.cc: New.
+ * testsuite/23_containers/deque/explicit_instantiation.cc: Move to...
+ * testsuite/23_containers/deque/explicit_instantiation/1.cc: ... here.
+ * testsuite/23_containers/deque/explicit_instantiation/3.cc: New.
+ * testsuite/23_containers/list/explicit_instantiation.cc: Move to...
+ * testsuite/23_containers/list/explicit_instantiation/1.cc: ... here.
+ * testsuite/23_containers/list/explicit_instantiation/3.cc: New.
+ * testsuite/23_containers/map/explicit_instantiation.cc: Move to...
+ * testsuite/23_containers/map/explicit_instantiation/1.cc: ... here.
+ * testsuite/23_containers/map/explicit_instantiation/3.cc: New.
+ * testsuite/23_containers/multimap/explicit_instantiation.cc: Move to...
+ * testsuite/23_containers/multimap/explicit_instantiation/1.cc: .. here.
+ * testsuite/23_containers/multimap/explicit_instantiation/3.cc: New.
+ * testsuite/23_containers/multiset/explicit_instantiation.cc: Move to...
+ * testsuite/23_containers/multiset/explicit_instantiation/1.cc: .. here.
+ * testsuite/23_containers/multiset/explicit_instantiation/3.cc: New.
+ * testsuite/23_containers/set/explicit_instantiation.cc: Move to...
+ * testsuite/23_containers/set/explicit_instantiation/1.cc: .. here.
+ * testsuite/23_containers/set/explicit_instantiation/3.cc: New.
+ * testsuite/23_containers/vector/explicit_instantiation.cc: Move to...
+ * testsuite/23_containers/vector/explicit_instantiation/1.cc: ... here.
+ * testsuite/23_containers/vector/explicit_instantiation/3.cc: New.
+
+2005-06-02 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/21280
+ * testsuite/27_io/ios_base/cons/assign_neg.cc: Adjust expected errors.
+ * testsuite/27_io/ios_base/cons/copy_neg.cc: Likewise.
+
+2005-05-31 Paolo Carlini <pcarlini@suse.de>
+
+ PR libstdc++/20534 (contd)
+ * include/debug/macros.h: Add _GLIBCXX_DEBUG_ABORT, using
+ __gnu_debug::__fancy_abort.
+ * src/debug.cc: Define the latter.
+ * include/debug/debug.h: Use _GLIBCXX_DEBUG_ABORT instead of
+ assert.
+ * config/linker-map.gnu (__gnu_debug::__fancy_abort): Add.
+
+2005-05-30 Paolo Carlini <pcarlini@suse.de>
+
+ * include/std/std_complex.h (log(const complex<_Tp>&)): When
+ _GLIBCXX_USE_C99_COMPLEX, forward to __builtin_clog/clogf/clogl.
+
+2005-05-28 Paolo Carlini <pcarlini@suse.de>
+
+ Revert:
+ 2005-05-18 Paolo Carlini <pcarlini@suse.de>
+ Nathan Myers <ncm@cantrip.org>
+
+ PR libstdc++/19495
+ * include/bits/basic_string.h (_Raw_bytes_alloc): Rebind to
+ size_type instead of char and rename to _Raw_alloc.
+ * include/bits/basic_string.tcc (_Rep::_M_destroy, _Rep::_S_create):
+ Use the above.
+ * src/bitmap_allocator.cc: Add instantiation for size_type.
+ * src/mt_allocator.cc: Likewise.
+ * src/pool_allocator.cc: Likewise.
+ * include/ext/array_allocator.h: Tweak slightly, avoid assuming
+ the existence of an _Array::begin() and size() members.
+ * testsuite/ext/array_allocator/2.cc: Tweak to use an allocator
+ of size_type, instead of char, thus avoiding problems with
+ rebinds, not treated correctly by array_allocator.
+
+2005-05-27 Paolo Carlini <pcarlini@suse.de>
+
+ * docs/html/abi.html: Mention 3.4.0 as the current baseline; add
+ a notice about the configure options.
+
+2005-05-27 Mark Mitchell <mark@codesourcery.com>
+
+ * docs/html/test.html: Mention PCH_CXXFLAGS.
+ * testsuite/lib/libstdc++.exp: Set PCH_CXXFLAGS by probing for an
+ available stcd++.h PCH.
+ * testsuite/libstdc++-dg/normal.exp: Use PCH_CXXFLAGS.
+
+2005-05-27 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
+
+ * src/misc-inst.cc: Remove unnecessary included files.
+
+2005-05-27 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/21674
+ * include/bits/c++config: Remove extern template use when in debug
+ mode, disable for non-weak systems.
+
+2005-05-27 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/20534
+ * include/debug/debug.h: Forwarding header, that pulls in details
+ only if in debug mode.
+ * include/debug/macros.h: ...transfer all the internal macros here.
+ * include/debug/functions.h: ...transfer all the functions here.
+ * include/debug/safe_iterator.h: Add functions.h, macros.h includes.
+ * include/debug/safe_sequence.h: Same.
+ * include/debug/vector: Tweak.
+ * include/Makefile.am (debug_headers): Add new includes.
+ * include/Makefile.in: Regenerate.
+ * testsuite/17_intro/no_assert_neg.cc: Add.
+
+ * include/ext/hash_set: Add debug mode include.
+ * include/ext/hash_map: Same.
+ * include/debug/hash_map: Fix included files to match actual files.
+ * include/debug/hash_set: Same.
+
+2005-05-26 Paolo Carlini <pcarlini@suse.de>
+
+ PR libstdc++/13943
+ * include/c_std/std_cstdlib.h: Do not open code llabs and lldiv,
+ available when _GLIBCXX_USE_C99 is defined.
+ * testsuite/26_numerics/cstdlib/13943.cc: New.
+
+ * acinclude.m4 ([GLIBCXX_ENABLE_C99]): For completeness, check
+ also strtoll and strtoull for ac_c99_stdlib.
+ * configure: Regenerate.
+
+2005-05-25 Benjamin Kosnik <bkoz@redhat.com>
+
+ * config/linker-map.gnu: Add linkage support for no extern templates.
+ (std::ios_base::_M_call_callbacks): Add.
+ (std::ios_base::_M_dispose_callbacks): Add.
+ (std::locale::facet::_S_get_c_name): Add.
+ (std::__copy_streambufs): Add.
+ * configure.ac (libtool_VERSION): To 6:5:0.
+ * configure: Regenerate.
+ * testsuite/testsuite_abi.cc (check_version): Add GLIBCXX_3.4.5.
+
+2005-05-25 Paolo Carlini <pcarlini@suse.de>
+
+ * include/bits/basic_string.h (_Rep::_M_set_length_and_sharable):
+ Use, consistently, traits_type::assign.
+
+2005-05-25 Paolo Carlini <pcarlini@suse.de>
+
+ * config/cpu/alpha/atomicity.h: Use the builtins for
+ atomic memory operations.
+ * config/cpu/powerpc/atomicity.h: Likewise.
+ * config/cpu/ia64/atomicity.h: Do not include ia64intrin.h.
+
+2005-05-24 Paolo Carlini <pcarlini@suse.de>
+
+ * testsuite/25_algorithms/equal.cc: Move to...
+ * testsuite/25_algorithms/equal: ... here.
+ * testsuite/25_algorithms/lower_bound.cc: Move to...
+ * testsuite/25_algorithms/lower_bound: ... here.
+
+2005-05-24 Paolo Carlini <pcarlini@suse.de>
+
+ Port from libstdcxx_so_7-branch:
+ 2005-20-05 Chris Jefferson <chris@bubblescope.net>
+
+ * testsuite/25_algorithms/heap.cc: Move to...
+ * testsuite/25_algorithms/heap/heap.cc: ...here.
+ * testsuite/25_algorithms/partition.cc: Move to...
+ * testsuite/25_algorithms/partition/partition.cc: ...here.
+
+ 2005-03-29 Christopher Jefferson <chris@bubblescope.net>
+
+ * testsuite/25_algorithms/includes/1.cc: Add tests.
+ * testsuite/25_algorithms/search/1.cc: Likewise.
+ * testsuite/25_algorithms/unique_copy/1.cc: Likewise.
+ * testsuite/25_algorithms/swap_ranges/1.cc: New.
+ * testsuite/25_algorithms/swap_ranges/check_type.cc: New.
+ * testsuite/25_algorithms/rotate.cc: Move to...
+ * testsuite/25_algorithms/rotate/rotate.cc: ... here.
+ * testsuite/25_algorithms/rotate/1.cc: New.
+ * testsuite/25_algorithms/rotate/check_type.cc: New.
+ * testsuite/25_algorithms/search_n/iterator.cc: Fix typo.
+
+ 2005-03-14 Christopher Jefferson <chris@bubblescope.net>
+
+ * include/bits/stl_algo.h (replace_copy, replace_copy_if):
+ Don't assume that __new_value and *__first are convertible to
+ each other.
+
+ * testsuite/25_algorithms/find/1.cc: New.
+ * testsuite/25_algorithms/find/check_type.cc: New.
+ * testsuite/25_algorithms/find_if/1.cc: New.
+ * testsuite/25_algorithms/find_if/check_type.cc: New.
+ * testsuite/25_algorithms/replace/1.cc: New.
+ * testsuite/25_algorithms/replace/check_type.cc: New.
+ * testsuite/25_algorithms/replace_if/1.cc: New.
+ * testsuite/25_algorithms/replace_if/check_type.cc: New.
+ * testsuite/25_algorithms/replace_copy/1.cc: New.
+ * testsuite/25_algorithms/replace_copy/check_type.cc: New.
+ * testsuite/25_algorithms/replace_copy_if/1.cc: New.
+ * testsuite/25_algorithms/replace_copy_if/check_type.cc: New.
+ * testsuite/25_algorithms/remove/1.cc: New.
+ * testsuite/25_algorithms/remove/check_type.cc: New.
+ * testsuite/25_algorithms/remove_if/1.cc: New.
+ * testsuite/25_algorithms/remove_if/check_type.cc: New.
+ * testsuite/25_algorithms/count/1.cc: New.
+ * testsuite/25_algorithms/count/check_type.cc: New.
+ * testsuite/25_algorithms/count_if/1.cc: New.
+ * testsuite/25_algorithms/count_if/check_type.cc: New.
+
+ 2005-02-27 Christopher Jefferson <chris@bubblescope.net>
+ Paolo Carlini <pcarlini@suse.de>
+
+ * testsuite/ext/is_heap/check_type.cc: New.
+
+ 2005-02-27 Paolo Carlini <pcarlini@suse.de>
+
+ * testsuite/ext/is_heap/1.cc: New.
+
+ 2005-02-01 Christopher Jefferson <chris@bubblescope.net>
+
+ * testsuite/ext/median.cc: New.
+ * testsuite/25_algorithms/adjacent_find/1.cc: New.
+ * testsuite/25_algorithms/adjacent_find/check_type.cc: New.
+ * testsuite/25_algorithms/search/1.cc: New.
+ * testsuite/25_algorithms/search/check_type.cc: New.
+ * testsuite/25_algorithms/unique_copy/1.cc: New.
+ * testsuite/25_algorithms/unique_copy/check_type.cc: New.
+ * testsuite/25_algorithms/partial_sort/1.cc: New.
+ * testsuite/25_algorithms/partial_sort/check_type.cc: New.
+ * testsuite/25_algorithms/partial_sort_copy/1.cc: New.
+ * testsuite/25_algorithms/partial_sort_copy/check_type.cc: New.
+ * testsuite/25_algorithms/lower_bound/1.cc: New.
+ * testsuite/25_algorithms/lower_bound/check_type.cc: New.
+ * testsuite/25_algorithms/upper_bound/1.cc: New.
+ * testsuite/25_algorithms/upper_bound/check_type.cc: New.
+ * testsuite/25_algorithms/merge/1.cc: New.
+ * testsuite/25_algorithms/merge/check_type.cc: New.
+ * testsuite/25_algorithms/inplace_merge/1.cc: New.
+ * testsuite/25_algorithms/inplace_merge/check_type.cc: New.
+ * testsuite/25_algorithms/stable_sort/1.cc: New.
+ * testsuite/25_algorithms/stable_sort/check_type.cc: New.
+ * testsuite/25_algorithms/nth_element/1.cc: New.
+ * testsuite/25_algorithms/nth_element/check_type.cc: New.
+ * testsuite/25_algorithms/equal_range/1.cc: New.
+ * testsuite/25_algorithms/equal_range/check_type.cc: New.
+ * testsuite/25_algorithms/binary_search/1.cc: New.
+ * testsuite/25_algorithms/binary_search/check_type.cc: New.
+ * testsuite/25_algorithms/includes/1.cc: New.
+ * testsuite/25_algorithms/includes/check_type.cc: New.
+ * testsuite/25_algorithms/set_union/1.cc: New.
+ * testsuite/25_algorithms/set_union/check_type.cc: New.
+ * testsuite/25_algorithms/set_intersection/1.cc: New.
+ * testsuite/25_algorithms/set_intersection/check_type.cc: New.
+ * testsuite/25_algorithms/set_difference/1.cc: New.
+ * testsuite/25_algorithms/set_difference/check_type.cc: New.
+ * testsuite/25_algorithms/set_symmetric_difference/1.cc: New.
+ * testsuite/25_algorithms/set_symmetric_difference/check_type.cc: New.
+ * testsuite/25_algorithms/min_element/1.cc: New.
+ * testsuite/25_algorithms/min_element/check_type.cc: New.
+ * testsuite/25_algorithms/max_element/1.cc: New.
+ * testsuite/25_algorithms/max_element/check_type.cc: New.
+ * testsuite/25_algorithms/prev_permutation/1.cc: New.
+ * testsuite/25_algorithms/prev_permutation/check_type.cc: New.
+ * testsuite/25_algorithms/next_permutation/1.cc: New.
+ * testsuite/25_algorithms/next_permutation/check_type.cc: New.
+ * testsuite/25_algorithms/find_first_of/1.cc: New.
+ * testsuite/25_algorithms/find_first_of/check_type.cc: New.
+ * testsuite/25_algorithms/find_end/1.cc: New.
+ * testsuite/25_algorithms/find_end/check_type.cc: New.
+ * testsuite/25_algorithms/equal/check_type.cc: Insert iterator type.
+ * testsuite/25_algorithms/lexicographical_compare/check_type.cc:
+ Likewise.
+
+ 2005-01-10 Christopher Jefferson <chris@bubblescope.net>
+
+ * testsuite/25_algorithms/lexicographical_compare/check_type.cc: New.
+ * testsuite/25_algorithms/lexicographical_compare/1.cc: Likewise.
+ * testsuite/25_algorithms/mismatch/check_type.cc: Likewise.
+ * testsuite/25_algorithms/mismatch/1.cc: Likewise.
+ * testsuite/25_algorithms/equal/check_type.cc: New.
+ * testsuite/25_algorithms/equal/1.cc: New.
+
+2005-05-24 Benjamin Kosnik <bkoz@redhat.com>
+
+ * include/bits/allocator.h: Change ___glibcxx_base_allocator to
+ __glibcxx_base_allocator.
+ * config/allocator/bitmap_allocator_base.h: Same.
+ * config/allocator/malloc_allocator_base.h: Same.
+ * config/allocator/mt_allocator_base.h: Same.
+ * config/allocator/new_allocator_base.h: Same.
+ * config/allocator/pool_allocator_base.h: Same.
+
+2005-05-24 Jonathan Wakely <redi@gcc.gnu.org>
+
+ * include/debug/string (class basic_string): Add missing
+ default template arguments; provide typedefs for char
+ and wchar_t.
+ (operator[]): Allow s[s.size()] in debug mode, but not
+ pedantic mode.
+
+2005-05-24 Paolo Carlini <pcarlini@suse.de>
+
+ Port from libstdcxx_so_7-branch:
+ 2005-04-25 Christopher Jefferson <chris@bubblescope.net>
+
+ * include/bits/stl_algo.h (count): Correct concept checks.
+ (search_n) : Likewise.
+ * testsuite/25_algorithms/search_n/check_type.cc: New.
+
+ * testsuite/testsuite_iterators.h
+ (random_access_iterator_wrapper::operator+): Move out of
+ class to external function, and add symmetric version.
+
+ 2005-03-14 Christopher Jefferson <chris@bubblescope.net>
+
+ * testsuite/testsuite_iterators.h (WritableObject::WritableObject):
+ Add const.
+
+ 2005-02-01 Christopher Jefferson <chris@bubblescope.net>
+
+ * testsuite/testsuite_iterators.h (random_access_iterator_wrapper::
+ operator--): Fix typo.
+ (OutputContainer::OutputContainer): Correct zeroing array.
+ (WritableObject::operator==): Fix typo.
+ (WritableObject::operator=): make operator= templated
+ to allow differing types to be assigned.
+ (WritableObject::operator++): Fix checking if iterator is
+ written to multiple times.
+ (random_access_iterator_wrapper::operator+): Add const.
+ (random_access_iterator_wrapper::operator-): Likewise.
+ (random_access_iterator_wrapper::operator[]): Add dereference.
+
+2005-05-23 Jonathan Wakely <redi@gcc.gnu.org>
+
+ * docs/html/debug.html: Explain that _GLIBXX_DEBUG_PEDANTIC
+ had to be defined for pedantic mode in 3.4 and 4.0.0.
+
+2005-05-20 Jan Beulich <jbeulich@novell.com>
+
+ * libmath/stubs.c: Also implement fabsf/fabsl if not present in the
+ system libraries.
+
+2005-05-20 Paolo Carlini <pcarlini@suse.de>
+
+ * include/bits/stl_algo.h (__rotate<_RandomAccessIterator>):
+ Don't qualify __tmp as const, _ValueType is not necessarily
+ Assignable.
+ * include/bits/stl_algobase.h (swap, __iter_swap<false>):
+ Likewise, as an harmless extension.
+
+2005-05-19 Richard Henderson <rth@redhat.com>
+
+ * libsupc++/unwind-cxx.h: Revert gcc_unreachable change.
+
2005-05-19 Jonathan Wakely <redi@gcc.gnu.org>
* include/bits/basic_string.h (operator[]): Allow s[s.size()] in
diff --git a/libstdc++-v3/ChangeLog-1998 b/libstdc++-v3/ChangeLog-1998
new file mode 100644
index 00000000000..2549db48483
--- /dev/null
+++ b/libstdc++-v3/ChangeLog-1998
@@ -0,0 +1,942 @@
+1998-12-31 Benjamin Kosnik <bkoz@lunatic.cygnus.com>
+
+ * bits/fstream.tcc: Add fstream ctor for cin/cout/etc.
+ * bits/std_fstream.h: Ditto.
+ * src/stdstreams.cc: Ditto.
+
+ * math/cpowl.c: Fix header typo with last change.
+
+1998-12-31 Benjamin Kosnik <bkoz@loony.cygnus.com>
+
+ * COPYING: New file (GPL v 2).
+ * LICENSE.STD: Remove.
+ * ./*: Change license.
+
+1998-12-30 Benjamin Kosnik <bkoz@haight.constant.com>
+
+ * bits/std_streambuf.h (std): Remove static on _M_init.
+ * bits/streambuf.tcc (std): Ditto.
+
+ * bits/std_fstream.h: Add changes as discussed with Nathan, including
+ state_type and codecvt_type members, the allocation of an internal
+ buffer, the streamlined codecvt calls, etc.
+
+1998-12-21 Benjamin Kosnik <bkoz@haight.constant.com>
+
+ * bits/std_sstream.h: Tweak.
+ * bits/fstream.tcc: Remove unused stubs.
+ * bits/std_fstream.h: Tweak.
+
+1998-12-17 Benjamin Kosnik <bkoz@tintin.cygnus.com>
+
+ * bits/std_streambuf.h: Move _IO_file_flags into basic_filebuf.
+ Remove unused _IO_* members, possibly put into filebuf, which may
+ need them.
+ * bits/std_fstream.h: Add _M_flag.
+ * bits/sbuf_iter.h: Tweak.
+
+ * bits/std_cstdio.h: Add SEEK_SET, SEEK_END, SEEK_CUR.
+ * bits/ios_base.h: Use.
+
+ * src/stdstreams.cc: Modify to reflect standard ctors for
+ filebuf.
+ * src/misc-inst.cc: Ditto.
+
+ * bits/os_raw.h: Wrap in std namespace. Model parameters on
+ underlying C library calls instead of the underlying unix
+ filesystem.
+ * src/os_raw.cc (_S_os_open): Use fopen, and compute a mode
+ string as per p.659.
+ (_S_os_close): Model on fopen.
+ (_S_os_read): Model on fread.
+ (_S_os_write): Model on fwrite.
+ (_S_os_seek): Model on fseek.
+
+ * bits/ios_base.h: Tweak.
+ * bits/std_iosfwd.h: Wrap libio.h include with extern "C".
+ * bits/std_sstream.h: Tweak.
+ * bits/sstream.tcc: Remove old, uncalled code.
+ * bits/std_fstream.h: Major reconstruction.
+ * bits/fstream.tcc: Disable for the time being.
+
+1998-12-11 Benjamin Kosnik <bkoz@haight.constant.com>
+
+ * bits/basic_string.h: Fix insert method.
+ * stl/bits/stl_iterator.h: Remove previous hack.
+ * bits/std_streambuf.h (sbumpc): Correct increment/return oddness.
+ * bits/std_sstream.h: Fix more regressions.
+ * testsuite/27/27stringbuf.C: Add (almost) complete tests.
+
+1998-12-09 Benjamin Kosnik <bkoz@loony.cygnus.com>
+
+ * bits/basic_string.h: Tweak.
+
+ * stl/bits/stl_iterator.h: Specialize iterator_traits for int so
+ that string::append can be instantiated. HACK--checkin
+ basic_string::iterator class.
+
+1998-12-07 Benjamin Kosnik <bkoz@haight.constant.com>
+
+ * bits/std_sstream.h: Tweak.
+ * bits/sstream.tcc: Tweak ctors.
+
+ FIXME invalid friend defs. . WHERE ARE THEY??
+
+ * bits/sbuf_iter.h (istreambuf_iterator::equal): Change to new
+ names for basic_streambuf data members.
+
+ * bits/std_streambuf.h: Add getloc() initialization bits.
+ basic_streambuf(): Initialize with global locale data.
+ imbue(): Set _M_init.
+
+ * bits/std_streambuf.h(seekoff, seekpos): Complete with invalid
+ stream pos == pos_type(off_type(-1)).
+ in_avail(): Complete default implementation.
+ snextc, sbumpc, sputbackc, sungetc, sputc, setg, xsputn,
+ underflow, uflow, xsgetn, showmany, sync: Ditto.
+
+ * bits/std_streambuf.h: _M_snextc_helper(): Remove.
+
+ * bits/streambuf.tcc (sputbackc): Temporarily remove, need to
+ re-populate with in-line member functions that are too big. Add
+ initialization for _M_init.
+
+1998-12-03 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/sstream.tcc: Convert _Allocator to _Alloc. Add typedefs
+ for basic_string and basic_streambuf. Scope _IO_buf_* pointers to
+ streambuf_type.
+
+ * src/stdstreams.cc (std): Disable wchar_t instantiations.
+
+ * bits/c++config.h (_G_DEPRICATED): Add.
+ (_G_USE_WCHAR_T): Add.
+ * bits/std_streambuf.h: Radical reconstruction of basic_streambuf.
+ Take out _Streambuf_base. Put _IO_FILE data member in basic_filebuf.
+ * bits/streambuf.tcc (sputbackc): Remove ctor anti-def, Tweak.
+ * bits/std_fstream.h: Add comment for implementation.
+ * src/streambuf.cc: Remove.
+ * src/Makefile.in: Remove streambuf.lo.
+ * src/misc-inst.cc: Tweak.
+
+1998-12-02 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/std_sstream.h: Add const_cast to rdbuf returns.
+ * testsuite/27stringstream.C: Modify.
+
+1998-11-25 Benjamin Kosnik <bkoz@haight.constant.com>
+
+ * src/Makefile.in (libstdc___la_OBJECTS): Add streambuf.lo.
+ (libstdc___la_SOURCES): Ditto.
+
+ * bits/streambuf.tcc: Tweak.
+
+ * src/streambuf.cc: New file, add out-of-line definitions for
+ _Streambuf_base.
+
+ * src/misc-inst.cc: Remove _Streambuf_base instantiations.
+ Comment out wchar_t versions of the buffer instantiations, for now.
+
+ * bits/std_streambuf.h: Wrap libio.h include with extern "C".
+ Remove template wrapper around _Streambuf_base.
+ Move IO_* data members into _Streambuf_base.
+ Move _Streambuf_base members into streambuf.tcc.
+
+ * bits/c++config.h (_G_USE_LIBIO): Enable.
+
+1998-11-02 Nathan Myers <ncm@cantrip.org>
+
+ * CHECKLIST: downgrade iterator implementations
+ * DESIGN: fill out notes about unimplemented features
+
+1998-10-31 Nathan Myers <ncm@cantrip.org>
+
+ * CHECKLIST: itemized list of all interfaces, and status of each.
+
+1998-10-30 Nathan Myers <ncm@cantrip.org>
+
+ * RELEASE-NOTES: add notes about optional includes, linking, running
+ * src/Makefile.am: handle header installs properly
+ * src/Makefile.in: regenerate from new src/Makefile.am
+
+1998-10-30 Benjamin Kosnik <bkoz@loony.cygnus.com>
+
+ * bits/basic_string.h: Revert npos pending ciso646.
+ * src/Makefile.am: Revert CXX flags for now.
+ * src/Makefile.in: Ditto.
+
+1998-10-30 Brendan Kehoe <brendan@cygnus.com>
+
+ * bits/std_sstream.h: Re-order ctors to put base before member
+ inits.
+
+1998-10-30 Ryszard Kabatek <kabatek@chemie.uni-halle.de>
+
+ * stl/bits/std_memory.h: Fix typo.
+
+1998-10-30 Nathan Myers <ncm@cantrip.org>
+
+ * src/string[A-Z]+.cc: change back to include "string.cc".
+ * src/Makefile.am: revert filename changes. We need a different
+ way to keep filenames in std/ from confusing Make.
+ * bits/basic_string.h: define _S_max_size right, return it from
+ string::max_size(); churn definition of npos again.
+ * bits/string.tcc: fix _S_frob_size to avoid uint overflow.
+ * bits/ios.cc: remove #ifdef on ios_base locale member initialization
+ * BUGS: clear cruft.
+ * C++STYLE: Touchup for release.
+ * CHECKLIST: Touchup for release.
+ * DESIGN: New file.
+ * LICENSE.STD: Add requirement to retain copyrights and to provide
+ the license with any copies.
+ * README: Update for release.
+ * TODO: Minor touchup for release.
+ * RELEASE-NOTES: prepare for release
+
+1998-10-29 Ulrich Drepper <drepper@cygnus.com>
+
+ * src/string[A-Z]+.cc: Include stdstring.cc, not string.cc.
+
+ * src/Makefile.am (CXXFLAGS): Define _GNU_SOURCE.
+
+ * src/Makefile.am (CXXLINK): New variable. Make sure we don't use
+ CXX to generate the shared object.
+
+ * src/Makefile.am (headers): Remove duplicated char_traits.h.
+
+1998-10-29 Brendan Kehoe <brendan@cygnus.com>
+
+ * bits/basic_string.h (basic_string<>::max_size): Subtract 1, not
+ 2, from npos, solving infinite loop problems.
+
+1998-10-29 18:41 Ulrich Drepper <drepper@cygnus.com>
+
+ * src/Makefile.am: Add rules to install headers.
+
+1998-10-29 Nathan Myers <ncm@cantrip.org>
+
+ * bits/std_ostream.h: Remove #ifdef on operator<< for long double
+ * bits/ostream.tcc: Remove #ifdef on operator<< for long double
+ * shadow/libio.h:
+ * shadow/unistd.h:
+ * shadow/bits/wrap_libio.h:
+ * shadow/bits/wrap_unistd.h: New files.
+
+1998-10-29 Brendan Kehoe <brendan@cygnus.com>
+
+ * bits/ostream.tcc (operator<<): Wrap with #ifdef
+ _G_HAVE_LONG_DOUBLE_IO, to match bits/std_ostream.h.
+
+1998-10-29 Ulrich Drepper <drepper@cygnus.com>
+
+ * src/Makefile.am: Add temporarily rules to make sure misc-inst.cc
+ is not compiled with -fno-implicit-templates in effect.
+
+ * src/Makefile.am (EXTRA_SOURCES): Add string.cc and wstring.cc here.
+ (libstdc___la_SOURCES): Add all the string*.cc and wstring*.cc files.
+ * src/stringADDCS.cc: Wrapper around string.cc to define individual
+ function.
+ * src/stringADDPS.cc: Likewise.
+ * src/stringADDSC.cc: Likewise.
+ * src/stringADDSP.cc: Likewise.
+ * src/stringADDSS.cc: Likewise.
+ * src/stringBIST.cc: Likewise.
+ * src/stringBOST.cc: Likewise.
+ * src/stringCHTR.cc: Likewise.
+ * src/stringEQPS.cc: Likewise.
+ * src/stringEQSP.cc: Likewise.
+ * src/stringEQSS.cc: Likewise.
+ * src/stringEXTRA.cc: Likewise.
+ * src/stringGEPS.cc: Likewise.
+ * src/stringGESP.cc: Likewise.
+ * src/stringGESS.cc: Likewise.
+ * src/stringGETLI.cc: Likewise.
+ * src/stringGTPS.cc: Likewise.
+ * src/stringGTSP.cc: Likewise.
+ * src/stringGTSS.cc: Likewise.
+ * src/stringINSER.cc: Likewise.
+ * src/stringLEPS.cc: Likewise.
+ * src/stringLESP.cc: Likewise.
+ * src/stringLESS.cc: Likewise.
+ * src/stringLTPS.cc: Likewise.
+ * src/stringLTSP.cc: Likewise.
+ * src/stringLTSS.cc: Likewise.
+ * src/stringMAIN.cc: Likewise.
+ * src/stringNEPS.cc: Likewise.
+ * src/stringNESP.cc: Likewise.
+ * src/stringNESS.cc: Likewise.
+ * src/stringSCOPY.cc: Likewise.
+ * src/wstringADDCS.cc: Wrapper around wstring.cc to define individual
+ functions.
+ * src/wstringADDPS.cc: Likewise.
+ * src/wstringADDSC.cc: Likewise.
+ * src/wstringADDSP.cc: Likewise.
+ * src/wstringADDSS.cc: Likewise.
+ * src/wstringBIST.cc: Likewise.
+ * src/wstringBOST.cc: Likewise.
+ * src/wstringCHTR.cc: Likewise.
+ * src/wstringEQPS.cc: Likewise.
+ * src/wstringEQSP.cc: Likewise.
+ * src/wstringEQSS.cc: Likewise.
+ * src/wstringEXTRA.cc: Likewise.
+ * src/wstringGEPS.cc: Likewise.
+ * src/wstringGESP.cc: Likewise.
+ * src/wstringGESS.cc: Likewise.
+ * src/wstringGETLI.cc: Likewise.
+ * src/wstringGTPS.cc: Likewise.
+ * src/wstringGTSP.cc: Likewise.
+ * src/wstringGTSS.cc: Likewise.
+ * src/wstringINSER.cc: Likewise.
+ * src/wstringLEPS.cc: Likewise.
+ * src/wstringLESP.cc: Likewise.
+ * src/wstringLESS.cc: Likewise.
+ * src/wstringLTPS.cc: Likewise.
+ * src/wstringLTSP.cc: Likewise.
+ * src/wstringLTSS.cc: Likewise.
+ * src/wstringMAIN.cc: Likewise.
+ * src/wstringNEPS.cc: Likewise.
+ * src/wstringNESP.cc: Likewise.
+ * src/wstringNESS.cc: Likewise.
+ * src/wstringSCOPY.cc: Likewise.
+ * src/string.cc: Remove now unneeded #defines now.
+
+1998-10-29 Nathan Myers <ncm@cantrip.org>
+
+ * bits/locfacets.tcc: Define num_put::put(... const void*), improve
+ integer formatting.
+ * bits/ostream.tcc: Delete cruft, rewrite various op<< as members,
+ add definitions for double, long double, const void*.
+ * bits/std_ostream.h: Move op<<'s back into class ostream,
+ define some in-line.
+ * bits/string.tcc: fix unnecessary-copying bug in op[], typos in
+ string construction from input iterators that Brendan reported.
+
+
+1998-10-28 Brendan Kehoe <brendan@cygnus.com>
+
+ * stl/bits/stl_pair.h (op!=, op>, p<=, op>=): Add missing definitions.
+
+ * bits/valarray_meta.h (class _Constant): Move declaration to the
+ top, so the rest of the file can grok it.
+ (_ApplyBinaryFunction::operator[]): Add missing parenthesis.
+
+ * bits/std_sstream.h (basic_ostringstream::str): Fix typo of extra
+ semicolon.
+ (basic_stringstream::str, both instances): Likewise.
+
+1998-10-28 Nathan Myers <ncm@cantrip.org>
+
+ * bits/locfacets.h: fix num_put<>::falsename()
+ * bits/locfacets.tcc: fix _Format_cache<>::_M_populate bool name init
+ * testsuite/27/27octfmt.C, testsuite/27/27octfmt.C: new tests
+ * bits/locfacets.tcc: touch up _S_group_digits.
+ * src/misc-inst.cc: adjust _S_group_digits insts to match.
+
+1998-10-27 Nathan Myers <ncm@cantrip.org>
+
+ * stl/bits/stl_config.h: Turn off long long support, for now.
+ * src/locale-inst.cc: Instantiate num_put<> only for
+ ostreambuf_iterator, num_get only for istreambuf_iterator.
+ * src/misc-inst.cc: Delete duplicate locale-related instantiations,
+ add lots of new instantiations for num_put support function templates;
+ remove junk about __match_parallel for ostreambuf_iterator.
+
+1998-10-27 Nathan Myers <ncm@cantrip.org>
+
+ * bits/locfacets.tcc: Make num_put's digit grouping work.
+ * bits/string.tcc: More uglification.
+ * src/ios.cc: initialize format cache right
+
+1998-10-26 Nathan Myers <ncm@cantrip.org>
+
+ * bits/basic_string.h: Uglify more names.
+ * bits/fstream.tcc: Rewrite some filebut output handling.
+ * bits/ios_base.h: Cosmetic.
+ * bits/locfacets.h: Changes to _Format_cache for support of num_put.
+ Also, specialize its default ctor for optimal default case.
+ #ifdef out "long long" prototypes for now.
+ * bits/locfacets.tcc: Do complete, optimized num_put<>::do_put
+ implementation for integer types. (Still needs optimized
+ std::copy() applied to ostreambuf_iterator to be optimal.)
+ * bits/ostream.tcc: Write operator<< for long, bool types.
+ Make other operators<< non-members, per spec. (Many still
+ not implemented.) Identify those that fail to create a sentry.
+ * bits/sbuf_iter: Cosmetic.
+ * bits/std_fstream.h: Add some filebuf members.
+ * bits/std_locale.h: Include <limits> for use in bits/locfacets.h
+ * bits/std_ostream.h: Make member operators<< global, per spec.
+ (Should do the same in std_istream.h.)
+ * bits/std_string.h: Include <limits> for use in bits/locfacets.h
+ * bits/string.tcc: Uglify names
+ * shadow/bits/std_cstdlib.h: Optimize std::div and std::ldiv.
+ * src/ios.cc: Specialize _Format_cache<> for char and wchar_t,
+ for optimal default behavior.
+
+1998-10-26 Benjamin Kosnik <bkoz@loony.cygnus.com>
+
+ * src/Makefile.in (libstdc___la_SOURCES): Add misc-inst.cc again.
+
+1998-10-21 Nathan Myers <ncm@cantrip.org>
+
+ * src/locale.cc: make ctype operations actually work for glibc
+ * CHECKLIST: add a comprehensive (i.e. huge) implementation
+ checklist of stdlib facilities. Not filled in yet.
+
+1998-10-20 Nathan Myers <ncm@cantrip.org>
+
+ * bits/string.tcc: fix patching NULs on string ends.
+
+1998-10-19 Nathan Myers <ncm@cantrip.org>
+
+ * bits/std_iosfwd.h: eliminate "basic_" prefix on streambuf
+ iterator forward declarations
+ * bits/sbuf_iter.h: eliminate default template argument definitions
+ on streambuf iterators (rely on <iosfwd> decls).
+ * TODO: add note about lazy facet construction
+ * bits/basic_ios.h: hit operator void* again. This should be the
+ last time we need to touch it.
+ * bits/basic_ios.h: copyfmt now returns *this.
+ * bits/basic_string.h: fix npos again. npos cannot be defined as zero.
+ * bits/basic_string.h: put back overloaded constructors; adjust
+ behavior for default allocator on copy constructor.
+ * bits/char_traits.h: make not_eof return correct type.
+ * bits/loccore.h: remove call to bits/std_stdexcept.h; subincludes
+ cannot be in non-standard headers or we get include loops (bad)
+ * bits/loccore.h: delete ifdef'd out workarounds for old compiler bugs.
+ * bits/loccore.h: add apparatus to support lazy construction of
+ facets.
+ * bits/locfacets.tcc: Uglify names in __match_parallel decl.
+ * bits/std_ios.h: add include of <typeinfo> to get bad_cast for
+ locale use_facet<> failure.
+ * bits/std_locale.h: same.
+ * bits/std_string.h: same.
+ * bits/std_stdexcept.h: change exception member __msg from a
+ reference to a regular object.
+ * bits/string.tcc: add pasting a NUL on the end of strings after
+ each operation. We had already left room for it, but previously
+ plugged it only on a call to c_str(), but the WG changed the
+ requirement when I wasn't looking. (Can't leave them alone for
+ a second without they break something else.)
+ * bits/valarray_meta.h: add Gaby's changes from 981018.
+ * src/locale.cc: add new type _Bad_use_facet to be thrown on
+ failure of use_facet<>().
+ * src/stdexcept.cc: remove pragma, remove bkoz's #if 0,
+ comment out leftover member definitions
+
+1998-10-16 Ulrich Drepper <drepper@cygnus.com>
+
+ * string/Makefile.am: Revert last change.
+ * math/Makefile.am: Likewise.
+
+1998-10-15 Benjamin Kosnik <bkoz@haight.constant.com>
+
+ * bits/std_sstream.h: Fix typo.
+
+1998-10-15 Benjamin Kosnik <bkoz@haight.constant.com>
+
+ * src/Makefile.am (libstdc___la_SOURCES): Add misc-inst.cc.
+
+ * bits/std_sstream.h: Add typedefs, member definitions. Clean.
+ * bits/std_stdexcept.h: Remove.
+
+1998-10-15 Benjamin Kosnik <bkoz@haight.constant.com>
+
+ * src/misc-inst.cc: Tweak again.
+
+ * bits/std_sstream.h: Move out-of-line definitions to sstream.tcc.
+ * bits/sstream.tcc: New file.
+
+1998-10-15 Ulrich Drepper <drepper@cygnus.com>
+
+ * configure.in: Test for machine/param.h, sys/machine.h and fp.h.
+ Don't run AC_C_BIGENDIAN if machine/param.h or sys/machine.h are
+ available.
+
+ * math/mathconf.h: Include sys/machine.h, machine/param.h and fp.h
+ if available.
+ (INFINITE_P): Use IS_INF macro if available.
+
+1998-10-15 Ulrich Drepper <drepper@cygnus.com>
+
+ * math/Makefile.am (EXTRA_LTLIBRARIES): Renamed from
+ noinst_LTLIBRARIES.
+ * string/Makefile.am: Likewise.
+
+1998-10-15 Ulrich Drepper <drepper@cygnus.com>
+
+ * configure.in (AC_CHECK_FUNCS): Add finite, qfinite, fpclass, and
+ qfpclass.
+ (AC_CHECK_HEADERS): Add machine/endian.h. If no header specifying
+ endianess is available run AC_C_BIGENDIAN.
+
+ * math/clog10l.c: Add ugly hack around bug in Irix 6.2 header until
+ fixincludes is fixed.
+ * math/clogl.c: Likewise.
+ * math/csqrtl.c: Likewise.
+ * math/mycabsl.c: Likewise.
+
+ * math/mathconf.h: Include machine/endian.h if possible. If no
+ header describing endianess is available rely on WORDS_BIGENDIAN
+ macro.
+ (FINITE_P, FINITEF_P, FINITEL_P): Use finite functino if available.
+ (INFINITE_P, INFINITEF_P, INFINITEL_P): Use fpclass function if
+ available.
+
+ * src/complex.cc (polar): Don't use sincos on OSF machines.
+
+1998-10-09 Benjamin Kosnik <bkoz@loony.cygnus.com>
+
+ * src/locale-inst.cc: Don't instantiate time_get for
+ ostreambuf_iterators as time_get::do_get_weekday and
+ time_get::do_get_monthname use __match_parallel, which is illegal
+ for ostreambuf_iterators to use, as they don't have operator== or
+ operator!=.
+ * bits/std_stdexcept.h: Add dtor definitions.
+ Use stl/bits/std_stdexcept.h instead of this file?
+ * bits/sbuf_iter.h : Tweak.
+ * src/misc-inst.cc: Tweak.
+
+1998-10-09 Benjamin Kosnik <bkoz@haight.constant.com>
+
+ * bits/std_stdexcept.h: New file.
+ * src/stdexcept.cc: Define the following:
+ logic_error::what()
+ runtime_error::what()
+
+ * src/misc-inst.cc: New file.
+ * src/Makefile.in (libstdc___la_SOURCES): Add misc-inst.cc.
+ (libstdc___la_OBJECTS): Add misc-inst.lo.
+
+ * bits/basic_string.h: Disable non-standard ctor declarations.
+ * bits/string.tcc: Disable definitions as well.
+ * src/string.cc: Disable <ios> dependencies.
+ * bits/sbuf_iter.h (std): Add default to template parameter for
+ ostreambuf_iterator and istreambuf_iterator.
+ * bits/std_iosfwd.h: Change istreambuf_iterator to
+ basic_istreambuf_iterator. Likewise for ostreambuf.
+ * bits/locfacets.tcc (__match_parallel): Fix typo.
+ * src/ios.cc (imbue): Remove the _G_HAVE_LOCALE guards around
+ ios_base::imbue.
+ * bits/std_streambuf.h: Define _Streambuf_base::getloc().
+ * bits/std_istream.h: Define the following:
+ get (basic_streambuf<char_type,_Traits>& __sb, char_type __delim)
+ get (char_type* __s, streamsize __n, char_type __delim);
+ getline (char_type* __s, streamsize __n, char_type __delim)
+ * bits/loccore.h : FIXME friend template code for use_facet.
+ Add std_stdexcept.h include so that range_error will be defined.
+ Add explicit conversion to string for range_error throws. (HACK?)
+
+1998-10-8 Ulrich Drepper <drepepr@cygnus.com>
+
+ * configure.in: Check for sincos, sincosf, and sincosl.
+ * src/complex.cc (polar): Use sincos if available.
+
+ * bits/c++config.h: Fix hack to get LONG_LONG* definitions on Linux.
+ * stl/bits/std_limits.h: Include bits/c++config.h. HACK!!!
+
+ * math/clog10.c: Fix typo (FP_INIFITE_P -> INFINITE_P).
+
+ * math/cpow.c: Use c_log, not clog.
+ * math/cpowf.c: Likewise.
+ * math/cpowl.c: Likewise.
+
+ * math/cexp.c: Remove unused fpclassify calls. Use FINITE_P instead
+ of isfinite call.
+
+ * math/mathconf.h (FINITE_P, FINITEF_P, FINITEL_P): Define using
+ isfinite macro if it is available.
+ (INFINITE_P, INFINITEF_P, INFINITEL_P): Define using isinf macro.
+
+ * math/ccosf.c: Use appropriate test macros for this type.
+ * math/ccoshf.c: Likewise.
+ * math/ccoshl.c: Likewise.
+ * math/ccosl.c: Likewise.
+ * math/cexpf.c: Likewise.
+ * math/cexpl.c: Likewise.
+ * math/clog10f.c: Likewise.
+ * math/clog10l.c: Likewise.
+ * math/clogf.c: Likewise.
+ * math/clogl.c: Likewise.
+ * math/csinf.c: Likewise.
+ * math/csinhf.c: Likewise.
+ * math/csinhl.c: Likewise.
+ * math/csinl.c: Likewise.
+ * math/csqrtf.c: Likewise.
+ * math/csqrtl.c: Likewise.
+ * math/ctanf.c: Likewise.
+ * math/ctanhf.c: Likewise.
+ * math/ctanhl.c: Likewise.
+ * math/ctanl.c: Likewise.
+
+1998-10-06 Benjamin Kosnik <bkoz@bliss.nabi.net>
+
+ * bits/basic_ios.h: Fix previous change.
+
+1998-10-06 Benjamin Kosnik <bkoz@bliss.nabi.net>
+
+ * bits/basic_ios.h: Add const_cast<basic_ios&>
+ (operator void*): As per 5.2.9 p 2, make sure static_cast is
+ well-formed.
+ * bits/char_traits.h: No _CharT for specialization, change to 0.
+ * bits/basic_string.h: As per 9.4.2 p4, initialize with
+ constant-initializer.
+ * bits/locfacets.tcc: Add template parameter to initialization list.
+
+1998-10-02 Benjamin Kosnik <bkoz@loony.cygnus.com>
+
+ * bits/basic_string.h: Should just be <, not <=.
+
+1998-10-01 Benjamin Kosnik <bkoz@bliss.nabi.net>
+
+ * bits/string.tcc (compare): Fix for strings that are similar, but
+ not the same length.
+
+1998-09-04 Brendan Kehoe <brendan@cygnus.com>
+
+ * bits/c++config.h: For __linux__, define _GNU_SOURCE. This is
+ required for us to get LONG_LONG_{MIN,MAX} out of gcc's limits.h.
+ We can't check for __GLIBC__ here, since this header can be read
+ before any system one (that would lead to features.h) being used.
+
+ * stl/bits/stl_config.h (__STL_LONG_LONG): Re-enabled
+
+ * stl/bits/std_limits.h [__STL_LONG_LONG]: Fix usage to use
+ LONG_LONG_MIN, LONG_LONG_MAX, and ULONG_LONG_MAX.
+
+ * stl/bits/stl_config.h: Don't do __STL_LONG_LONG, it uses
+ LONGLONG_{MIN,MAX} which I can't find the origin of.
+
+1998-09-03 Brendan Kehoe <brendan@cygnus.com>
+
+ * stl/bits/stl_iterator.h: Add extern decl of cin for now; where
+ should this come from, if not iostream.h?
+ (class istream_iterator): Make the new operator!= a friend also.
+
+ * stl/bits/stl_config.h: Define __STL_HAS_WCHAR_T,
+ __STL_MEMBER_TEMPLATE_CLASSES, and __STL_LONG_LONG. Don't include
+ _G_config.h like the egcs one does.
+
+1998-09-01 Brendan Kehoe <brendan@cygnus.com>
+
+ * bits/string.tcc: Call `_M_destroy' instead of `destroy'.
+
+ * bits/valarray_meta.h: Throughout, rename _Expr typedefs to be
+ _Expr1 (or _Expr_def if it's taken), and change definitions.
+ Avoids redecl of the template parm.
+
+ * bits/string.tcc (basic_string copy ctor): Fix typo in declaration.
+ (operator>>): Initialize __ERROR with ios_base::goodbit, not 0.
+
+ * bits/std_streambuf.h (_POSIX_SOURCE): Only define if it's not
+ already done.
+
+ * src/locale-inst.cc: New file, **TOTAL HACK**. There has GOT to
+ be a better way to do this.
+
+ * src/stlinst.cc: New file.
+
+ * BUGS: New file, with various discovered bugs that need to be
+ fixed.
+
+ * Makefile.in, math/Makefile.in, string/Makefile.in,
+ src/Makefile.in: Reran automake.
+
+ Workarounds, these may not all be the final fixes:
+
+ * bits/basic_ios.h (class basic_ios): Make _M_strbuf be protected,
+ not private, for basic_istream::get() in std_istream.h to be able
+ to use it.
+ (basic_ios::operator void*): Don't use static_cast for the false
+ case.
+ (basic_ios::copyfmt): Fix `rhs.except' to be `rhs.exceptions ()'.
+ This appears to have been in sep94, but didn't get corrected
+ afterwards.
+
+ * bits/basic_string.h (npos): Don't init here.
+ * bits/string.tcc: Instead, do initialization here, to -1 instead
+ of the size_type destructor.
+
+ * src/traits.cc, src/wtraits.cc: New files.
+ * bits/char_traits.h: For char_traits<char> and
+ char_traits<wchar_t>, declare static, but define over in the src
+ files.
+
+ * bits/gslice.h: Comment out forward decls of _Array, valarray,
+ gslice_array, and _GsliceExpression.
+
+ * bits/std_cstdio.h [__sparc__ && __svr4__]: #undef all of
+ clearerr, feof, ferror, getc, getchar, putc, putchar, stdin,
+ stdout, and stderr. Note we do get unresolved refs to stdin, but
+ that'll get fixed by the "true" solution.
+
+ * bits/std_ios.h: Include <bits/std_streambuf.h> to get the
+ definition of basic_streambuf.h, which is used in basic_ios.h to
+ call pubimbue.
+
+ * bits/std_streambuf.h: Don't include libio.h for now.
+ (class basic_streambuf): Define missing methods pubimbue and
+ getloc.
+
+ * src/Makefile.am (libstdc___la_SOURCES): Add stdexcept.cc,
+ ios.cc, os_raw.cc, stdstreams.cc, locale.cc, localename.cc,
+ locale-inst.cc, stlinst.cc, traits.cc, wtraits.cc.
+
+ * src/ios.cc: Instantiate basic_ios<char> and basic_ios<wchar_t>.
+
+ * src/locale.cc: Come up with munged versions of _S_toupper,
+ _S_tolower, and _S_table instead of the glibc-specific ones, so
+ they're at least defined, if not necessarily usable. The glibc
+ ones on any other system will yield unresolved refs to
+ __ctype_{b,toupper,tolower}.
+
+ * src/string.cc: Define all of ADDCS, ADDPS, et al. Add
+ basic_ios, basic_istream, basic_ostream. Don't do char_traits
+ anymore cuz of the explicit specialization in char_traits.h.
+ Also add _S_string_copy, but this doesn't fix it -- cf the BUGS
+ file for the details.
+
+ * stl/bits/stl_algobase.h (equal): Fix to do `! (x==y)'.
+ * stl/bits/stl_iterator.h (__distance): Likewise.
+
+ * stl/bits/stl_iterator.h: As with 8/18 set, define missing op!=,
+ op>, op<=, and op>= for reverse_iterator. Also add op!= for
+ istream_iterator.
+
+1998-08-26 Brendan Kehoe <brendan@cygnus.com>
+
+ * bits/string.tcc (basic_string::compare (const char*)): Fix to
+ return 0, not 1.
+
+1998-08-25 Brendan Kehoe <brendan@cygnus.com>
+
+ This should really be fixed with __asm__ directives renaming the
+ symbol, but keeping the function.
+ * math/clogf.c (c_logf): Renamed from `clogf'.
+ * math/clogl.c (c_logl): Renamed from `clogl'.
+ * math/complex-stub.h (c_logf, c_logl): Change decls.
+
+ * bits/locfacets.h (class _Numeric_get): For friend decls, rename
+ _CharT and _InIter parms, since they duplicate the enclosing ones.
+
+1998-08-19 Brendan Kehoe <brendan@cygnus.com>
+
+ Deal with conflict of the iostreams `clog' and our internal
+ complex number `clog'.
+ * src/complex.cc: Call `c_log' instead of `clog'.
+ * math/clog.c (c_log):: Renamed from clog.
+ * math/complex-stub.h (c_log): Renamed from clog decl.
+
+ * bits/locfacets.h (class _Numeric_get): Tweak fwd decls of the
+ get/put classes.
+ (num_put::put): #if 0 long long version, since we don't declare or
+ define the long long version of do_put.
+
+1998-08-18 Nathan Myers <ncm@cantrip.org>
+
+ * bits/basic_string.h: add basic_string<>::push_back(), fix return
+ type of get_allocator (thanks to Ryszard Kabatek).
+ * bits/char_traits.h: make init order of fpos<> members
+ match decl order.
+ * bits/ios_base.h: fix decls of ios_base bitmask & enum types, add
+ flags _S_fd_in etc. for special filebuf ctor.
+ * bits/locfacets.h: make _Numeric_get and _Format_cache public
+ to work around problems in friend declarations.
+ * bits/locfacets.tcc: qualify _S_get_cache in num_get<>::get(..bool&),
+ fix random type errors & typos
+ * bits/std_fstream.h: major refitting to bypass libio (for now),
+ instrument to use bits/fstream.tcc template definitions
+ * bits/std_iosfwd.h: mess with wrappers
+ * bits/std_istream.h: remove meaningless comment
+ * bits/std_ostream.h: instrument to work with ostream.tcc.
+ * bits/std_streambuf.h: instrument to work with streambuf.tcc
+ * bits/fstream.tcc: template defs for <fstream>
+ * bits/ostream.tcc: template defs for <ostream>
+ * bits/streambuf.tcc: template defs for <streambuf>
+ * bits/os_raw.h: thin OS interface wrapper, to bypass libio (for now).
+ * Delete .cc files, replace with bits/*.tcc
+ src/fstream.cc
+ src/istream.cc
+ src/ostream.cc
+ src/streambuf.cc
+ * Add files:
+ src/os_raw.cc: thin interface to OS, to bypass libio (for now).
+ src/stdstreams.cc: cout, cin, etc. definitions
+ (these still need work: must be init'd before user statics.)
+
+
+1998-08-18 Brendan Kehoe <brendan@cygnus.com>
+
+ Sent to SGI before checkin:
+ * stl/bits/stl_vector.h (operator!=, operator>, operator<=,
+ operator>=): Define.
+ * stl/bits/stl_bvector.h (vector<bool>::flip): Define method.
+ * stl/bits/stl_deque.h (operator!=, operator>, operator<=,
+ operator>=): Define.
+ (operator==, operator<): Add inline.
+ * stl/bits/stl_map.h (operator!=, operator<, operator<=,
+ operator>=): Define.
+ * stl/bits/stl_multimap.h (operator!=, operator<, operator<=,
+ operator>=): Define.
+ * stl/bits/stl_list.h (operator!=, operator<, operator<=,
+ operator>=): Define.
+ * stl/bits/stl_set.h (operator!=, operator<, operator<=,
+ operator>=): Define.
+ * stl/bits/stl_multiset.h (operator!=, operator<, operator<=,
+ operator>=): Define.
+
+ * bits/std_valarray.h (_Shift_left, _Shift_right): Inherit from
+ unary_function.
+
+1998-08-15 Nathan Myers <ncm@cantrip.org>
+
+ * bits/ios_base.h: change nominal bitmask and enum types to real enums
+ * bits/locfacets.h: make _Format_cache bool names usable by num_get
+ * bits/locfacets.tcc: make num_get<>::get(... bool&) use _Format_cache
+ * bits/std_fstream.h: minor cleanups: ctors delegate to open()
+ * bits/std_iosfwd.h: more bitmask changes, for ios_base::iostate
+ * bits/std_sstream.h: formatting cleanups
+
+1998-08-14 Nathan Myers <ncm@cantrip.org>
+
+ * bits/locfacets.tcc: implement num_get<>::do_get(..., bool&)
+ * bits/locfacets.tcc: implement time_get<>::do_get_weekday
+ * bits/locfacets.tcc: implement time_get<>::do_get_monthname
+ * bits/locfacets.h: fix missing argument in do_get_monthname
+ (this is a bug in the standard, ref. 36 in my list.)
+ * bits/locfacets.h: make month and day name caches mutable
+ * bits/locfacets.tcc: various typos in get() functions
+ * bits/sbuf_iter.h: fix omission in istreambuf_iterator::op++().
+ * bits/std_streambuf.h: fix typo in sgetn (Brendan)
+
+1998-08-12 Nathan Myers <ncm@cantrip.org>
+ * move streambuf iterators to bits/sbuf_iter.h
+ * optimize streambuf iterators
+ * begin generalizing streambuf
+ * begin implementing num_get<>::get (starting with bool)
+ * patch stl/bits/stl_config.h so that relops operators are
+ contained properly, out of the way.
+
+1998-07-24 Nathan Myers <ncm@cantrip.org>
+ * Fold in SGI 3.11 changes (uglified names, some algorithm
+ improvements, very minor bug fixes.)
+ * Uglify names elsewhere to match (s/_T/_Tp/).
+ * Begin work on optimized streambuf
+ * Put complex.cc in namespace std:: (thanks Martin)
+
+1998-07-17 Nathan Myers <ncm@cantrip.org>
+
+ * bits/char_traits.h: add _Char_traits_match template.
+ * bits/string.tcc: fix bugs in various find_last* members.
+ * bits/basic_string.h: redeclare member _S_find.
+ * stl/bits/stl_iterator.h: change member names in nonstandard
+ templates bidirectional_reverse_iterator and
+ random_access_reverse_iterator to match expected changes
+ in upstream source.
+ * src/string.cc: fix definitions of stream operators.
+
+1998-07-14 16:06 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile.am (SUBDIRS): Add string.
+
+ * configure.in: Test for long double functions separately. Test for
+ ISO C 89 float functions. Test for endian.h and sys/isa_defs.h.
+ Generate string/Makefile.
+
+ * bits/c++config.h: Define mbstate_t for Solaris.
+
+ * bits/char_traits.h: Remove unused #if.
+
+ * bits/std_cwchar.h: Declare wide char string functions.
+
+ * m4/stringfcts.m4: New file.
+
+ * math/complex-stub.h: Declare nan.
+ * math/nan.c: New file.
+
+ * math/mathconf.h: Hack around missing endian.h file.
+ Handle missing NAN definition.
+ Handle missing float math functions.
+
+ * src/Makefile.am (libstdc___la_LIBADD): Add libstring.la.
+ (libstdc___la_LDFLAGS): Set version information.
+
+ * src/complexl.cc: Don't compile any code if no long double functions
+ are available.
+
+ * string/Makefile.am: New file.
+ * string/dummy.c: New file.
+ * string/wmemchr.c: New file.
+ * string/wmemcmp.c: New file.
+ * string/wmemcpy.c: New file.
+ * string/wmemmove.c: New file.
+ * string/wmemset.c: New file.
+
+1998-07-14 10:45 Ulrich Drepper <drepper@cygnus.com>
+
+ * configure.in: Make it work.
+ * install-sh: New file.
+ * missing: New file.
+ * mkinstalldirs: New file.
+ * m4/mathfcts.m4: New file.
+ * math/Makefile.am: New file.
+
+ * bits/std_complex.h (conj): Mark specializations as inline.
+
+ * math/carg.c: New file.
+ * math/cargf.c: New file.
+ * math/cargl.c: New file.
+ * math/mycabs.c: New file.
+ * math/mycabsf.c: New file.
+ * math/mycabsl.c: New file.
+ * math/signbit.c: New file.
+ * math/signbitf.c: New file.
+ * math/signbitl.c: New file.
+
+ * math/ccos.c: Avoid ISO C 9x functionality.
+ * math/ccosf.c: Likewise.
+ * math/ccosh.c: Likewise.
+ * math/ccoshf.c: Likewise.
+ * math/ccoshl.c: Likewise.
+ * math/ccosl.c: Likewise.
+ * math/cexp.c: Likewise.
+ * math/cexpf.c: Likewise.
+ * math/cexpl.c: Likewise.
+ * math/clog.c: Likewise.
+ * math/clog10.c: Likewise.
+ * math/clog10f.c: Likewise.
+ * math/clog10l.c: Likewise.
+ * math/clogf.c: Likewise.
+ * math/clogl.c: Likewise.
+ * math/cpow.c: Likewise.
+ * math/cpowf.c: Likewise.
+ * math/cpowl.c: Likewise.
+ * math/csin.c: Likewise.
+ * math/csinf.c: Likewise.
+ * math/csinh.c: Likewise.
+ * math/csinhf.c: Likewise.
+ * math/csinhl.c: Likewise.
+ * math/csinl.c: Likewise.
+ * math/csqrt.c: Likewise.
+ * math/csqrtf.c: Likewise.
+ * math/csqrtl.c: Likewise.
+ * math/ctan.c: Likewise.
+ * math/ctanf.c: Likewise.
+ * math/ctanh.c: Likewise.
+ * math/ctanhf.c: Likewise.
+ * math/ctanhl.c: Likewise.
+ * math/ctanl.c: Likewise.
+
+ * math/complex-stub.h: New file.
+
+ * math/mathconf.h: New file.
+
+ * src/Makefile.am: New file.
+
+ * src/complex.cc: Use mathconf.h instead of complex.h.
+ Don't use cabs, always use __mycabs.
+
+1998-02-13 Brendan Kehoe <brendan@cygnus.com>
+
+ * iterator (class reverse_iterator): Do some tweaks to be in sync
+ w/ the FDIS.
+
diff --git a/libstdc++-v3/ChangeLog-1999 b/libstdc++-v3/ChangeLog-1999
new file mode 100644
index 00000000000..b0334dcd45d
--- /dev/null
+++ b/libstdc++-v3/ChangeLog-1999
@@ -0,0 +1,3545 @@
+1999-12-26 Phil Edwards <pme@sourceware.cygnus.com>
+
+ * docs/gentop/status: Add snapshot version column, update
+ for Solaris 7.
+ * docs/status.html: Regenerated.
+
+1999-12-26 Phil Edwards <pme@sourceware.cygnus.com>
+
+ * docs/faq/index.html: Turn README and RELEASE-NOTES into links
+ from installation FAQ, and specify location of text files.
+ * docs/faq/index.txt: Regenerated.
+
+1999-12-23 Phil Edwards <pme@sourceware.cygnus.com>
+
+ * docs/gentop/download: Add links to prebuilds for Cygwin/Mingw32.
+ * docs/download.html: Regenerated.
+
+1999-12-22 Phil Edwards <pme@sourceware.cygnus.com>
+
+ * docs/faq/index.html: Update 'what works' for .7 snapshot,
+ clean up various links.
+ * docs/faq/index.txt: Regenerated.
+ * docs/gentop/gentop: Smarter regeneration script.
+ * docs/gentop/{head,foot}chunk.html: Updated with new
+ contributors link and mod date.
+ * docs/gentop/index: Snapshot relase date.
+ * docs/gentop/thanks: New contributors page added.
+ * docs/{download,how,index,links,mail,status,thanks}.html:
+ Regenerated from gentop; thanks.html created.
+
+1999-12-21 Benjamin Kosnik <bkoz@decepticon.cygnus.com>
+
+ * bits/c++config.h.in (__GLIBCPP__): 19991221.
+ * docs/index.html: Add correct information.
+
+ * config/irix: New directory.
+ * config/irix/ctype.cc: Add irix-6.5 info. Not tested.
+ * config/irix/bits/ctype_base.h: And here.
+
+ * config/aix: New directory.
+ * config/aix/ctype.cc: Add aix-4.2 info. Not tested.
+ * config/aix/bits/ctype_base.h: And here.
+
+1999-12-21 Philip Martin <pm@corris.dircon.co.uk>
+
+ * bits/basic_string.h: Add special case handling for integral
+ "iterators".
+ * bits/std_string.h: include type_traits.h
+ * testsuite/21_strings/ctor_copy_dtor.cc: Tweak.
+
+1999-12-21 Benjamin Kosnik <bkoz@decepticon.cygnus.com>
+
+ * bits/fstream.tcc (seekoff): Output buffer based on _M_*_in and
+ _M_*_end now.
+ * bits/std_fstream.h (sync): And here.
+ * testsuite/27_io/filebuf.cc: Revisions.
+ * testsuite/27_io/filebuf-2.tst: Correct, remove weird character
+ at the end of the file.
+ * testsuite/27_io/filebuf-3.tst: Correct.
+
+1999-12-21 Phil Edwards <pedwards@jaj.com>
+
+ * docs/gentop/index: Hold off on .7 announcement date.
+ * docs/index.html: Regenerate.
+
+1999-12-21 Benjamin Kosnik <bkoz@kcygnus.com>
+
+ * bits/std_fstream.h (sync): Move _M_file->sync() to
+ _M_really_overflow().
+ * bits/fstream.tcc (seekoff): Call sync, not _M_really_overflow so
+ as to get the _M_file->sync action, which forces the external
+ buffer to update itself.
+ (underflow): Same here.
+
+1999-12-21 Phil Edwards <pedwards@jaj.com>
+
+ * bits/c++config.h.in: Uncomment _GLIBCPP_USE_NAMESPACES and move...
+ * acconfig.h: ...to here.
+ * config.h.in: Regenerate from aclocal.
+ * acinclude.m4: Add GLIBCPP_ENABLE_DEBUG, GLIBCPP_ENABLE_NAMESPACES.
+ * aclocal.m4: Regenerate from acinclude.
+ * configure.in: Use ENABLE macros here.
+ * configure: Regenerate.
+ * src/Makefile.am: Use results from ENABLE macros.
+ * src/Makefile.in: Regenerate.
+
+1999-12-20 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * mkcheck (SRC_DIR): Now have to include config/* dir if "make
+ check" and not "make check-install." Temporarily hack in linux
+ support.
+
+ * bits/std_streambuf.h: Tweaks.
+ * bits/streambuf.tcc (xsgetn): Tweaks.
+ * bits/std_fstream.h (sync): Make _M_really_overflow consistent.
+ * bits/fstream.tcc (filebuf::underflow): Simplify.
+ * bits/std_sstream.h (streambuf::underflow): Minor change to make
+ checks for read position precisely implement the standard.
+ * bits/basic_file.h (filepos_cur): Base this on _offset.
+ * testsuite/21_strings/inserters_extractors.cc (test05): Tweaks.
+ * testsuite/27_io/filebuf.cc: Tweak.
+
+1999-12-20 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * docs/17_intro/RELEASE-NOTES: Fix typos.
+
+ * bits/locale_facets.h (ctype): Modify, use __to_type to abstract
+ out platform-specific bits.
+ * config/default/ctype.cc: And here.
+ * config/defaults/bits/ctype_base.h: And here.
+ * config/linux/ctype.cc: And here.
+ * config/linux/bits/ctype_base.h (ctype_base): And here.
+ * config/solaris/bits/ctype_base.h (ctype_base): Add
+ __to_type. Comment, as it looks like this is for solaris2.6 and
+ above: solaris2.5.1 doesn't seem to have the same definitions.
+ * config/solaris/ctype.cc: And here.
+
+1999-12-19 Benjamin Kosnik <bkoz@cygnus.com>
+ Ulrich Drepper <drepper@cygnus.com>
+
+ * acconfig.h: Remove _GLIBCPP_USE_CTYPE_ISBIT.
+
+ * src/locale.cc: Take out platform-specific hacks.
+ * config/linux/ctype.cc: Put here.
+ * config/solaris/ctype.cc: Put here.
+ * config/default/ctype.cc: Put here.
+
+ * bits/locale_facets.h: Take out platform-specific hacks.
+ * config/linux/bits/ctype_base.h: Put here.
+ * config/solaris/bits/ctype_base.h: Put here.
+ * config/default/bits/ctype_base.h: Put here.
+
+ * configure.in: Bump version.
+ Add tests for top-level config directory.
+ * configure: Regenerated.
+ * src/Makefile.am (INCLUDES): Add platform-specific dir.
+ * src/Makefile: Regenerate.
+
+1999-12-19 Benjamin Kosnik <bkoz@cygnus.com>
+ Ulrich Drepper <drepper@cygnus.com>
+
+ * bits/locale_facets.h: Hack in solaris support.
+ * src/locale.cc: Here too.
+
+1999-12-18 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * docs/17_intro/TODO: Update
+ * docs/17_intro/RELEASE-NOTES (New): Update.
+
+1999-12-17 Benjamin Kosnik <bkoz@milou.cygnus.com>
+
+ * bits/c++config.h.in (__GLIBCPP__): Bump.
+ * docs/17_intro/RELEASE-NOTES: Update, Gaby please add your stuff.
+ * docs/17_intro/TODO: Update.
+
+ * bits/locale_facets.h: Touch this too.
+ * bits/localefwd.h: Add typedefs for loooooong vector names.
+ * bits/locale_facets.tcc (locale::operator()): Need parens.
+ (has_facet): Simplify.
+ * src/locale-inst.cc: Add instantiations.
+ * src/locale.cc: Tweaks.
+
+ * bits/std_streambuf.h: Move indeterminates into. .
+ * bits/std_fstream.h: Here.
+ * bits/fstream.tcc (underflow): Rewind just for ios_base::out
+ streams.
+ * bits/sstream.tcc: Very minor formatting tweaks.
+ * bits/std_streambuf.h (_M_set_determinate): If exclusively an
+ input buffer, set _M_buf to offset.
+ * bits/istream.tcc (std): Tweaks.
+ * testsuite/27_io/istream_unformatted.cc (test05): More tweaks,
+ include fstream.
+ * testsuite/27_io/filebuf.cc: Tweaks.
+
+1999-12-17 Phil Edwards <pedwards@jaj.com>
+
+ * configure.in: Add OPTLEVEL, -O2 for gcc 2.96+, nothing otherwise.
+ * configure: Regenerate.
+ * src/Makefile.am: Use OPTLEVEL in CXXFLAGS.
+ * src/Makefile.in: Regenerate. Also picks up OTHER_CXXFLAGS rename
+ to OPTIMIZE_CXXFLAGS from a previous revision (1.96) to Makefile.am.
+
+1999-12-17 Phil Edwards <pedwards@jaj.com>
+
+ * docs/21_strings/stringtok_std_h.txt: New algorithm
+ suggested by Chris King.
+ * docs/21_strings/howto.html: Link to new version.
+
+1999-12-16 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * bits/valarray_array.h (__valarray_sum): Use operator+=, not
+ operator+.
+ * docs/17_intro/TODO: Update.
+
+1999-12-15 Phil Edwards <pme@sourceware.cygnus.com>
+
+ * docs/gentop/footchunk.html: Updated, fixed CRLFs.
+ * docs/gentop/gentop: Ditto.
+ * docs/gentop/headchunk.html: Ditto.
+ * docs/*.html: Regenerated from gentop.
+ * docs/*/howto.html: Updated as test.
+ * docs/faq/index.html: Updated, fixed CRLFs.
+ * docs/faq/index.txt: Regenerated.
+
+1999-12-15 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * mknumeric_limits (OUT_C): restart only if $OUT_C is present.
+
+ * bits/std_complex.h
+ (complex<float>::complex(const complex<double>&),
+ complex<float>::complex(const complex<long double>&)): Define.
+
+ * docs/17_intro/TODO: Update.
+
+1999-12-13 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/istream.tcc (seekg): Don't set _M_gcount.
+ (tellg): Same.
+ * bits/fstream.tcc (filebuf::underflow): Re-sync
+ external byte sequence's input buffer only. . .
+ * testsuite/27_io/istream_unformatted.cc (test04): New tests for
+ tellg, seekg and filebufs.
+ (test05): Same for stringbufs.
+ * testsuite/27_io/istream_unformatted-2.tst: New file.
+ * testsuite/27_io/istream_unformatted-1.tst: New file.
+ * testsuite/27_io/istream_unformatted-1.txt: New file.
+ * testsuite/21_strings/inserters_extractors.cc (test05): Change
+ output file.
+
+1999-12-13 Phil Edwards <pedwards@jaj.com>
+
+ * docs/gentop/*: New directory, containing bits for the homepages.
+ * docs/*.html: Regenerated from gentop.
+ * docs/*/*.html: Entries added and regenerated.
+
+1999-12-13 Benjamin Kosnik <bkoz@gnu.org>
+
+ Efforts to get -O2 to work with -Winline -Werrors.
+ * bits/valarray_array.h (__valarray_fill(_Tp*, size_t, const
+ _Tp&): Remove inline declaration, as cannot be inlined and
+ -Winline -Werror complains. An interesting question is why this
+ cannot be inlined, as I can see no real reason to disqualify it.
+ (__valarray_product(const _Tp*, const _Tp*)): Same here.
+ * bits/std_valarray.h (valarray::operator[](size_t)): Same here.
+
+ * docs/17_intro/TODO: Update.
+
+1999-12-12 Benjamin Kosnik <bkoz@gnu.org>
+
+ * bits/std_fstream.h (seekpos): Tweaks, fixes. Move definition to
+ fstream.tcc.
+ * bits/basic_file.h (filepos_cur()): Make pointers themselves be
+ the resultant position.
+ * bits/fstream.tcc (seekoff): Explicitly set return value to
+ resultant external byte sequence position, not value returned from
+ _M_file->seekoff. Need to make
+ (seekpos): New definition.
+
+ * bits/istream.tcc (seekg): As per Library Issues List 136, set to
+ just istream. Necessary, or else tellg will give an invalid stream
+ position, but seekg will return a valid stream position, which is
+ not groovy: see testcase addition.
+ * bits/ostream.tcc (seekp): Same.
+
+ * bits/streambuf.tcc (_S_copy_streambufs): Simplify.
+ * bits/sstream.tcc: Tweaks.
+ * bits/locale_facets.tcc: Tweaks.
+ (num_put::do_put(iter_type, ios_base, char_type, const void*)):
+ Re-write in a way that is easier for the inliner to work with.
+ * bits/ios_base.h: Use explicit static_cast<int>(...) notation.
+
+1999-12-10 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/locale_facets.tcc: Tweaks.
+ * bits/locale_facets.h (use_facet): Can't inline, remove inline
+ from declaration.
+ * bits/localefwd.h: And here.
+ * bits/std_ostream.h: Tweaks, sentry ctor can't be inlined.
+ * bits/ostream.tcc: Put here.
+
+ Frank Ch. Eigler <fche@cygnus.com>
+ * src/Makefile.am: Adjust CXXFLAGS, add AM_CXXFLAGS.
+
+1999-12-08 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/sstream.tcc (stringbuf::seekoff): Long overdue revamp. Make
+ in and out buffers update independently.
+
+ * bits/basic_ios.h: Minor formatting.
+ * bits/fstream.tcc (std): Fix indentation.
+
+1999-12-08 Chip Salzenberg <chip@valinux.com>
+
+ * bits/char_traits.h (char_traits<>): Move not_eof() functions
+ after corresponding eof() functions, so they're easier for the
+ compiler to inline.
+ * bits/locale_facets.h (money_base::__default_pattern): Move
+ static variable out of inline functions.
+ (_Moneypunct<>::do_{pos,neg}_format): Use it.
+ * src/locale-inst.cc (money_base::__default_pattern): Define it.
+
+1999-12-08 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/std_fstream.h (filebuf::open): Tweak.
+ * bits/fstream.tcc (filebuf::seekoff): Simplify, fix.
+ * bits/std_ios.h: Minor tweaks for headers.
+
+1999-12-06 Benjamin Kosnik <bkoz@gnu.org>
+
+ * bits/c++config.h.in (_GLIBCPP_FULLY_COMPLIANT_HEADERS): New macro.
+ * src/string-inst.cc: Add guards . . .
+ * src/misc-inst.cc: And here.
+ * bits/std_sstream.h: And here.
+ * bits/std_fstream.h: And here.
+ * bits/std_streambuf.h: And here.
+ * bits/std_istream.h: And here.
+ * bits/std_ostream.h: And here.
+
+1999-12-06 Scott Snyder <snyder@fnal.gov>
+
+ * bits/istream.tcc (basic_istream::read): Try to handle __n == 0
+ case.
+ (basic_istream::readsome): And here as well.
+ * testsuite/27_io/istream_unformatted.cc: Test a zero-length
+ read().
+
+1999-12-06 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * bits/istream.tcc (basic_istream::ignore): streamsize is not
+ necessarily an `int'.
+
+1999-12-06 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * mknumeric_limits: Don't use $CXXFLAGS when building
+ gen-num-limits. It's definitely wrong to use it since $CXXFLAGS
+ generally instructs the compiler not to emit template
+ instantiations and we end up with undefined symbols. Sigh.
+
+1999-12-05 Benjamin Kosnik <bkoz@gnu.org>
+
+ * bits/locale_facets.tcc: Tweak.
+ (_S_format_long): Adjust showpos formatting for hex and oct.
+ * bits/std_ostream.h (operator<<(short)): Correctly deal with hex
+ and oct by formatting as unsigned.
+ (operator<<(int)): Same here.
+ * bits/ostream.tcc (operator<<(long)): Same.
+ (operator<<(long long)): Same.
+ (_S_pad_char): Actually treat ios_base::internal as something
+ worth doing correctly. Remove const designation on ios argument.
+ * testsuite/27_io/ios_manip_basefield.cc (test02): Add tests.
+ * testsuite/27_io/ostream_inserter_arith.cc (test03): Add tests.
+
+1999-12-04 Benjamin Kosnik <bkoz@gnu.org>
+
+ * bits/std_sstream.h (streambuf::underflow): Check for mode == in.
+
+1999-12-03 Benjamin Kosnik <bkoz@gnu.org>
+
+ * bits/locale_facets.tcc (num_put::do_put(bool): Fix.
+
+ * bits/sstream.tcc (streambuf::seekoff): Add parens.
+ * bits/istream.tcc (istream::get(sb)): Handle exceptional events.
+ (operator>>(istream, _CharT*)): Change streamsize to int_type.
+ (operator>>(istream, _CharT&)): Fix typedef'd type to be _CharT.
+ * bits/ostream.tcc (ostream::operator<<(const char*)): Stub out
+ unused argument.
+ (ostream::operator<<(_CharT)): Fix.
+
+ * bits/std_sstream.h: Temporarily disable including sstream.tcc to
+ see if this will increase compile speed.
+ * bits/std_ostream.h: Likewise. . .
+ * bits/std_istream.h: And here.
+ * bits/std_fstream.h: And here.
+ * src/misc-inst.cc: Add relevant header file includes for
+ instantiation purposes.
+ * src/string-inst.cc: And here.
+ * testsuite/27_io/ostream_inserter_arith.cc: Add test case.
+
+1999-12-02 Benjamin Kosnik <bkoz@gnu.org>
+
+ * testsuite/27_io/istream_unformatted.cc (test03): Add tests.
+ * bits/istream.tcc (get(streambuf)): More fixes.
+ (istream::ignore): Get specific about numeric_limits<int>::max()
+ requirements.
+
+ * bits/fstream.tcc (filebuf::open): Tweaks for _M_last_overflowed.
+ (filebuf::close): Same.
+ * testsuite/27_io/filebuf.cc: Add tests for ios_base::ate.
+
+1999-12-01 Phil Edwards <pedwards@jaj.com>
+
+ * mkcheck: Support for compilation/execution timing.
+ * testsuite/printnow.c: New file.
+
+1999-12-01 Phil Edwards <pedwards@jaj.com>
+
+ * bits/std_cwchar.h: Test for _GLIBCPP_USE_WCHAR_T.
+ * configure.in: Test for presence of wchar.h before testing
+ for any of its features.
+ * configure: Regenerate.
+
+1999-11-30 Benjamin Kosnik <bkoz@gnu.org>
+
+ Preliminary istream validations complete.
+ * bits/istream.tcc (istream::getline): Fixes. Tweaks to make
+ formatting more consistent. Removal of if-statements inside of for
+ loops.
+ (ignore): Fix.
+ (get): Same.
+ (putback): Same.
+ * bits/std_istream.h: Same.
+ * bits/sstream.tcc (stringbuf::pbackfail): Fix.
+ * testsuite/27_io/stringbuf.cc: Tweak.
+ * testsuite/27_io/istream_unformatted.cc (test02): Mo' tests.
+
+ * bits/ostream.tcc (ostream::operator<<(arith)): Set badbit, not
+ failbit on failure, as per 27.6.2.5.2.
+
+ * stl/bits/std_vector.h: Allow bool specializations. Should move
+ ext/std_bvector to bits, not ext, maybe.
+
+1999-11-30 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * configure.in: Fix checks for mbstate_t and WCHAR_MIN/MAX.
+ * configure: Regenerate.
+
+1999-11-29 Benjamin Kosnik <bkoz@gnu.org>
+
+ * bits/istream.tcc (get(streambuf, char)): Fix.
+ * testsuite/27_io/istream_unformatted.cc (test03): Add tests.
+
+1999-11-29 Scott Snyder <snyder@fnal.gov>
+
+ * bits/basic_string.h (append(const _Char*, size_type)): The
+ length of the appended string is given exactly by the second arg,
+ regardless of the data in the character array.
+ * bits/string.tcc (basic_string(const _CharT*, size_type, const
+ _Alloc&)): Likewise.
+ * testsuite/21_strings/append.cc (test01): Remove erroneous test
+ of basic_string::append.
+
+1999-11-29 Chip Salzenberg <chip@valinux.com>
+
+ * Makefile.in: Tweaks for CXXFLAGS.
+ * */Makefile.in: Same.
+
+1999-11-29 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * conficd bgure.in: Check for wide character support.
+ * bits/c++config.h.in (_GLIBC_USE_WCHAR_T): Move from here ...
+ * acconfig.h (_GLIBC_USE_WCHAR_T): to here.
+ * bits/string.tcc (wstring::_S_find): Guard wchar_t specialization.
+
+1999-11-29 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * acinclude.m4: Fix typo.
+ * src/complex.cc: Fix macro line continuation.
+
+1999-11-29 Petter Urkedal <petter@matfys.lth.se>
+
+ * src/Makefile.am (CXXFLAGS): Add -Wno-format to allow non-
+ string literals in format, as used in locale-facets.tcc.
+
+1999-11-28 Benjamin Kosnik <bkoz@gnu.org>
+
+ * testsuite/27_io/istream_unformatted.cc (test03): Add tests.
+ * bits/istream.tcc (istream::get): Extract to argument minus one.
+ Various tweaks and fixes.
+
+1999-11-22 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * bits/locale_facets.tcc: Workaround for compiler crash on
+ ix86-*-mingw32.
+
+1999-11-21 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * acinclude.m4: New file. New _GLIBCPP_CHECK_FLOAT_SUPPORT macro.
+ * configure.in: Use.
+ * acconfig.h: New _GLIBCPP_BUGGY_FLOAT_COMPLEX macro.
+ * src/complexf.cc: New _GLIBCPP_FLOAT_SPECIALIZATION macro.
+ * bits/std_complex.h: Use.
+ * src/complex.cc: Use.
+
+1999-11-19 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * testsuite/18_support/numeric_limits.cc: Add missing std:: prefix.
+ * testsuite/21_strings/inserters_extractors.cc: Likewise.
+ * testsuite/22_locale/ctype.cc: Likewise.
+ * testsuite/23_containers/multiset.cc: Likewise.
+ * testsuite/23_containers/vector_ctor.cc: Likewise.
+ * testsuite/26_numerics/binary_closure.cc: Likewise.
+ * testsuite/27_io/fpos.cc: Likewise.
+ * testsuite/27_io/ios_base_callbacks.cc: Likewise.
+ * testsuite/27_io/istream_extractor_arith.cc: Likewise.
+ * testsuite/27_io/istream_extractor_char.cc: Likewise.
+ * testsuite/27_io/istream_extractor_other.cc: Likewise.
+ * testsuite/27_io/istream_sentry.cc: Likewise.
+ * testsuite/27_io/ostream_inserter_char.cc: Likewise.
+ * testsuite/27_io/ostream_inserter_other.cc: Likewise.
+ * testsuite/27_io/streambuf.cc: Likewise.
+ * testsuite/27_io/stringstream.cc: Likewise.
+
+1999-11-19 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * bits/valarray_meta.h: Don't forget to define tanh
+
+1999-11-18 Philip Martin <pm@corris.dircon.co.uk>
+
+ * src/stl-inst.cc: Use typedef to refer to iterator
+ * stl/bits/stl_algobase.h: Add traits based dispatch for
+ __normal_iterator in the copy()algorithm
+ * stl/bits/type_traits.h: Add _Is_normal_iterator trait support
+
+1999-11-18 Kevin Ediger <kediger@licor.com>
+
+ * src/locale.cc (locale::_Imp::_Imp): Use auto_ptr to make
+ constructors for locale::_Impl exception safe.
+
+1999-11-18 Scott Snyder <snyder@fnal.gov>
+
+ * stl/bits/stl_queue.h: The C++ standard gives the default for the
+ _Sequence template argument of priority_queue<> as vector<>, not
+ deque<>.
+
+1999-11-18 Benjamin Kosnik <bkoz@gnu.org>
+
+ * bits/std_sstream.h (stringbuf::_M_really_sync): Add __iend as a
+ parameter.
+ * bits/sstream.tcc: Adjust here too.
+
+1999-11-17 Benjamin Kosnik <bkoz@gnu.org>
+
+ * bits/sbuf_iter.h (istreambuf_iter::equal): Tweak.
+ * bits/istream.tcc (operator>>): Replace iostate(0) with
+ iostate(ios_base::goodbit), which is the same thing, but hopefully
+ a bit clearer.
+ * bits/locale_facets.tcc (do_get(bool)): Streamline, deal with
+ libraries issue list 17.
+ (do_gets): Don't set goodbit explicitly, instead only set on
+ failures as good bit is the default setting.
+ * bits/ios_base.h (setf): Set correctly.
+ * bits/fstream.tcc: Tweak.
+ * bits/std_sstream.h (_M_really_sync): Fix ibuffer positioning for
+ in|out bufs that are empty. . .
+ * testsuite/27_io/istream_extractor_arith.cc (test03): Add.
+
+1999-11-16 Benjamin Kosnik <bkoz@gnu.org>
+
+ * testsuite/27_io/streambuf.cc (class testbuf): Don't set _M_buf_size.
+ * bits/std_streambuf.h (setp): Set _M_buf_size, _M_mode.
+ Add comments "all about _M_buf."
+ (setg): Set _M_mode.
+
+1999-11-16 Kevin Ediger <kediger@licor.com>
+
+ * bits/locale_facets.tcc (_S_build_float_format): New function.
+ (_S_output_float): New function.
+ (num_put::do_put(double)): Use 'em.
+ (num_put::do_put(long double)): Use 'em.
+ * testsuite/27_io/ostream_inserter_arith.cc: New file.
+
+1999-11-15 Scott Snyder <snyder@fnal.gov>
+
+ * bits/basic_file.h: Type of __off parm should be __c_streampos, to
+ match how libio is calling us.
+ * src/basic_file.cc (sys_seek): Likewise.
+ * bits/std_fstream.h (basic_filebuf::sync): Restore sync call.
+
+1999-11-15 Benjamin Kosnik <bkoz@gnu.org>
+
+ * docs/17_intro/contribute.html: Add link to assignment form.
+ * docs/17_intro/libstdc++-assign.txt: New file.
+
+ * mkcheck (TESTS_FILE): Move a copy of test files as well as
+ output files.
+
+ * bits/std_streambuf.h (_M_buf_bump): New function.
+ * bits/streambuf.tcc: Mods to support _M_buf_bump.
+ (xsputn): Here. Also add checks for output valid.
+ (xsgetn): Add checks for input valid.
+ (sputc): Here.
+ (sgetc): Set _M_in_end to _M_buf + _M_buf_end.
+ * bits/std_sstream.h (_M_really_sync): Set _M_buf.
+ Set _M_out_end to variable-length-end.
+ * bits/sstream.tcc (overflow): Use _M_buf_bump.
+ (seekpos): Same.
+ (seekoff): Same.
+ * bits/fstream.tcc (std): Tweak formatting.
+ (filebuf::overflow): Simplify.
+ (filebuf::showmanyc): Same.
+ (filebuf::underflow): Same.
+ * testsuite/27_io/filebuf.cc: Fix.
+ * testsuite/27_io/ostream_inserter_other.cc: Fix.
+ * testsuite/27_io/ostream_inserter_other-2.tst: New file.
+ * testsuite/27_io/stringbuf.cc: Tweak.
+ * testsuite/27_io/streambuf.cc: Tweak.
+ * testsuite/27_io/istream_extractor_other.cc: Fix.
+
+1999-11-11 Matthias Klose <doko@cs.tu-berlin.de>
+
+ * stl_deque.h: Use static_casts<size_type>(signed_type).
+
+1999-11-11 Benjamin Kosnik <bkoz@gnu.org>
+
+ Cleanups for callbacks, more regression hunting. Remaining
+ failures (1) due to last unresolved stringstream issues, not
+ regressions per se.
+ * bits/std_fstream.h: Revert. Disable call to _M_file->sync as
+ killing 27_io/filebuf.cc tests. . . need another solution.
+
+ * bits/streambuf.tcc (_S_copy_streambufs): Fix.
+ * testsuite/27_io/istream_extractor_other.cc: Tweak comments.
+
+ * bits/basic_ios.h: Add cached facets here. UGH. The standard
+ foils all attempts at a graceful, minimal implementation.
+ * bits/basic_ios.tcc: Tweaks.
+ * bits/istream.tcc: Fix.
+ * bits/ostream.tcc: Fix.
+ * bits/std_istream.h: Fix.
+ * bits/std_ostream.h: Fix.
+ * src/ios.cc (ios_base::imbue): Set _M_locale_ios before calling
+ callbacks.
+ * bits/locale_facets.tcc (std): Minor, minor formatting tweak.
+ (_S_pad_numeric): Make comprehensible.
+
+1999-11-10 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/std_ostream.h: Add callbacks for _M_fnumput.
+ (_S_ostream_fcache): New function.
+ Move functions out-of-line.
+ * bits/ostream.tcc: Put here.
+
+ * bits/std_istream.h: Add callbacks for _M_fnumget.
+ (_S_istream_fcache): New function.
+ Move functions out-of-line.
+ * bits/istream.tcc: Put here.
+
+ * bits/basic_ios.tcc (basic_ios::imbue): Tweaks, remove call to
+ _M_call_callbacks(), as ios_base::imbue does this already.
+ * src/ios.cc (register_callback): Clean.
+ (_M_call_callbacks): Same.
+ * bits/ios_base.h: Callback work.
+ * testsuite/27_io/ios_base_callbacks.cc (test01): New file.
+
+1999-11-10 Benjamin Kosnik <bkoz@cygnus.com>
+ Matthias Klose <doko@cs.tu-berlin.de>
+
+ * stl/ext/stl_rope.h: Fix initialization order.
+
+1999-11-09 Scott Snyder <snyder@fnal.gov>
+
+ * bits/std_fstream.h (basic_filebuf::sync): Unconditionally call
+ _M_file->sync() so that redirection works correctly.
+
+1999-11-09 Benjamin Kosnik <bkoz@gnu.org>
+
+ * bits/istream.tcc: Re-order.
+ * bits/std_istream.h: Fix getline problems.
+ * testsuite/27_io/istream_unformatted.cc: New tests.
+
+ Clean up regressions.
+ * bits/std_sstream.h: Set initial stringbufs correctly.
+
+1999-11-09 Scott Snyder <snyder@fnal.gov>
+
+ * stl_vector.h (_M_range_insert): Fix mixing pointers and
+ vector::iterator.
+ * testsuite/23_containers/vector_modifiers.cc (test01): New file,
+ tests.
+
+1999-11-09 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * src/Makefile.am (CXXFLAGS): Add -Winline.
+ * src/Makefile.in: Regenerate.
+
+1999-11-05 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * bits/valarray_meta.h (_DEFINE_EXPR_UNARY_FUNCTION): When
+ building meta-expressions don't forget to take the contained
+ closures.
+
+1999-11-02 Benjamin Kosnik <benjamin@cygnus.com>
+
+ * configure: Regenerate.
+
+1999-11-02 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * bits/valarray_meta.h (_Expr<>::sum): Tweak. Use copy-initialization
+ syntax.
+ * bits/valarray_meta.h (min): Likewise.
+ * bits/valarray_meta.h (max): Likewise.
+
+1999-11-01 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/std_sstream.h (_M_really_sync): Take into account in | out bufs.
+ * bits/std_streambuf.h (_S_copy_streambufs): New function.
+ * bits/streambuf.tcc: Define.
+ * bits/istream.tcc (istream::operator>>(streambuf)): Rewrite.
+ * bits/ostream.tcc (ostream::operator<<(streambuf)): Rewrite.
+ * testsuite/27_io/ostream_inserter_other.cc: Add tests.
+ * testsuite/27_io/ostream_inserter_other-1.tst: New file.
+
+ * bits/basic_string.h: Explicitly cast npos to unsigned type,
+ reported by Richard Atterer.
+ * bits/char_traits.h: For consistency's sake, here too.
+
+ * configure.in: Bump version to 2.90.7.
+
+1999-10-31 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * testsuite/27_io/ostream_inserter_char-1.tst: Check file output.
+ * testsuite/27_io/ostream_inserter_char.cc (test05, test01): Add tests.
+ * bits/streambuf.tcc (xsputn): Treat--size const char for long loops.
+ (xsgetn): Same.
+ * bits/sstream.tcc (seekpos): Tricks, mostly: check _M_mode before
+ writing into buffer.
+ (seekoff): Same.
+
+1999-10-29 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * bits/valarray_array.h (__valarray_sum): New function.
+ * bits/valarray_array.h (__valarray_product): Same.
+
+ * bits/std_valarray.h (valarray<T>::product): Comment out.
+ * bits/std_valarray.h (valarray<T>::sum): Use __valarray_sum
+ instead of accumulate.
+
+ * src/valarray-inst.cc: Remove explicit intantiation of
+ class multiplies<size_t>, accumulate, valarray<size_t>::product.
+ * src/valarray-inst.cc (__valarray_product): Instantiate
+ explicitly.
+ * src/valarray-inst.cc (__valarray_product(const
+ valarray<size_t>&)): New function.
+ * src/valarray-inst.cc (gslice::_Indexer::_Indexer): Don't use
+ valarray<size_t>::product. Use __valarray_product instead.
+
+
+1999-10-25 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/std_ostream.h (ostream.inserters.char): Correctly pad output.
+ (_S_pad_char): New function. Not done: ios_base::internal.
+ * bits/ostream.tcc: Clean for above.
+ * bits/locale_facets.tcc (_S_fill): Remove ostreambufiterator
+ specialization that was commented out, as ostreams now have to
+ correctly deal with padding.
+ * testsuite/27_io/ostream_inserter_char.cc (main): Add tests.
+
+ * testsuite/21_strings/ctor_copy_dtor.cc(test02): Add test case
+ from mailing list. This is a bug, and should be fixed.
+ * testsuite/21_strings/inserters_extractors.cc (main): Tweak, fix typo.
+
+1999-10-22 Petter Urkedal <petter@matfys.lth.se>
+
+ * stl/bits/stl_numeric.h (__power): Replaced argument name `__opr'
+ to avoid conflict with gcc name mangling.
+ * stl/bits/stl_algo.h (__transform): Same.
+
+1999-10-21 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/ios_base.h: Change argument names.
+ * docs/17_intro/BADNAMES: Add __opr.
+
+1999-10-20 Benjamin Kosnik <bkoz@decepticon.cygnus.com>
+
+ Work on compilation slowdowns from 10-5 to 10-12, which are
+ related to the _Callback_list inlining/merge-ifcation, which is
+ still a pending issue, but this stuff is necessary cleanup anyway.
+
+ * src/ios.cc: Re-arrange.
+ * bits/ios_base.h: Tweak.
+ * bits/basic_ios.tcc: Move out of line definitions here, move
+ small out-of-line definitions inline.
+ * bits/basic_ios.h: From here.
+
+ * bits/streambuf.tcc (pbackfail, overflow): Move back inline.
+ * bits/std_streambuf.h: From here.
+
+1999-10-19 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * testsuite/27_io/istream_extractor_char.cc: Add tests.
+ * bits/std_istream.h: Tweaks--set eofbit on eof condition.
+ * bits/istream.tcc (operator>>(istream&, string&): Remove
+ vestigial issspace hacks and use ctype::is instead.
+ (getline): Remove unnecessary loops, fortify and pasteurize.
+ (ws): Same.
+
+1999-10-18 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/istream.tcc (operator>>): Tweak.
+ * bits/std_istream.h: Fix according to library issues list 68.
+ Add typedefs.
+
+ * bits/locale_facets.h: Fix table_size to be non-zero.
+
+1999-10-18 Vadim Egorov <egorovv@HotPOP.com>
+
+ * src/basic_file.cc: ifdef instead of comment for binary mode
+
+1999-10-18 Russell Davidson <russell@qed.econ.queensu.ca>
+
+ * bits/std_sstream.h: Stringbuf initialization based on actual,
+ not allocated, size.
+ * testsuite/21_strings/inserters_extractors.cc (test06): Add test
+ case.
+
+1999-10-17 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * testsuite/26_numerics/c_math.cc (test03): Tweak.
+ * testsuite/27_io/istream_manip.cc (test01): Corrections due to
+ sentry change.
+ * testsuite/21_strings/inserters_extractors.cc (test01): Same.
+
+1999-10-14 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/std_istream.h: Tweaks.
+ * bits/istream.tcc (istream::sentry::sentry()): Simplify, correct
+ as per issues list addition--set failbit, eof on empty buffers.
+ * testsuite/27_io/istream_sentry.cc: New file.
+
+1999-10-12 Chris Prince <prince@wcug.wwu.edu>
+
+ * bits/std_cstdio.h: Remove Solaris hacks.
+
+1999-10-12 Phil Edwards <philip.edwards@sn.wpafb.af.mil>
+
+ * docs/index.html: Fix minor typos and tweaks.
+ * docs/17_intro/contribute.html: Ditto.
+ * docs/*/howto.html: Ditto. More "EGCS"->"GCC" conversion, notes on
+ thread safety and binary I/O, links to external sites.
+ * docs/faq/index.html: EGCS/GCC cleanup, new entries for Cygwin
+ and MT.
+
+1999-10-12 Petter Urkedal <petter@matfys.lth.se>
+
+ * bits/std_cmath.h (abs(float)): When ::absf is not present, call
+ ::fabs(double) rather than ::abs(int).
+
+1999-10-11 Benjamin Kosnik <bkoz@milou.cygnus.com>
+
+ * bits/std_streambuf.h: Fix minor blip--should explicitly return
+ *gptr(), not the result of underflow.
+ (pbackfail): Conform to default behavior.
+ (overflow): Same.
+ * bits/streambuf.tcc: Add out-of-line streambuf members.
+ (xsputn): Tweak.
+ (xsgetn): Tweak.
+ * testsuite/27_io/streambuf.cc: New file.
+ * testsuite/27_io/filebuf.cc: Correct test.
+
+1999-10-08 Benjamin Kosnik <bkoz@haight.constant.com>
+
+ * bits/std_cmath.h: Correctly cast int to double.
+ * testsuite/26_numerics/c_math.cc: Add test.
+
+ * mknumeric_limits (OUT_C): Tweaks.
+ * src/gen-num-limits.cc: Checks for WCHAR_MIN, WCHAR_MAX before
+ trying to instantiate type_traits<wchar_t>.
+ * acconfig.h: Add _GLIBCPP_HAS_WCHAR_MIN_MAX.
+ * configure.in (LIBS): Plus checks for WCHAR_MIN, WCHAR_MAX.
+ * configure: Regenerate.
+
+1999-10-06 Benjamin Kosnik <bkoz@milou.cygnus.com>
+
+ * bits/streambuf.tcc (streambuf::xsgetn): Rewrite.
+ (streambuf::xsputn): Put in break.
+ Aiming for parity between these two (mostly) similar functions.
+ Need to re-write tests.
+
+ * bits/ios_base.h (ios_base::_M_copy_base): Remove declaration.
+ Make data members protected, not private.
+ * src/ios.cc (ios_base::_M_copy_base): Move _Callback_list into
+ ios_base.h. As called only once, collapse into . . .
+ * bits/basic_ios.h (basic_ios::copyfmt): Fix.
+ (basic_ios::clear): Throw ios_base::failure on occasion.
+ (basic_ios::exceptions): Fix.
+ * testsuite/27_io/ios_members.cc (test02): Add tests.
+
+ * bits/fpos.h: Default initialize.
+ * testsuite/27_io/fpos.cc (test03): Add test.
+
+1999-10-04 Russell Davidson <russell@qed.econ.queensu.ca>
+
+ * src/basic_file.cc: Fix open modes.
+
+1999-10-04 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * bits/locale_facets.tcc (num_get<>::do_get): Fix typo.
+
+1999-09-23 Benjamin Kosnik <bkoz@milou.cygnus.com>
+
+ * bits/streambuf.tcc: Yea. Fix this for real.
+ * testsuite/27_io/ostream_inserter_other.cc: Add file.
+ * src/Makefile.*: Regenerate.
+
+1999-09-22 Benjamin Kosnik <bkoz@milou.cygnus.com>
+
+ * bits/std_cstdlib.h: Add more linux-specif hacks to the header
+ files so that stdtof and strtold will be declared. Some hacks
+ already exits in bits/std_cctype.h -- these should all be removed
+ at a later date.
+ * bits/locale_facets.tcc: Add cstring.h include.
+ _S_format_long: Use long, not int.
+ Add std_limits.h include, for numeric_limits.
+ * testsuite/27_io/istream.cc: Make instantiations work when using
+ -fhonor-std.
+ * testsuite/27_io/ostream.cc: Same.
+
+1999-09-21 Benjamin Kosnik <bkoz@milou.cygnus.com>
+
+ * bits/fpos.h (fpos::operator streamoff): Make const, don't return
+ a reference. Same for operators == and !=.
+ * testsuite/27_io/fpos.cc: Add tests.
+
+1999-09-21 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * bits/valarray_array.h: Fix typo.
+
+ * mknumeric_limits: Make sure we are regenerating things from
+ scratch. Otherwise things get redefined. Not good.
+
+1999-09-20 Benjamin Kosnik <bkoz@milou.cygnus.com>
+
+ * bits/std_ostream.h: Fix typo.
+ * bits/std_istream.h: Same.
+ * bits/std_iomanip.h: Same.
+
+ * bits/istream.tcc (sentry::sentry()): Remove optional tie with
+ ostream, as happens with underflow anyway.
+ * testsuite/27_io/istream.cc (main): New file.
+ * testsuite/27_io/ostream.cc (main): New file.
+ * testsuite/27_io/istream_unformatted.cc: Add tests.
+
+ * src/Makefile.am (headers): Add new file.
+ * src/Makefile.in (headers): Regenerated.
+
+ * bits/basic_ios.h: Remove local-related files.
+ * bits/basic_ios.tcc: New file, add locale-related items.
+ * src/misc-inst.cc: Add include of basic_ios.tcc, as a hack for now.
+ * testsuite/27_io/ios_members_static.cc: Change to
+ * testsuite/27_io/ios_base_members_static.cc: This.
+ * testsuite/27_io/ios_members.cc: New file.
+ * testsuite/27_io/stdios_basefield_manip: Change to
+ * testsuite/27_io/ios_manip_basefield.cc: This.
+ * testsuite/27_io/stdios_fmtflags_manip: Change to
+ * testsuite/27_io/ios_manip_fmtflags.cc: This.
+
+ * bits/fpos.h: Fix discarding qualifiers on this when
+ using _M_position with a const fpos.
+ * bits/std_iosfwd.h: Tweak.
+ * testsuite/27_io/fpos.cc: New file.
+
+1999-09-17 Benjamin Kosnik <bkoz@milou.cygnus.com>
+
+ * bits/streambuf.tcc (streambuf::xsputn): Tweak.
+ * bits/ostream.tcc: Tweak.
+ * testsuite/21_strings/inserters_extractors.cc (test04, test05):
+ Add new regressions.
+
+1999-09-16 Benjamin Kosnik <bkoz@milou.cygnus.com>
+
+ * bits/basic_ios.h: Inline, tweak.
+ * bits/fstream.tcc (basic_filebuf::_M_really_overflow): Tweak,
+ pass back accurate return value to basic_filebuf::overflow.
+ * bits/streambuf.tcc (streambuf::xsputn): Fix overflow accounting.
+ This fixes sstream problems reported in libstdc++/9, but screws up
+ filebufs. That solution is pending.
+
+1999-09-15 Vadim Egorov <egorovv@1c.ru>
+
+ * bits/streambuf.tcc (basic_streambuf::xsputn): Add check for
+ zero count puts.
+ * testsuite/21_strings/inserters_extractors.cc (test01): Add test.
+
+1999-09-08 Benjamin Kosnik <bkoz@milou.cygnus.com>
+
+ * bits/c++config.h.in: Add emacs hints.
+
+ * stl/bits/stl_range_errors.h: Don't define here, for now define
+ in stdexcept.cc along with string inlines __length_error, etc.
+ * src/stdexcept.cc: Define here.
+ * stl/bits/stl_config.h (__STL_CAN_THROW_RANGE_ERRORS): Enable, so
+ at(size_t) will be declared/defined.
+ (__STL_THREADS): Fix mess surrounding use of this, enable.
+
+1999-08-31 Benjamin Kosnik <bkoz@milou.cygnus.com>
+
+ * testsuite/27_io/istream_extractor_arith.cc: Fix.
+ * src/localename.cc: Tweak formatting, fix assignment to
+ const compiler errors.
+
+1999-08-25 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * acconfig.h: Add absf, cosf.
+ * configure.in (use_builtin_sinf): Same.
+ * configure: Regenerate.
+ * bits/std_cmath.h: Add mess of defines.
+ * testsuite/26_numerics/modf_float.cc: Change to
+ * testsuite/26_numerics/c_math.cc: This.
+
+ * src/locale.cc: Change.
+ * bits/locale_facets.h: Fix.
+ * testsuite/22_locale/ctype.cc: Add temporary tests.
+
+1999-08-24 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/fpos.h: Test.
+
+ * docs/index.html: Add powerpc-linux-gnu results with gcc-2.95.1.
+ Fix database name for "libstdc++".
+
+1999-08-23 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * mknumeric_limits (numeric_limits): Add default definitions to
+ member functions.
+ * testsuite/18_support/numeric_limits.cc: New file.
+
+1999-08-18 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/std_istream.h: Correct initialization.
+ * bits/std_ostream.h: Likewise.
+ * bits/std_sstream.h: Likewise.
+ * bits/std_fstream.h: Likewise.
+ * testsuite/27_io/stringstream.cc: Add test case.
+
+ * bits/std_sstream.h: Replace ____string_type with __string_type.
+ * bits/basic_ios.h (basic_ios::rdbuf(sb*): Call clear(), as required.
+ * bits/std_ostream.h: Tweak dtor.
+
+1999-08-17 Benjamin Kosnik <bkoz@decepticon.cygnus.com>
+
+ * src/Makefile.am (CXXFLAGS): Add -O2.
+ * src/Makefile.in: Likewise.
+
+ * src/gen-num-limits.cc: Conditionally allow wchar_t. See what
+ this breaks. . .
+ * mknumeric_limits (numeric_limits): Uglify.
+
+ * bits/std_istream.h: Fix warnings.
+ * bits/locale_facets.tcc: Collateral damage from
+ char_traits<char>::int_type change.
+
+ * testsuite/27_io/istream_extractor_char.cc: Terminate strings.
+
+1999-08-17 Benjamin Kosnik <bkoz@decepticon.cygnus.com>
+
+ * docs/index.html: Add mailing list form.
+ * docs/27_io/howto.html: Add link to iostreams_hierarchy.pdf.
+
+1999-08-16 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/streambuf.tcc (streambuf::xsputn): Allow copies to continue
+ if overflow successfully allocates more space.
+ * bits/std_sstream.h: Adjust comments.
+ * bits/sstream.tcc (stringbuf::overflow): Copy buffer into string
+ before overflow forces a resize.
+ * testsuite/27_io/ostream_inserter_char.cc: New file.
+
+ * bits/std_fstream.h: Remove declaration.
+ * bits/fstream.tcc: Move uflow.
+ * bits/std_streambuf.h: To here.
+ * bits/streambuf.tcc: Make consistent.
+
+ * src/Makefile.am (WERROR): Enable.
+ * src/Makefile.in: Regenerate.
+ * bits/sbuf_iter.h: Tweak.
+ * bits/char_traits.h: (char_traits<wchar_t>::eof): Use WEOF.
+ Use unsigned int as char_traits<char>::int_type.
+
+ * bits/ostream.tcc (ostream::putc(char)): Tweak.
+ * testsuite/27_io/iostream_objects.cc: Terminate string.
+ Move cin::operator>>(char*) test to extractor_char.cc.
+ * testsuite/27_io/stringstream.cc: Add stringstream instantiation.
+ * bits/std_istream.h (basic_iostream): Make explicit definition
+ for default ctor.
+ * bits/std_sstream.h: Fix typos.
+ * bits/fstream.tcc (_M_init_filebuf): Set to indeterminate for
+ basic_filebuf ctor with fileno open arguments. Thus, filebufs are
+ initialized in a consistent manner, no matter if the underlying
+ FILE/bit bucket is a tty or a text file or some other imaginary
+ construct. This and setting _M_buf_size to 1 for cin allows
+ istream::get(char) to work in a manner consistent with what others
+ expect.
+
+ * docs/index.html: Link Stroustrup's C++ page.
+
+1999-08-12 Michael Cook <cook@sightpath.com>
+
+ * bits/fstream.tcc: Fix signed/unsigned -Wall warning.
+ * bits/istream.tcc: ditto.
+ * bits/sbuf_iter.h: ditto.
+ * bits/std_istream.h: ditto.
+ * src/Makefile.am: Add -Wall to CXXFLAGS.
+ * src/Makefile.in: ditto.
+
+1999-08-12 Benjamin Kosnik <bkoz@tintin.cygnus.com>
+ Russell Davidson <russell@ehess.cnrs-mrs.fr>
+
+ * bits/locale_facets.tcc (_M_extract): Finish off patch from yesterday.
+ * src/Makefile.am (myinstallheaders): Tweak, remove PHONY.
+
+1999-08-11 Benjamin Kosnik <bkoz@tintin.cygnus.com>
+
+ * testsuite/27_io/istream_unformatted.cc: New file.
+
+ * testsuite/27_io/istream_extractor_arith.cc (test02): Add more
+ elaborate tests for int types with noskipws.
+
+ * testsuite/27_io/istream_extractor_other-1.txt: New file.
+ * testsuite/27_io/istream_extractor_other-1.tst: New file.
+ * testsuite/27_io/istream_extractor_other-2.tst: New file.
+ * testsuite/27_io/istream_extractor_other.cc: Add tests.
+ * bits/istream.tcc: Fix operator>>(streambuf*).
+
+ * testsuite/23_containers/vector_ctor.cc (test01): Add.
+
+ * docs/index.html: Remove references to egcs.
+ * docs/17_intro/DESIGN: Same.
+ * docs/17_intro/contribute.html: Same.
+ * docs/17_intro/RELEASE-NOTES: Ditto.
+ * docs/17_intro/howto.html: Same here.
+
+ Russell Davidson <russell@ehess.cnrs-mrs.fr>
+ * stl/bits/stl_vector.h (_M_insert_aux):
+ * bits/locale_facets.tcc (_M_extract): Tweaks for preliminary
+ decimal/floating point support.
+ * bits/locale_facets.h: Change _M_extract prototype.
+ * bits/char_traits.h (char_traits::to_int_type): Cast to unsigned.
+ * bits/std_istream.h (istream::read(char_type, streamsize)): Fix.
+
+1999-08-10 Michael Cook <cook@sightpath.com>
+
+ * bits/fstream.tcc: Fix for unused variable warning (-Wall).
+ * bits/ios_base.h: ditto.
+ * bits/istream.tcc: ditto.
+ * bits/locale_facets.h: ditto.
+ * bits/locale_facets.tcc: ditto.
+ * bits/std_streambuf.h: ditto.
+ * src/basic_file.cc: ditto.
+ * src/locale.cc: ditto.
+ * src/localename.cc: ditto.
+
+1999-08-10 Kirat Singh <singhki@jany.gs.com>
+
+ * bits/std_iomanip.h: Inline.
+
+1999-08-10 Alfred Minarik <a8601248@unet.univie.ac.at>
+
+ * bits/std_streambuf.h: Correct member initialization order.
+ * src/ios.cc: Add definitions for ios_base data members.
+
+1999-08-06 Phil Edwards <pedwards@ball.com>
+
+ * docs/index.html: Seventh snapshot updates. Minor tweaks.
+ * docs/faq/index.html: Ditto. Removed bugs sections that have
+ been fixed for a long time... Lots of "egcs" references still
+ exist.
+ * docs/faq/index.txt: Regenerated.
+
+1999-08-05 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+ Andreas Amann <amann@physik.tu-berlin.de>
+
+ * testsuite/26_numerics/binary_closure.cc (main): new test.
+
+1999-07-29 Andreas Amann <amann@physik.tu-berlin.de>
+
+ * bits/valarray_meta.h: (_BinClos<>::_Binclos): fix typo causing
+ segmentation fault.
+
+1999-08-04 Benjamin Kosnik <bkoz@decepticon.cygnus.com>
+
+ * docs/index.html (host): Put in testing status.
+
+1999-08-03 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * docs/index.html: Update for libstdc++-2.90.6 release.
+ * docs/17_intro/RELEASE-NOTES (New): Update.
+ * docs/17_intro/BUGS: Update.
+ * bits/c++config.h.in (__GLIBCPP__): Bump version number.
+ * README (file): Update.
+
+1999-08-03 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * src/Makefile.am (generated_headers): Remove bits/c++config.h as
+ a target.
+ ($(generated_headers)): Same.
+ * src/gen-c++config.cc: Remove, rename to
+ * bits/c++config.h.in: New file. Bump version number.
+ * configure.in: Generate bits/c++config.h at configure time.
+ * math/mathconf.h: include bits/c++config.h, not config.h.
+
+ * bits/std_cmath.h: Fix remaining link error for solaris shared
+ builds. _GLIBCPP_HAS_BUILTIN_SINF has to be disabled for the time
+ being, as on Solaris this silently calls sinf, which does not
+ exist.
+
+ * src/complex.cc: More tweaks.
+
+1999-08-03 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * src/complex.cc: Same.
+ * math/complex-stub.h: Change.
+ * math/c_log10*.c: Change back to clog10*.c.
+
+ * configure.in (NEED_C_LOG10): Delete.
+ * configure: Regenerate.
+ * math/Makefile.am: Change.
+
+1999-07-30 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * math/Makefile.am: Fix, for real.
+ * configure.in (use_builtin_sinf): Ok, make autoconf solution.
+ * math/clog.c: Move to c_log.c.
+ * math/clog*: Ditto.
+ * math/c_log10l.c (c_log10l): Change function name.
+ * math/c_log10f.c (c_log10f): Change function name.
+ * math/c_log10.c (c_log10): Change function name.
+
+ * math/complex-stub.h: Change to c_log* variants.
+ * src/complex.cc: And here.
+
+1999-07-29 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * testsuite/27_io/istream_extractor_other.cc: Correct last test.
+ * bits/sstream.tcc (stringbuf::overflow): Don't update the input
+ sequence, just the output sequence.
+ * bits/std_sstream.h (stringbuf::str()): Only in stringbufs return
+ the original string, all others use complicated heuristic.
+
+ * src/complex.cc: Assume c_log10.
+ * math/Makefile.am (EXTRA_yes): Fix c_log/c_logf unresolved
+ symbols in shared libraries by making c_log/c_log10 part of the
+ "must cmpile" sources. This may not work on solaris, must check.
+
+1999-07-29 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/istream.tcc (operator>>(streambuf*)): Re-do.
+ * bits/std_istream.h: Fix char extractors.
+ * testsuite/27_io/istream_extractor_char.cc: Change.
+ * testsuite/27_io/istream_extractor_other.cc: Add tests.
+
+1999-07-28 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/std_cctype.h: Fix for solaris2.6 builds.
+
+ * bits/istream.tcc: Fix, thanks Alfred.
+ * bits/std_istream.h: Formatting changes.
+
+ * libio/Makefile.am (libio_la_SOURCES): Remove cleanup.c, so that
+ _IO_cleanup will not be undefined.
+ * libio/*: Regenerate.
+
+ * bits/basic_string.h: More namespace-safety stuff.
+ * testsuite/27_io/istream_extractor_char.cc: Fix.
+ * testsuite/27_io/istream_extractor_arith.cc: Fix.
+ * testsuite/27_io/iostream_objects.cc: Fix.
+ * testsuite/27_io/ios_ctor.cc: Fix.
+ * testsuite/27_io/istream_manip.cc: Make namespace safe.
+ * testsuite/27_io/istream_extractor_other.cc: New file.
+
+ * mkcheck (TESTS_FILE): Tweaks.
+
+1999-07-27 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * src/gen-c++config.cc: Note here, change version.
+ * acconfig.h( _GLIBCPP_USE_CTYPE_ISBIT): New macro.
+ * src/locale.cc: Used here.
+ * configure.in (use_builtin_sinf): Check for _ISBit using autoconf.
+
+ * aclocal.m4: Regenerate by running `aclocal -I m4.`
+
+ * bits/istream.tcc: Fix.
+ * bits/std_istream.h: More changes to extractors.
+
+ * testsuite/27_io/istream_extractor_char.cc: More.
+ * testsuite/21_strings/inserters_extractors.cc (test01): Fix logic
+ error in testsuite construction.
+
+ * bits/std_istream.h: Partially revert.
+ * bits/std_ostream.h: Same.
+ * bits/std_sstream.h: Revert.
+
+1999-07-26 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/std_sstream.h: Change initialization.
+ * bits/std_ostream.h: Make default ctor/assign/operator= private.
+ * bits/std_istream.h: Same, also correct sentry args.
+ * bits/istream.tcc: Add correct sentry args.
+
+ * testsuite/27_io/istream_extractor_char.cc: New file.
+ * testsuite/27_io/istream_extractor_arith.cc: New file, old file,
+ name changes making me dizzy.
+
+1999-07-26 Ulrich Drepper <drepper@happy.cygnus.com>
+ Benjamin Kosnik <bkoz@cygnus.com>
+
+ * aclocal.m4, config.guess, config.sub, ltconfig ltmain.sh: Update
+ to libtool 1.3.3.
+
+1999-07-26 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * bits/std_complex.h: Tweak. Make the primary template class
+ complex work with user-defined numerical types. Provide member
+ definitions. Restructure.
+ (class complex<float>): Uglify. Remove __value(). Rename __val
+ to _M_value. Rename __complex_value_type to _ComplexT. Make it
+ private. Remove dependency on __value(). Fix various explicit
+ specialization syntax. Declare a some functions friend. Now the
+ implementation is nearly comforming.
+ (class complex<double>): Likewise.
+ (class complex<long double>): Likewise.
+
+ * src/complex.cc: Tweak. Remove dependency on complex::__value().
+ (sin, sinh, tan, than): Fix call to corresponding C9x function
+ syntax.
+
+1999-07-24 Benjamin Kosnik <bkoz@fidel.cygnus.com>
+
+ * bits/istream.tcc (ws): Fix error with failbit being set.
+
+ Disabled due to egcs/gcc-2_95 internal compiler errors.
+ * src/Makefile.am (CXXFLAGS): Add -fsquangle -fhonor-std
+ -fnew-exceptions. Compiling with namespaces enabled will now be
+ the default.
+ * mkcheck (CXX_FLAG): Same.
+ * src/gen-c++config.cc (_GLIBCPP_USE_NAMESPACES): Yup. New macro.
+ * bits/std_cctype.h: Not enough to just define in namespace std if
+ ctype-isms are macros. Need to also define in namespace std:: if
+ the C functions are just plain functions.
+
+ * src/gen-num-limits.cc: Fix spelling inconsistencies.
+
+1999-07-24 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * docs/18_support/howto.html: Start documentation. Need to keep
+ track of the ongoing discussion in th LWG reflector.
+
+ * src/gen-num-limits.cc: Tweak.
+ (class predicate): New class.
+ (class value): Likewise.
+ Make the whole machinery more flexible. Add comments.
+
+1999-07-23 Benjamin Kosnik <bkoz@fidel.cygnus.com>
+
+ * bits/ios_base.h: Move state/exception functions into basic_ios.
+ * bits/basic_ios.h: Same.
+ * src/ios.cc: And here. Callbacks don't attempt to reset
+ state now.
+
+ * bits/std_streambuf.h: Separate ios and streambuf locale data
+ members and cached facets. Using this convention: _M_locale_buf for
+ the streambuf-related classes, and _M_locale_ios for the ios
+ hierarchy.
+ * bits/fstream.tcc: And here.
+ * bits/basic_ios.h: And here. Also, add cached ctype.
+ * src/ios.cc: Ditto.
+ * bits/ios_base.h: Ditto.
+ * bits/std_istream.h: Use cached ctype facet.
+ * docs/27_io/iostreams_hierarchy.pdf: Update for new data member
+ arraignment.
+
+ * testsuite/27_io/ios_ctor.cc: New file.
+ * src/ios.cc: Move _M_state init to basic_ios::init().
+ * bits/basic_ios.h: To here.
+
+ Attempt for some consistency in naming for testsuite/27_io/*.cc.
+ * testsuite/27_io/boolfmt.cc: Rename to stdios_fmtflags_manip.cc
+ * testsuite/27_io/octfmt.cc: Rename to stdios_basefield_manip.cc
+ * testsuite/27_io/istream_manip.cc: Rename to istringstream_manip.cc.
+ * testsuite/27_io/ostream_manip.cc: Rename to ostringstream_manip.cc.
+
+1999-07-22 Benjamin Kosnik <bkoz@fidel.cygnus.com>
+
+ * src/ios.cc: Tweak initializations of standard iostream
+ objects to closely match the standard. Tie cin/wcin, set flags on
+ cerr/wcerr
+ * bits/char_traits.h: Change from size_t to int_type, as per
+ standard. As per wide streams.
+ * bits/basic_ios.h: Infect with __ctype_type, as a preparation
+ for caching a bunch of ctype info. For instance, ctype_base::space
+ info needs to be stored somewhere, somehow.
+ * bits/std_istream.h: Also here.
+ * bits/std_ostream.h: Ditto.
+ * bits/std_istream.h (operator>>(istream, char): Aggh. Fixup.
+ * testsuite/27_io/iostream_objects.cacc (test01): Oh yeah. Fix
+ stream states.
+
+ * bits/istream.tcc (ws): Fix.
+ * testsuite/27_io/istream_manip.cc: New file, test ws.
+ * testsuite/27_io/ostream_manip.cc: New file, test endl, ends, flush.
+
+ * bits/basic_string.h: Provide a specialized member function for
+ _S_find<char> using strchr.
+ * src/string-inst.cc: Put specializations here.
+ * bits/string.tcc: Small fix for find, remove typo.
+ * testsuite/21_strings/find.cc (test01): Add tests to catch this
+ find bug. . .
+
+1999-07-20 Benjamin Kosnik <bkoz@decepticon.cygnus.com>
+
+ * bits/basic_ios.h: Put into basic_ios namespace.
+ Tweak widen/narrow.
+
+1999-07-19 Benjamin Kosnik <bkoz@decepticon.cygnus.com>
+
+ * bits/std_sstream.h (stringbuf::sync): Change to _M_really_sync,
+ adjust _M_*_cur pointers inside the function, so callee doesn't
+ have to adjust.
+ * bits/sstream.tcc (stringbuf::overflow): Tweak.
+
+ * mkcheck: Tweak. Add execution time field, even though it is not
+ implemented yet. Simplify pass/fail status notation.
+
+1999-07-18 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * configure.in: Check for float.h and underscored version of
+ math functions.
+ * acconfig.h: Add @BOTTOM@ section for handling underscored
+ math functions.
+ * configure: Regenerate.
+ * config.h.in: Regenerate.
+ * math/mathconf.h (float.h): Include conditionally.
+ (M_PI): Define conditionally.
+ (INFINITE_P): Define for Mingw.
+ * bits/locale_facets.tcc: Workaround for compiler crash on
+ ix86-*-mingw32.
+ * bits/std_cwchar.h (bits/std_cstddef.h): Include.
+ * src/locale.cc (bits/std_istream.h): Include.
+ (bits/std_ostream.h): Likewise.
+
+1999-07-18 Phil Edwards <pedwards@ball.com>
+
+ * docs/faq/index.html: Updated __black_count notes, fixed typos.
+ * docs/faq/index.txt: Regenerated.
+
+1999-07-15 Benjamin Kosnik <bkoz@decepticon.cygnus.com>
+
+ * testsuite/27_io/stringbuf.cc: Cccchanges, latent bugs.
+
+ * bits/sstream.tcc (stringbuf::overflow): Modify accounting of
+ newly-allocated buffer.
+ * bits/streambuf.tcc (streambuf::xsgetn): Aaaaaah. Fix final
+ overflow condition bits.
+
+1999-07-14 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/std_sstream.h (stringbuf::_M_init_stringbuf): Set
+ _M_buf_size to initial _M_string.size(), even though for
+ ostringstreams it is pretty pointless. It's necessary for
+ istringstreams.
+ (stringbuf::str()): Adjust.
+ (stringbuf::str()): Adjust, call _M_init_stringbuf.
+ * bits/streambuf.tcc (streambuf::xsgetn): Adjust return value for
+ overflow's possible success.
+ (streambuf::xsputn): Adjust.
+
+ * testsuite/27_io/filebuf.cc: Adjust for the xsgetn re-write from
+ yesterday.
+ * testsuite/27_io/stringbuf.cc: Tweak.
+ * testsuite/21_strings/inserters_extractors.cc (test01): Remove
+ notes to myself.
+ * testsuite/23_containers/vector_cons.cc: Rename to be consistent
+ with other constructor tests to. . .
+ * testsuite/23_containers/vector_ctor.cc: New file.
+
+1999-07-14 Alfred Minarik <a8601248@unet.univie.ac.at>
+
+ * testsuite/*: Changes to make the testsuit compilable with
+ -fhonor-std. Contains direct qualification of library names with
+ std::.
+
+1999-07-13 Benjamin Kosnik <bkoz@decepticon.cygnus.com>
+
+ * bits/streambuf.tcc: Tweaks.
+ (streambuf::xsputn): Optimize, fix for sstreams.
+ (streambuf::xsgetn): Same.
+ * bits/sstream.tcc (stringbuf::overflow): Adjust _M_buf_size
+ correctly, handle overflow/reallocate conditions correctly.
+ * bits/std_sstream.h: Fix typo.
+ _M_init_stringbuf(): Fix _M_buf_size initialization.
+ (stringbuf::str()): Construct return string if output has occurred.
+
+ * bits/basic_string.h: Fix typo from yesterday's patch.
+
+1999-07-12 Ryszard Kabatek <kabatek@chemie.uni-halle.de>
+
+ * bits/string.tcc: _M_mutate - clear _M_state again.
+ * bits/basic_string.h: In the three functions that return
+ an iterator set _M_state to -1 before return.
+ Also optimized two cases of operator+.
+
+1999-07-12 Phil Edwards <pedwards@ball.com>
+
+ * docs/index.html: Expand egcs-1.1.2 notes/links.
+ * docs/faq/index.html: And here. Add links to LWG issues-list.
+ * docs/faq/index.txt: Regenerate. (lynx rocks)
+ * docs/21_strings/howto.html: Fix notes on case conversion.
+ * docs/21_strings/stringtok_h.txt: Goodly spelling...
+ * docs/23_containers/howto.html: Stub for bitmasks.
+ * docs/27_io/howto.html: Add section on buffering, stub binary.
+
+1999-07-12 Nathan Myers <ncm@cantrip.org>
+
+ * stl/bits/stl_tree.h (__black_count): Optimize.
+
+1999-07-09 Vadim Egorov <egorovv@1c.ru>
+
+ * src/basic_file.cc: Cleanup in __basic_file destructor.
+
+1999-07-08 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/std_streambuf.h: Changes. . .
+ * bits/streambuf.tcc: Merge xsputn from filebuf into xsputn in
+ basic_streambuf, to be used for both filebufs and streambufs.
+ * bits/std_fstream.h (_M_init_filebuf): New function.
+ Take out specialized xsputn, put into basic_streambuf.
+ * bits/fstream.tcc: Define, call from both ctors.
+ * bits/std_sstream.h (_M_init_stringbuf): New function.
+ * bits/sstream.tcc: Tweak.
+
+ * docs/27_io/iostreams_hierarchy.pdf: New file.
+
+ * docs/17_intro/CHECKLIST (basic_string<char>): Validation and
+ acceptance. Wooo-hoo!
+
+ * bits/char_traits.h: Change int_type for char_traits general
+ template, so that 21_strings/capacity.cc will compile.
+ * testsuite/21_strings/capacity.cc: Add operators.
+
+ * bits/string.tcc (string::compare): Clean up, re-implement.
+ * testsuite/21_strings/compare.cc: Tweak.
+
+ * bits/string.tcc (string:_M_mutate): Keep leaked value in
+ _M_state, which means that whenever begin() or end() has been
+ called, the string is unshareable, period. By doing this, insert
+ and erase member functions that return iterators can remain
+ footloose and fancy free.
+ * testsuite/21_strings/invariants.cc: Update.
+
+ * bits/basic_string.h (string::append): Fix self-referential
+ problems, ie when "this" is also an argument to a member function.
+ * bits/string.tcc: Tweak, same.
+ * testsuite/21_strings/append.cc: New file.
+
+1999-07-07 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/char_traits.h: Tweaks.
+ * bits/basic_string.h: Tweak.
+ * bits/fstream.tcc: Remove warning for _M_buf_size assignment.
+
+1999-07-06 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/std_streambuf.h: Absorb/acquire data members previously
+ working in basic_filebuf.
+ * bits/streambuf.tcc: Tweaks.
+ * bits/fstream.tcc: Adjust.
+ * bits/std_fstream.h: Move and rename the following functions:
+ _M_set_ideterminate, _M_is_indeterminate, _M_set_determinate are
+ now declared and defined in the base class, basic_streambuf. Oh
+ fuck it, move data members _M_buf, and _M_buf_size into
+ basic_streambuf as well.
+
+ * bits/ostream.tcc: Tweak.
+ * bits/locale_facets.tcc: Fix typo in comments.
+
+ * testsuite/21_strings/inserters_extractors.cc (test01): Change
+ state from good to not good, as eof() is set.
+
+1999-07-05 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/char_traits.h (char_traits::compare). Fix.
+
+ * config.guess, config.sub: Update.
+
+1999-07-02 Ryszard Kabatek <kabatek@chemie.uni-halle.de>
+
+ * bits/string.tcc: Check the __res_arg for a length error.
+
+1999-07-01 Benjamin Kosnik <bkoz@nabi.net>
+
+ * bits/std_streambuf.h: Tweaks. Need to move _M_is_indeterminate
+ and related functions into basic_streambuf, from basic_filebuf to
+ take care of ostringstreams and empty strings. So that's groovy,
+ or will be groovy.
+ * bits/std_istream.h: Tweaks.
+ * bits/istream.tcc: Implement ws, getline, operator>> for string.
+ * bits/std_ostream.h: And here.
+ * bits/ostream.tcc: Same.
+ * src/misc-inst.cc: Add instantiations for ws.
+
+ * src/string-inst.cc: Add instantiations for inserters and
+ extractors (operators << and >>, getline).
+
+ * testsuite/21_strings/inserters_extractors.cc: Amazingly enough,
+ a testcase for getline and operators << and >>. Ostream tests are
+ failing right now, but istream tests should work. . .
+
+ * bits/string.tcc: Change _S_max_size, as GNU malloc won't budge.
+ * bits/std_sstream.h: Revert.
+
+ * testsuite/17_intro: header_[iosfwd, ios, iostream, iomanip,
+ istream, ostream, streambuf, fstream, sstream].cc: New files.
+
+1999-06-30 Ryszard Kabatek <kabatek@chemie.uni-halle.de>
+
+ * bits/std_sstream.h (stringbuf::sync): Don't use string::begin()
+ and string::end().
+
+ * bits/basic_string.h (basic_string<>::_S_copy_chars): Add
+ specializations for _CharT*, iterator and const_iterator.
+ * src/string-inst.cc: Remove explicit instantiation, as
+ now explicitly specialized.
+
+ * bits/basic_string.h: Add a size_type parameter to _M_clone with
+ a default value set to 0.
+ * bits/string.tcc: In _M_clone by the call of _S_create add the
+ value of the new parameter to _M_length. In reserve check
+ _M_state and use _M_clone instead of _M_mutate.
+
+1999-06-30 Benjamin Kosnik <bkoz@happy.cygnus.com>
+
+ * bits/basic_string.h: Fix _S_max_size.
+ * bits/string.tcc: Add def here.
+ * testsuite/21_strings/insert.cc: Fix.
+
+ * bits/sbuf_iter.h: Remove detritus.
+ * testsuite/24_iterators/istreambuf_iterator.cc: Add tests.
+
+ * src/locale-inst.cc: Elaborate iterator/locale instantiations
+ to resolve alpha-osf4 build problems.
+
+1999-06-29 Benjamin Kosnik <bkoz@happy.cygnus.com>
+
+ * bits/string.tcc: Fix signed/unsigned issues in compares.
+ * stl/bits/stl_deque.h: And here.
+ * stl/bits/stl_string_fwd.h: Remove __get_c_string.
+
+1999-06-29 Ryszard Kabatek <kabatek@chemie.uni-halle.de>
+
+ * bits/string.tcc: New implementation and interface of _M_mutate.
+ Adapt the change in all functions that call _M_mutate.
+ * bits/basic_string.h: And here.
+
+1999-06-29 Benjamin Kosnik <bkoz@happy.cygnus.com>
+
+ * testsuite/21_strings/capacity.cc (test01): Fix.
+
+1999-06-29 Phil Edwards <pedwards@ball.com>
+
+ * mknumeric_limits: Exit script if gen-num-limits isn't built.
+
+1999-06-29 Andreas Gruenbacher <agruenba@pent224.infosys.tuwien.ac.at>
+
+ * stl/bits/stl_vector.h: Fix.
+ * testsuite/23_containers/vector_cons.cc: Add.
+
+1999-06-29 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * mknumeric_limits (LDFLAGS): fix.
+
+1999-06-29 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * mknumeric_limits (LDFLAGS): set it according to the system.
+
+ * math/mathconf.h (NAN): Check whether host is running under
+ Cygwin and make the appropriate definition.
+ * math/complex-stub.h (nan): protect declaration.
+
+1999-06-28 Benjamin Kosnik <bkoz@haight.constant.com>
+
+ * bits/sbuf_iter.h: Rename internal data structure to prevent
+ confusion between basic_ios and istreambuf_iterators internal
+ basic_streambuf data member.
+ * testsuite/24_iterators/istreambuf_iterator.cc: New file.
+
+ * bits/basic_string.h: Remove conditionals, add input_iterator
+ version of S_construct again.
+ * bits/string.tcc: Same.
+ * src/string-inst.cc: And add explicit instantiation here.
+
+ * src/gen-c++config.cc (_GNU_SOURCE): Take out both _GNU_SOURCE
+ and __USE_GNU macro defines, as single __USE_GNU use leading to
+ confusion on glibc2.1 systems (ie, RedHat 6.0).
+
+ * src/Makefile.am (headers): Add std_utility to installed headers.
+
+1999-06-25 John Potter <jpotter@eagle.lhup.edu>
+
+ * stl/bits/stl_tree.h (insert_unique): Revert, just fix insert_equal.
+
+1999-06-25 Gilles Zunino <Gilles.Zunino@hei.fr>
+
+ * mknumeric_limits (LDFLAGS): Swap -lc and -lgcc.
+
+1999-06-24 Benjamin Kosnik <bkoz@tintin.cygnus.com>
+
+ * src/gen-c++config.cc (_GLIBCPP_*): Change all
+ macros to include _GLIBCPP as a distinct namespace.
+ * bits/*: And here.
+ * src/*: And here.
+
+ * stl/bits/std_stdexcept.h: Forward-declare __Named_exception ctor.
+ * bits/basic_string.h: Remove __get_c_string.
+ * src/stdexcept.cc: Define ctor here.
+ * bits/ios_base.h: And fix ios_base::failure as well.
+ * src/ios.cc: Define here.
+
+ * bits/std_streambuf.h: Add a private copy ctor and assignment
+ operator wrapped in _G_RESOLVE_LIB_DEFECTS.
+ * bits/ios_base.h: And here too.
+
+ * bits/basic_string.h: Tweak.
+ * testsuite/21_strings/nonmember.cc: Add operator+ tests.
+
+ * src/valarray.cc: Rename to. . .
+ * src/valarray-inst.cc: This.
+ * src/Makefile.am (sources): Change here.
+ * src/Makefile.in: Regenerated.
+
+1999-06-24 Vadim Egorov <egorovv@1c.ru>
+
+ * bits/string.tcc(basic_string<>::_Rep::_S_create): Fixed
+ allocated size
+
+1999-06-24 Benjamin Kosnik <bkoz@tintin.cygnus.com>
+ Tom Tromey <tromey@cygnus.com>
+
+ * configure.in (use_glibc2): Eek, correct for non-glibc systems.
+ Use AM_CONDITIONAL to get us out of this jam. .
+ * libio/Makefile.am: Same.
+ * */Makefile: Regenerated.
+
+1999-06-24 Benjamin Kosnik <bkoz@tintin.cygnus.com>
+ John Potter <jpotter@eagle.lhup.edu>
+
+ * stl/bits/stl_tree.h (insert_equal): Fix.
+ * testsuite/23_containers/multiset.cc: New file.
+
+1999-06-23 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * configure.in (test for glibc2): Correct AC_TRY_COMPILE so that
+ this works correctly on glibc-2 systems. This should allow
+ simplified linking on these systems, and successful linking on Red
+ Hat 6.0 systems.
+ * configure, Makefile: Regenerate.
+
+ * bits/std_cwctype.h: Add missing 'w' to _S_iswpunct_helper name.
+
+ * testsuite/ext: New directory.
+ * testsuite/ext/headers.cc: New file.
+
+1999-06-23 Vadim Egorov <egorovv@1c.ru>
+
+ * stl/ext/hash_set: include missing headers
+ * stl/ext/hash_map: Same
+ * stl/ext/slist: Same
+
+1999-06-17 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * bits/std_cmath.h: comment out modf. Kills build on hpux10.20
+
+1999-06-15 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * src/Makefile.am (sources): Regenerate.
+ * mkcheck: Add TESTS_FILE as a way of controlling what testcases
+ are run.
+
+1999-06-14 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * src/string-inst.cc: Change _S_construct signature, to
+ track requested allocation size versus valid input iterator range.
+ * bits/basic_string.h: Here too.
+ * bits/string.tcc: And here.
+
+1999-06-12 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * mkcheck (LOG_FILE): Correctly append errors.
+
+ * stl/bits/stl_iterator.h: Revert previous, delirious, change.
+
+ * bits/basic_string.h: Change _Rep::_M_data to _Rep::_M_refdata,
+ to clarify differences between basic_string::_M_data() calls and
+ _Rep::_M_data() calls.
+ * bits/std_string.h: Fix.
+ Put in check for out_of_range in substr.
+ * bits/string.tcc: Fix for _S_find.
+
+ * testsuite/21_strings/compare.cc: Add tests.
+ * testsuite/21_strings/find.cc: New file.
+ * testsuite/21_strings/substr: New file.
+ * testsuite/21_strings/replace.cc: New file.
+
+1999-06-11 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * bits/valarray_array.h: __restrict__ify pointers.
+
+ * bits/std_valarray.h: Tweak.
+ (valarray<T>::cshift, valarray<T>::shift): use __builtin_alloca.
+
+ * bits/gslice_array.h: Tweak. Reflect changes in bits/gslice.h
+
+ * bits/gslice.h: Tweak.
+ (class gslice::_Indexer): new class.
+ (gslice::gslice(const gslice&)): implement copy-ctor to support
+ ref-counted index.
+ (gslice::operator=(const gslice&)): support ref-counted index.
+ (gslice::_M_convert_to_index): delete.
+
+ * src/valarray.cc: New file.
+ (__gslice_to_index): turn a gslice into a valarray<size_t>
+ (ctor gslice::_Indexer::_Indexer): implement.
+
+ * src/Makefile.am (sources): add valarray.cc
+ * src/Makefile.in: regenerate.
+
+1999-06-08 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * stl/bits/stl_iterator.h (__normal_iterator::const_iterator
+ ctor): Put in a const_cast.
+
+ * testsuite/21_strings/invariants.cc: New file.
+
+ * testsuite/21_strings/insert.cc: Add exception handling bits.
+ * testsuite/21_strings/ctor_copy_dtor.cc: Same.
+
+ * src/wstring-inst.cc: Add c++config.h include.
+
+ * bits/basic_string.h: Fix const operator[] for size == pos.
+ Add _M_leak for rbegin, non-const.
+ Add _M_leak for rend, non-const.
+ Make member function at standards conformant.
+ Add _S_terminal to _Rep for operator[] const, add this into
+ c_str() as well.
+ * bits/string.tcc: Add static member definition here,
+ temporarily.
+
+ * testsuite/21_strings/element_access.cc: Add tests.
+
+1999-06-08 Vadim Egorov <egorovv@1c.ru>
+
+ * bits/fstream.tcc (_M_really_overflow): Fixed size of
+ conversion buffer.
+
+1999-06-08 Phil Edwards <pedwards@ball.com>
+
+ * bits/fstream.tcc (basic_filebuf::xsputn): Fix off-by-one count
+ caused when __testinit is true.
+ * bits/ostream.tcc (basic_ostream::op<<(streambuf*)): Write buffer
+ using rdbuf()->sputn rather than _M_fnumput->put.
+
+1999-06-08 Benjamin Kosnik <bkoz@tintin.cygnus.com>
+
+ * testsuite/23_containers/bitset_ctor.cc: New file.
+ * stl/bits/std_bitset.h (__BITSET_WORDS): Fix integration bug.
+
+1999-06-08 Phil Edwards <pedwards@ball.com>
+
+ * bits/fstream.tcc (basic_filebuf::underflow): Fix, rename local vars.
+
+1999-06-07 Benjamin Kosnik <bkoz@tintin.cygnus.com>
+
+ * testsuite/21_strings/element_access.cc: Finish off these tests.
+ * testsuite/21_strings/insert.cc (test01): Uncomment.
+ * testsuite/21_strings/ctor_copy_dtor.cc (test01): Finish off ctors.
+ * bits/basic_string.h: Tweak, okay, fix for real this time.
+ * bits/string.tcc: Same.
+ * bits/char_traits.h: Tweak.
+
+1999-06-07 Benjamin Kosnik <bkoz@tintin.cygnus.com>
+
+ * bits/std_cmath.h: Example of how to use the generated macro.
+ * acconfig.h: Add macro for sinf here.
+ * configure.in (LIBS): Add test for builtin math function sinf.
+ * configure: Regenerated.
+
+ * bits/basic_string.h: Fix _S_max_size.
+
+1999-06-06 Benjamin Kosnik <bkoz@tintin.cygnus.com>
+
+ * bits/basic_string.h: Fixes for out-of-memory segv for large strings.
+ Remove _S_construct signature for forward_iterator_tag and
+ input_iterator_tag.
+ Clean _M_fold.
+ * src/string-inst.cc: Same, tweaks.
+ * bits/string.tcc: Same, tweaks.
+
+ * testsuite/21_strings/ctor_copy_dtor.cc: Add/clarify tests.
+ * mkcheck (LOG_FILE): Fix filebuf-[2,3].tst checks.
+ * mknumeric_limits (LD_FLAGS): Add -nodefaultlibs -lc -lgcc as per
+ Gaby.
+
+ * src/locale.cc: Final separation for char/wchar_t bits.
+
+1999-06-05 Phil Edwards <pedwards@ball.com>
+
+ * docs/index.html: Added link to book upon request'n'agreement.
+ * docs/23_containers/wrappers_h.txt: Added.
+ * docs/{23_containers,27_io}/howto.html: Added sections.
+
+ * bits/std_fstream.h: Tweak.
+
+1999-06-05 Benjamin Kosnik <bkoz@tintin.cygnus.com>
+
+ * src/ios.cc: Same here.
+ * bits/std_iosfwd.h: More wchar_t defines.
+
+ * bits/basic_string.h: Tweaks.
+ * bits/string.tcc: Tweak. Fix _S_construct to check for max_size
+ when doing error checking, as per LWG defect #83.
+
+ * src/gen-c++config.cc: Fix comment.
+
+ * testsuite/21_strings/ctor_copy_dtor.cc: New file, checks ctors,
+ assignments, dtors.
+ * testsuite/21_strings/element_access.cc: New file, checks for
+ operator[], at(...).
+ * testsuite/21_strings/insert.cc: New file, tests string::insert.
+ * testsuite/21_strings/char_traits.cc: New file, tests
+ for char_traits<char>.
+
+ * bits/utility.h: Remove, again.
+ * src/Makefile.am (std_headers): Remove utility.h.
+ * src/Makefile.in (std_headers): Regenerate.
+
+ Alfred Minarik <a8601248@unet.univie.ac.at>
+ * bits/basic_string.h: Move __out_of_range and __length_error into
+ namespace std.
+
+1999-06-05 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * testsuite/26_numerics/modf_float.cc: New file.
+
+ * bits/std_cmath.h (modf(float, float*)): Fix signature. Correct
+ typo: use ::modff, not ::modf.
+
+1999-06-03 Vadim Egorov <egorovv@1c.ru>
+
+ * bits/string.tcc (basic_string::_M_mutate): Fixed memory
+ allocation error
+ * testsuite/21_strings/capacity.cc (test01): Test.
+
+1999-06-03 Phil Edwards <pedwards@ball.com>
+
+ * bits/fstream.tcc: Re-order inits to stop warnings. Comment/move
+ unused variables to within #if 0 blocks to do the same.
+ * bits/std_fstream.h: Fix typos (one prevents compilation).
+
+1999-06-03 Benjamin Kosnik <bkoz@pacifica.cygnus.com>
+
+ * src/wstring-inst.cc: Fix.
+
+1999-06-02 Benjamin Kosnik <bkoz@madcow.cygnus.com>
+
+ * bits/char_traits.h: Add _G_USE_WCHAR_T macro guards.
+ * stl/bits/stl_string_fwd.h: Same.
+ * bits/locale_facets.h: Same.
+ * bits/locale_facets.tcc: Same.
+ * src/wstring-inst.cc: And here.
+
+ * src/gen-c++config.cc: Comment _G_USE_WCHAR_T. Leading to
+ problems on HPUX 10.20.
+ * your-build-directory-here/bits/c++config.h: Just kidding, do it
+ here as a temporary hack till the compiler/host problems get
+ worked out.
+
+ * bits/locale_facets.tcc (num_get::do_get): Change from ifdef
+ HAVE_STRTOLD to HAVE_STRTOLD && !(__hpux). Apparently, problems
+ converting "long double" to struct long_double. Probably should be
+ done with one macro (HAVE_STRTOLD) at configure time.
+
+ * bits/std_cmath.h: Comment out pow(double, int) definition as
+ gives re-declaration under hpux10.20. Revert previous change, as
+ kills linux/x86, solaris 2.7, hpux builds. These should be done
+ using autoconf, see std_cctype.h and the solutions started in
+ configure.in (see config.h for the generated file.)
+
+ * mknumeric_limits (LDFLAGS): Remove '-nodefaultlibs -lc', as
+ -nodefaultlibs prevents linking under HPUX 10.20 as __main is not
+ defined.
+
+ * docs/index.html: Add some useful links.
+ * docs/17_intro/contribute.html: Fix broken links.
+
+1999-06-02 Benjamin Kosnik <bkoz@rhino.cygnus.com>
+
+ * mkcheck (LOG_FILE): Add !/bin/bash instead of cygnus-style
+ paths. The rest of the world should be able to run this script
+ now.
+
+ * src/Makefile.am ($(generated_headers)): Remove comment.
+ * Makefile*: Regenerate.
+
+ * bits/std_locale.h: Remove detritus.
+ * bits/localefwd.h: Add <cctype> include to undefine the isspace
+ macro.
+
+1999-06-01 Benjamin Kosnik <bkoz@tintin.cygnus.com>
+
+ * src/gen-c++config.cc: New file. Making c++config.h at configure
+ time by catting this file (nee bits/config.h) with the build
+ directories config.h. This is not a complete or perfect solution
+ but is better than what was in place previously.
+ * bits/c++config.h: Rename/move to above.
+ * src/Makefile.am (headers): Remove c++config.h.
+ (myinstallheaders). Add.
+ * Makefile*: Regenerated.
+
+ * bits/std_cwchar.h: Add include of c++config.h for HAVE_*
+ definitions, so that wmemcmp, wcslen, wmemchr, etc are properly
+ declared only if not present in the host's wchar.h.
+
+ * bits/locale_facets.tcc (std): Change _G_USE_STRTO* to HAVE_STRTO*.
+
+ * bits/std_cmath.h: Define out, for the moment. Linux has no
+ __buitin_fsqrtl? Probably need some kind of configure trickery
+ here as well.
+
+ * src/Makefile.*: Regenerate.
+ * bits/c++config.h: Add config.h include.
+
+ * bits/std_cwchar.h: Remove remaining #error guard.
+
+ * acconfig.h: Add bits for HAVE_LC_MESSAGES.
+
+ * configure.in (LIBS): Replace previous effort for mbstate_t and
+ strtold/strtof with this implementation.
+
+1999 06-01 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * bits/std_cmath.h: Tweak. Add more functions. Use __builtin_xxx
+ whenever possible.
+
+1999-05-28 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/locale_facets.tcc (std): Eek: this left in. Autoconf bits
+ for determining mbstate_t differences across various hosts not
+ finished.
+
+1999-05-26 Benjamin Kosnik <bkoz@nabi.net>
+
+ * bits/locale_facets.tcc: Change to ifdef.
+
+ * bits/std_sstream.h (stringbuf::setbuf): Remove dynamic_cast.
+ * bits/std_fstream.h (filebuf::setbuf): Same.
+
+ * bits/std_istream.h: Add ws declaration.
+ * bits/istream.tcc: Stub out definition.
+
+ * docs/index.html: Fix broken link for design.txt.
+
+ * configure.in: Test for mbstate_t. If wchar.h doesn't have it,
+ then set _G_NEED_MBSTATE_T.
+ * configure: Regenerate.
+ * bits/c++config.h: Move mbstate_t define.
+ * bits/std_cwchar.h: To here.
+
+1999-05-25 Ryszard Kabatek <kabatek@chemie.uni-halle.de>
+
+ * bits/std_sstream.h:
+ basic_stringbuf<>::basic_stringbuf: fix.
+ basic_stringbuf<>::setbuf:
+ remove the temporary __string_type object,
+ remove the unnecessary dynymic_cast in the return value,
+ change the type of the returned value from __streambuf_type*
+ to basic_stringbuf<_CharT, _Traits, _Alloc>*.
+
+1999-05-25 Phil Edwards <pedwards@ball.com>
+
+ * bits/std_streambuf.h (streambuf::setbuf): Always return streambuf*.
+
+1999-04-25 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * bits/std_cmath.h: Tweak. Add float versions of the math functions
+ in <math.h>. <cmath> still incomplete and incorrekt.
+
+1999-05-24 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * mknumeric_limits (LDFLAGS): set appropriate link flags.
+
+1999-05-23 Phil Edwards <pedwards@ball.com>
+
+ * docs/17_intro/howto.html: Added links to text docs,
+ e.g., BUGS.
+ * docs/21_strings/howto.html: Updated sections and links.
+ * docs/21_strings/{gotw29a.txt,stringtok_h.txt}: Added.
+ * docs/faq/index.html: Updated what-works for sixth
+ snapshot. Also a number of "internal" links have been
+ fixed, now that the web pages are the docs directory...
+ * docs/faq/index.txt: Regenerated.
+
+1999-05-21 Benjamin Kosnik <bkoz@tintin.cygnus.com>
+
+ * bits/basic_string.h: Add Nathan's documentation on the string class.
+
+ * testsuite/27_io/ios_members_static.cc: New file, for testing
+ ios_base::sync_with_stdio.
+
+1999-05-21 Benjamin Kosnik <bkoz@tintin.cygnus.com>
+
+ * bits/std_locale.h: Simplify includes.
+ * bits/loccore.h: Delete.
+ * bits/localefwd.h: Renamed, trimmed.
+ * bits/locfacets.h: Delete.
+ * bits/locale_facets.h: Rename, expanded.
+ * bits/loccore.tcc: Deleted.
+ * bits/locfacets.tcc: Deleted.
+ * bits/locale_facets.tcc: Resultant merge.
+ * bits/std_fstream.h: Modify include.
+ * bits/ostream.tcc: Same.
+ * bits/istream.tcc: Same.
+
+ * src/locale-inst.cc: And here.
+ * src/locale.cc: Ditto.
+ * src/Makefile.am: Updated.
+ * src/Makefile.in: Rengenerated.
+
+ * bits/std_istream.h: Move istream::sentry ctor definition.
+ * bits/istream.tcc: Move istream::sentry ctor here.
+ Add more detailed locale include here for ctype member functions.
+ * bits/ostream.tcc (std): And here.
+
+ * bits/sbuf_iter.h: Include std_streambuf.h
+
+ * bits/locfacets.h: Start separating this into a localeimp.h file.
+ * bits/loccore.h: Start separating this into a localefwd.h file.
+ Add std_climits for CHAR_BIT.
+
+ * bits/ios_base.h (ios_base::sync_with_stdio): Stub in.
+
+ * bits/char_traits.h: Tweak.
+
+ * bits/ios_base.h: Remove INT_MAX, use 1<<16.
+
+ * bits/std_ostream.h: Remove c++config.h include.
+ * bits/std_istream.h: Same.
+ * bits/std_streambuf.h: Same.
+ * bits/std_fstream.h: Same.
+ * bits/std_sstream.h: And here.
+
+ * bits/std_iosfwd.h: Add _G_RESOLVE_LIB_DEFECTS here for streampos.
+ * bits/char_traits.h: Add include of std_cwchar.h for mbstate_t.
+ * bits/fpos.h: Tweak, format.
+
+ * std/ciso646: New file.
+ * bits/std_ciso646.h: New file.
+ * src/Makefile.am (std_headers): Add ciso646.
+ (headers): Add bits/std_ciso646.h.
+ * src/Makefile.in: Regenerate.
+ * testsuite/17_intro/header_ciso646.cc: New file, disable
+ equivalance tests.
+
+ * bits/fpos.h: Remove libio.h include.
+ * bits/basic_file.h: And here.
+ * bits/std_ios.h: Put here.
+
+ * src/ios.cc: Simplify includes, tweak.
+ * bits/std_ios.h: Simplify include order.
+ * bits/ios_base.h: Modify ios_base::failure.
+
+ * stl/bits/std_numeric.h: Change include from stl_iterator to
+ std_iterator.
+
+1999-05-19 Benjamin Kosnik <bkoz@tintin.cygnus.com>
+
+ * std/iostream: Remove static member __ioint.
+ * bits/std_iostream.h: Put here.
+
+ * stl/bits/std_numeric.h: Remove unneccessary std_iostream.h include.
+ * stl/bits/stl_algobase.h: Same.
+ * testsuite/27_io/iostream_objects.cc: Regression tests.
+ * testsuite/27_io/hello.cc: Remove, subset of above.
+
+1999-05-19 Phil Edwards <pedwards@ball.com>
+
+ * docs/index.html: Tweak, update.
+
+1999-05-18 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * docs/17_intro/RELEASE-NOTES: remove outdated
+ documentation about numeric_limits. Correct CXXINCLUDE setting
+ documentation.
+
+1999-05-18 Phil Edwards <pedwards@ball.com>
+
+ * docs/{17_intro,18_support,19_diagnostics,20_util,21_strings,
+ 22_locale,23_containers,24_iterators,25_algorithms,26_numerics,
+ 27_io}/howto.html: Created, with some initial entries.
+ * docs/faq/index.html: Fixed some links.
+ * docs/faq/index.txt: Regenerated.
+
+1999-05-18 Benjamin Kosnik <bkoz@tintin.cygnus.com>
+
+ * bits/c++config.h (__GLIBCPP__): Set version to 19990518.
+
+ * docs/17_intro/RELEASE-NOTES: Update.
+ * docs/index.html: Correct link to mailing list help page, update News.
+ * docs/faq/index.html: Change fifth to sixth for snapshot.
+
+ * src/Makefile.am (myinstallheaders): Bring over Gaby's changes to
+ install $(top_builddir)/bits/std_limits.h into
+ $(myincludepfx)/bits. This was mistakenly omitted from yesterday's
+ Makefile.am changes.
+ * *Makefile*: Regenerate using automake.
+
+ * mkcheck (LOG_FILE): Fix filebuf directory oddness.
+ * testsuite/27_io/filebuf.cc: Same.
+
+1999-05-18 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * docs/17_intro/CHECKLIST: update.
+ * docs/17_intro/TODO: update.
+
+1999-05-17 Phil Edwards <pedwards@ball.com>
+
+ * docs/{17_intro,18_support,19_diagnostics,20_util,21_strings,
+ 22_locale,23_containers,24_iterators,25_algorithms,26_numerics,
+ 27_io}/howto.html: Created, with some initial entries.
+ * docs/faq/index.html: Fixed some links.
+ * docs/faq/index.txt: Regenerated.
+
+1999-05-17 Benjamin Kosnik <bkoz@unhappy.cygnus.com>
+
+ * src/Makefile.am (myinstallheaders): Missed removing missing.h.
+ * Makefile.in*: Regenerate.
+
+1999-05-17 Benjamin Kosnik <bkoz@happy.cygnus.com>
+
+ * bits/std_streambuf.h: Same.
+
+ * bits/loccore.h (_Bad_use_facet): Remove bits warned about.
+ * bits/locfacets.h (std): Same.
+ * bits/sstream.tcc: Same.
+ * testsuite/27_io/stringstream.cc: Tweak.
+
+ * testsuite/27_io/filebuf.cc: Adjust.
+ * testsuite/21_strings/capacity.cc (test01): Add more
+ string::reserve tests.
+
+ * bits/c++config.h: Remove broken CCTYPE.
+ * bits/std_cctype.h: Tweak, remove de-macroization, enable
+ sequestered topper implementation.
+ * bits/std_cwctype.h: Same.
+
+ * bits/missing.h: Remove.
+ * bits/std_locale.h: Remove missing.h include.
+
+ * stl/bits/std_bitset.h (bitset::bitset(string): Tweak to compile.
+
+ * src/Makefile.am (headers): Add bits/std_cwctype.h.
+ INCLUDES: Add top_builddir.
+ * src/Makefile.in: Regenerate.
+
+ * Makefile.am: Add check and check-install as new targets.
+ * testsuite/make_check_libfree++: Move to. . .
+ * mkcheck: Here.
+ * configure.in: Tweak versions.
+ * mknumeric_limits: Set paths correctly.
+
+1999-05-17 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * src/Makefile.in (myinstallheaders): add rule to install
+ std_limits.h.
+
+ * bits/slice.h (class slice): don't const-qualify data members
+ since the copy and assignment operator is implicitly used. The
+ valarray specification is definitively a bad one.
+
+ * Makefile.in (generate-limits-sources): fix typo.
+
+ * docs/text/TODO: update.
+ * docs/text/CHECKLIST: update.
+
+ * bits/gslice.h (gslice): fix bugglet.
+ (gslice::gslice): set _M_index_size to 0 whenever given lengths
+ (lj) of size zero.
+
+ * src/Makefile.am (libstdc___la_SOURCES): add gen-num-limits.
+ * src/Makefile.in (libstdc___la_SOURCES): keep in sync.
+ [Note: **/Makefile.in should be generated from the corresponding
+ Makefile.am. The current situation is a litte chaotic. ]
+
+1999-05-16 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * mknumeric_limits: tweak.
+
+ * Makefile.in (all): add target generate-limits-sources.
+ (generate-limits-sources): make a directory bits/ in top_builddir
+ where the generated std_limits.h is put; generate limitsMEMBERs.cc
+ directly under $(top_builddir)/src. Remains to put the appropriate
+ rule for installing std_limits.h.
+
+ * src/Makefile.in (headers): remove bits/std_limits.h to this list.
+ (INCLUDES): add -I$(top_builddir) for bits/std_limits.h which is
+ now generated at build-time in the build directory
+ (libstdc___la_SOURCES): remove limitsMEMBERS.cc form this list
+ * src/Makefile.am: reflect changes in src/Makefile.in
+
+1999-05-12 Phil Edwards <pedwards@ball.com>
+
+ * docs/faq/index.html: Add more entries (5.4,5.5), finish
+ all but one empty entry. Add links for HOWTOs, but no files yet.
+ (Corrected HOWTO links are for bkoz's new scheme.)
+ * docs/faq/index.txt: Regenerated.
+
+1999-05-12 Benjamin Kosnik <bkoz@happy.cygnus.com>
+
+ * testsuite/17_intro/headers.cc: New file.
+ * stl/bits/std_queue.h: Change stl_bvector.h include path.
+ * bits/std_cwctype.h: New file.
+
+ * testsuite/27_io/filebuf.cc: Need to tweak directory structure.
+
+1999-05-11 Benjamin Kosnik <bkoz@loony.cygnus.com>
+
+ * stl/bits/stl_config.h (__USE_MALLOC): Change underlying allocator.
+ Check __USE_MALLOC before defining specializations containing
+ __default_alloc_template.
+ * src/stl-inst.cc: Here too.
+
+ * bits/basic_string.h: Change.
+
+ * testsuite/make_check_libfree++: More tweaks.
+ * testsuite/21/capacity.cc: New file.
+
+ * src/string.cc: Rename to be consistent with other inst files.
+ Rename to string-inst.cc.
+ * src/string*.cc: Change include.
+ * src/wstring.cc: Rename to wstring-inst.cc.
+ * src/wstring*.cc: Ditto.
+ * src/Makefile.in: Also here.
+ * src/Makefile.am: Ditto.
+
+ * src/traits.cc: Remove.
+ * src/wtraits.cc: Same.
+
+ Try a new way of organizing documentation, one with synchronicity
+ between testsuites and docs subdirectories, and see who yelps.
+ * docs/html: Remove, use chapter and subject specific directories
+ instead of forcing things immediately into format of
+ documentation.
+ * docs/text: Same.
+ * docs/image: Same.
+ * docs/faq/text, docs/faq/html: Remove, put in the docs/faq
+ directory and sort by filename and extension.
+ * docs/17_intro, 18_support, 19_diagnostics, 20_util, 21_strings,
+ 22_locale, 23_containers, 24_iterators, 25_algorithms,
+ 26_numerics, 27_io: Add.
+ * docs/17_intro/*: Populate with all the text files. . .
+ * docs/index.html: Construct.
+
+ * testsuite/*: Update with same names as the docs subdir.
+ * testsuite/results: Where to stash conformance results for the
+ different snapshots, so that progress/size/speed issues can be
+ tracked over time.
+
+1999-05-10 Benjamin Kosnik <bkoz@loony.cygnus.com>
+
+ * src/string.cc: Add _S_copy_chars instantiation, as well as
+ string::binary operators !=, ==, etc.
+
+ * src/Makefile.am (CXXFLAGS): Remove -fvtable-thunks.
+ * src/Makefile.in (CXXFLAGS): Same here.
+ * testsuite/make_check_libfree++ (CXX_FLAG): And here.
+
+1999-05-07 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * src/string.cc: Add missing member functions to instantiation list.
+
+1999-05-07 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * src/misc-inst.cc: Remove unused string instantiations.
+
+ * bits/string.tcc: Tweak, fix.
+ * bits/basic_string.h: Format. Fix reported error with c_str().
+
+ * testsuite/make_check_libfree++: Tweak for shared builds.
+ * testsuite/21/operations.cc: New file for testing c_str() etc.
+
+1999-05-06 Benjamin Kosnik <bkoz@cygnus.com>
+ Ryszard Kabatek <kabatek@chemie.uni-halle.de>
+
+ * stl/bits/stl_vector.h: Fix the code of vector<> for usage with
+ an iterator class. Delineate pointer versus iterator differences
+ in implementation.
+ * 23/vector_capacity.cc: New file, tests for above.
+
+1999-05-06 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * mknumeric_limits: Fix typo. 'unsigned lont' should read
+ 'unsigned long'.
+ * src/Makefile.am (libstdc___la_SOURCES): add limitsMEMBERS.cc,
+ generated by mknumeric_limits to the list. Now std_limits.h is
+ basically working.
+ * src/Makefile.in (generate-numeric-limits): new target to handle
+ automatic generation of bits/std_limits.h and src/limitsMEMBERS.cc.
+ (all): add target generate-numeric-limits.
+ (libstdc___la_OBJECTS): add limitsMEMBERS.lo
+ (libstdc___la_SOURCES): add limitsMEMBERS.cc
+
+1999-05-05 Benjamin Kosnik <bkoz@cygnus.com>
+
+ Irix build issues.
+ * bits/c++config.h (_G_USE_CTYPE_ISBIT): Defines new macro for
+ mask values in ctype_base. Move hacks for _ISBit to locfacets.h.
+ * bits/locfacts.h: Here.
+
+1999-05-05 Benjamin Kosnik <bkoz@cygnus.com>
+ Ulrich Drepper <drepper@cygnus.com>
+
+ Solaris build issues.
+ * bits/c++config.h: Define new macros, _G_USE_STRTOF and
+ _G_USE_STRTOLD.
+
+ * bits/locfacets.tcc (num_get::do_get): Tweak long double and
+ float overloads to use the above macros. Account for the lack of
+ strtold on some systems, and revert back to using sscanf.
+
+1999-05-04 Ryszard Kabatek <kabatek@chemie.uni-halle.de>
+
+ * bits/locfacets.tcc (num_get::do_get): Check the errno variable.
+ Use strtoul/strtoull for unsigned types. Check the ranges for
+ short/unsigned short and if necessary for int/unsigned int.
+
+1999-05-04 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * src/gen-num-limits.cc (round_style): Need to use mknumericlimits
+ to generate bits/std_limits.h now, as the SGI std_limits.h is
+ being depricated. Not done, but should be done immediately: need
+ to make sure this script is run as part of the configuration
+ process, because without it "make" in a configured build directory
+ will fail. Also tweaked: added a space for float_round_style, and
+ used static_cast of zero to default-initialize, which should be ok
+ according to the standard. (see 8.5 p5 and 20.1.3).
+ * mknumeric_limits (OUT_C): Need this for x86 long
+ double extensions.
+
+ * bits/basic_file.h: Include libio.h, not libioP.h.
+ * src/basic_file.cc: And add libioP.h include here, so that
+ _IO_init, et. al are well-declared.
+
+ * testsuite/make_check_libfree++ (LIB_PATH): Test installed
+ headers, not source directory headers.
+
+ * src/Makefile.am (headers): Add stl_range_errors.h, also adjust
+ for ext/*. Also add basic_file.h.
+ * src/Makefile.in (headers): Same.
+
+ * bits/std_string.h: Reduce dependencies for faster
+ pre-processing. Move istream and ostream specific defines into
+ istream.tcc and ostream.tcc respectively.
+ * bits/string.tcc: And here.
+ * bits/basic_string.h: Move getline inline out-of-line, and to
+ istream.tcc.
+ * bits/istream.tcc: Move string::getline and operator>> here.
+ * bits/ostream.tcc: And here too.
+
+ * bits/utility.h: Remove, as clashes with a standard header. Put
+ __OUTOFRANGE and __LENGTHERROR macros into string.tcc for the time
+ being, until this can be combined with SGI's approach.
+ * bits/string.tcc: Add macros, as above.
+ * bits/loccore.h: Add _Count_ones defines.
+ * bits/std_string.h: And here too.
+ * bits/std_locale.h: And here.
+ * bits/std_ios.h: Take out include here.
+ * src/Makefile.am (headers): Remove utility.h
+ * src/Makefile.in (headers): Remove utility.h
+
+ * stl/bits/*: Update to SGI STL 3.20.
+ * stl/ext/pthread_alloc: Delete this file.
+
+1999-05-04 Phil Edwards <pedwards@ball.com>
+
+ * docs/faq/html/index.html: Add more entries
+ * docs/faq/html/index.txt: regenerated.
+
+1999-05-04 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * src/gen-num-limits.cc (DO_DEFINE_MIN_MAX): fix typo.
+
+1999-04-29 Benjamin Kosnik <bkoz@haight.cygnus.com>
+
+ * bits/locfacets.tcc (num_get::do_get): Re-implement, with input
+ from Ulrich and Nathan. Remove extraneous string class usage,
+ tweak, clean, simplify and consolidate with a eye towards removing
+ duplcate code. Use strto[l, ll, f, d, ld] instead of sscanf.
+ Not done: dealing with leading zeros, wchar_t work.
+ * bits/locfacets.h: And here too.
+
+ * doc: Remove.
+
+1999-04-29 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * docs/: add a FAQ.
+ * docs/faq/: New directory.
+ * docs/faq/html/: Likewise.
+ * docs/faq/text/: Likewise.
+ * docs/faq/html/index.html: New file.
+ * docs/faq/html/index.txt: Likewise. Generated from
+ docs/faq/html/index.html by lynx.
+
+1999-04-28 Benjamin Kosnik <bkoz@happy.cygnus.com>
+ Ryszard Kabatek and Branko Cibej
+
+ * bits/locfacets.tcc: Modify.
+
+1999-04-27 Benjamin Kosnik <bkoz@happy.cygnus.com>
+
+ * bits/sbuf_iter.h: Clean, fix istreambuf_iterator, make
+ conformant to 14882, wrap non-standard extensions with
+ _G_RESOLVE_LIB_DEFECTS, remove detritus and cruft, rennovate.
+ * bits/locfacets.tcc (num_get::do_get(bool)): Return correct iterator.
+
+ * testsuite/27/istringstream_formatted.cc: Add tests.
+
+ * bits/locfacets.h: Remove cruft from _Format_cache, continue
+ commenting, simplify.
+ * bits/locfacets.tcc: Same.
+
+ 1999-04-27 Ryszard Kabatek <kabatek@chemie.uni-halle.de>
+ * bits/locfacets.tcc (num_get::do_get):
+ Fix the sscanf format parameter
+ for long long 'll' (as in C9X) instead of 'l'.
+ Fix the order of sscanf format parameters: "%dl" --> "%ld".
+ Change the type of the local variable '__conv' from 'string'
+ to 'const char*' and adapt the change.
+
+1999-04-26 Benjamin Kosnik <bkoz@happy.cygnus.com>
+
+ * bits/locfacets.h: Document _Format_cache, and name data members
+ after the corresponding functions in numpunct. For instance:
+ _M_grsep -> _M_thousands_sep, and _M_decsep -> _M_decimal_point.
+ Break apart _M_boolnames{2] into _M_truename and _M_falsename.
+ * bits/locfacets.tcc: Same.
+
+ * bits/locfacets.h (num_get::_M_extract): Don't allow groupings to
+ stop parsing--store for later analysis.
+ * testsuite/27/istringstream_formatted.cc: Add cases.
+
+1999-04-25 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * bits/valarray_meta.h: tweak.
+ (_UnFunBase, _BinFunBase, _BinFunBase1, _BinFunBase2, _BinBase1,
+ _BinFunBase2): rename typedef-name _Tp to _Vt to keep the compiler
+ happy -- boggus warning.
+ * bits/std_valarray.h: Fix.
+ (valarray<T>::shift): Fix. Update comment.
+ (valarray<T>::cshift): Fix.
+
+1999-04-23 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * testsuite/27filebuf-2.txt: Delete.
+ * testsuite/27/filebuf.cc: Put output files directly into the
+ correct subdirectory (27).
+
+ Alexandre Petit-Bianco <apbianco@cygnus.com>
+ * testsuite/make_check_libfree++: Check generated (*.txt) file
+ against stored results file (*.tst).
+
+1999-04-22 Benjamin Kosnik <bkoz@nabi.net>
+
+ * bits/locfacets.tcc: Fix.
+
+ * bits/fstream.tcc (filebuf::seekoff): Output current out pointer.
+ (filebuf::overflow): Simplify.
+ (filebuf::xsputn): Correctly handle indeterminate state.
+
+ * testsuite/27/istringstream_formatted.cc: Tweak.
+ * testsuite/27/filebuf.cc: Tweak.
+ * testsuite/27/filebuf-3.tst: Correct: this is the canonical
+ results file, please use this in the future to guarantee filebuf
+ positioning accuracy.
+ * testsuite/27/filebuf-2.tst: Same.
+
+1999-04-21 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/fstream.tcc (filebuf::xsputn): Add.
+ * bits/std_fstream.h: Declare.
+
+ * src/basic_file.cc (__basic_file::open): Add O_CREAT to open
+ calls using ios_base::trunc.
+
+ * bits/sstream.tcc (streambuf::overflow): Fix crasher.
+
+ * testsuite/make_check_libfree++ (LOG_FILE): Ugh. Another fix.
+ * testsuite/27/27stringstream.cc: Same.
+ * testsuite/27/27stringbuf.cc: More tweaks.
+ * testsuite/27/27filebuf-2.txt: Remove.
+
+ * testsuite/27/27filebuf-1.tst: Append, to force byte size over
+ BUFSIZE so that overflows/underflow can be tested with default
+ buffer setting.
+ * testsuite/27/27filebuf-1.tst: Add.
+
+ * testsuite/*/*: Remove pre-pended chapter names, as they
+ duplicate the chapter info contained in the enclosing directory
+ anyway.
+
+1999-04-20 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/streambuf.tcc (streambuf::xsputn): Re-implement to conform
+ to sputc conditions.
+
+ * bits/ios_base.h: Define here.
+ * src/ios.cc (ios_base::_M_clear): Remove hack.
+ * bits/basic_ios.h: Fix rdstate().
+
+ * bits/sstream.tcc (streambuf::seekoff): Fix.
+ * bits/fstream.tcc (filebuf::seekoff): Tweak comments.
+
+ * testsuite/make_check_libfree++ (LOG_FILE): More c-c-c-changes.
+ * testsuite/24/24iterator.cc: Add/Fixes for DEBUG_ASSERT.
+ * testsuite/27/27stringstream.cc: Same.
+ * testsuite/27/27stringbuf.cc: Same.
+ * testsuite/27/27istringstream_formatted.cc: Same.
+ * testsuite/27/27filebuf.cc: Same.
+
+ * bits/locfacets.h: Remove specializations for messages<char> and
+ messages<wchar_t> ctors. Same for moneypunct. Not required, not used.
+ * src/locale.cc: Remove definitions for above.
+ * src/misc-inst.cc: Revert, take out iomanip.h include.
+ * bits/std_iomanip.h: Tweak, format.
+
+1999-04-19 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/loccore.h: Format, move inline.
+ * bits/locfacets.tcc: Same.
+ * bits/locfacets.h: Same.
+
+ Ulrich Drepper <drepper@cygnus.com>
+ * aclocal.m4: Re-generate.
+ * configure, configure.in: Same.
+ * m4/lc_messages.m4: New file.
+
+1999-04-18 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/std_ostream.h: Fix typedef for wchar_t instantiations.
+ * bits/sstream.tcc: Tweak.
+
+ * std/iostream: Put __ioinit inside macro guards.
+
+ * src/stlinst.cc: Delete and move to . . .
+ * src/stl-inst.cc: New file, plus wrapping in namespace std.
+ * src/Makefile.in: Change.
+ * src/Makefile.am: Same.
+ * src/misc-inst.cc: Add istringstream/ostringstream instantiations.
+
+ * testsuite/make_check_libfree++: Efficiently format for minimal
+ space. Enforce stricter execution tests by enabling
+ -DDEBUG_ASSERT.
+
+1999-04-16 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * docs/text/RELEASE-NOTES: Fix include typo.
+
+ * src/Makefile.am (headers): Add istream.tcc.
+ * src/Makefile.in (headers): Add istream.tcc.
+
+ * ltconfig, ltmain.sh, libtool: Update to libtool-1.2g.
+
+1999-04-16 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/locfacets.tcc (num_get::do_get(long)): Finish roughing in.
+ * bits/locfacets.h (num_get::_M_extract): New functin:
+ consolidate logic for do_get(...) members.
+
+ * bits/sbuf_iter.h (istreambuf_iterator::operator++()): Fix.
+ * testsuite/27/27istringstream_formatted.cc: Add.
+
+1999-04-16 Martin v. Loewis <martin@mira.isdn.cs.tu-berlin.de>
+
+ * src/basic_file.cc (__basic_file::open): Fix thinko in
+ _G_HAVE_IO_FILE_OPEN bits.
+ * bits/std_istream.h (sentry::sentry(istream, bool)): Fix isspace bug.
+ * bits/std_cmath.h: Add stdlib.h include for ldiv_t.
+ * src/complex.cc (FCT): Qualify all functions with global namespace.
+ * src/locale.cc: Don't qualify memcpy and setlocale.
+ * src/stdexcept.cc (__out_of_range): Qualify out_of_range with std::.
+ (__length_error): Likewise, for length_error.
+ * src/stlinst.cc: Qualify instantiations with std::.
+
+1999-04-15 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * C++STYLE: Add ChangeLog guidelines for member functions.
+
+ * doc/* : Delete.
+ * BADNAMES, BUGS, C++STYLE, CHECKLIST, COPYING,
+ DESIGN, HEADER_POLICY, PROBLEMS, RELEASE-NOTES, TODO: Moved into
+ docs/text and made less strident.
+
+ * bits/fstream.tcc: Change non-standard ctor to match Sun's sematics.
+ * bits/std_fstream.h: Same.
+ * src/ios.cc: Same.
+
+ * bits/locfacets.h: Touch.
+
+1999-04-15 Ulrich Drepper <drepper@cygnus.com>
+
+ * math/cexp.c (cexp): Use NAN instead of nan("").
+ Reported by joel reed <joelreed@yahoo.com>.
+
+ * libio/libioP.h: Define _IO_seek_fpos_t and _IO_seek_off_t based on
+ _G_IO_IO_FILE_VERSION. Use these types in the prototypes.
+ * libio/fileops.c: Use _IO_seek_fpos_t and _IO_seek_off_t types
+ instead of #if cascades.
+ * libio/genops.c: Likewise.
+ * libio/ioseekoff.c: Likewise.
+ * libio/ioseekpos.c: Likewise.
+ * libio/strops.c: Likewise.
+ Patch by Chip Salzenberg <chip@perlsupport.com>.
+
+1999-04-15 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * docs: New directory.
+ * docs/html: Likewise.
+ * docs/text: Likewise.
+ * docs/image: Likewise.
+
+ * bits/std_cmath.h: Add new functions.
+ (abs): overload for long and double.
+ (div): overload for long.
+
+ * bits/valarray_array.h: Fix.
+ * bits/gslice.h: Adjust friend.
+ * bits/slice_array.h: likewise.
+ * bits/valarray_meta.h: likewise.
+
+1999-04-13 Benjamin Kosnik <bkoz@tintin.cygnus.com>
+
+ * bits/locfacets.h: More changes, for num_get for insertion
+ operators for integral types. Comment fields in _Format_cache.
+ * bits/locfacets.tcc: And here too: add preliminary long version.
+ * testsuite/27/27istringstream_formatted.cc: Add cases.
+
+1999-04-13 Mark Elbrecht <snowball3@usa.net>
+
+ * configure.in: Add locale.h to AC_CHECK_HEADERS argument. Call
+ AC_LC_MESSAGES macro.
+ * aclocal.m4 (AC_LC_MESSAGES): New. Determines if a target
+ supports LC_MESSAGES.
+ * config.h.in: Add entry for HAVE_LC_MESSAGES.
+ * src/locale.cc (locale::_S_normalize_category): Use the
+ HAVE_LC_MESSAGES macro to check for LC_MESSAGES support instead of
+ _G_NO_CLOCALE_HAS_MESSAGES.
+ * aclocal.m4 (AM_PROG_LD): For DOS style paths, simplify test to
+ '?:' from '?:\\' so any path beginning with a drive name matches.
+
+1999-04-12 Mark Elbrecht <snowball3@usa.net>
+
+ * src/basic_file.cc(sys_open) [O_BINARY]: Declare __testb.
+
+1999-04-12 Benjamin Kosnik <bkoz@tintin.cygnus.com>
+
+ * bits/locfacets.h: Tweak.
+ * bits/locfacets.tcc(do_get): Clean/fix bool method.
+
+ * testsuite/21/21nonmember.cc: Same.
+ * testsuite/21/21compare.cc: Fix license.
+ * testsuite/27/27istringstream_formatted.cc: New file.
+
+1999-04-12 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * bits/valarray_meta.h: _BinFunBase1, _BinFunBase2, _BinBase1,
+ _BinBase2: new template classes; put in there to work around a
+ compiler limitation. The whole valarray architecture is now
+ working.
+
+1999-04-08 Benjamin Kosnik <bkoz@haight.constant.com>
+
+ * bits/locfacets.tcc: Fix, format.
+ * bits/locfacets.h: Fix.
+ * src/locale.cc: Same, plus format.
+
+ * bits/basic_string.h: Re-add definition here.
+ * src/string.cc: Take out.
+
+1999-04-08 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * bits/std_valarray.h: tweak.
+ * bits/valarray_array.h tweak. use _Expr.
+ * bits/slice_array.h: likewise.
+ * bits/gslice_array.h: likewise.
+ * bits/mask_array.h: likewise.
+ * bits/indirect_array.h: likewise.
+ * bits/valarray_meta.h: tweak.
+ _UnFunBase, _UnFunClos, _BinFunBase, _FunBase, _ValFunClos,
+ _RefFunClos, _UnBase, _UnClos, _BinBase, _BinClos, _SClos, _GClos,
+ _IClos: new template classes.
+ _Meta: renamed to _Expr. Made template with args.
+ _Constant: made template with two args.
+
+1999-04-05 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * bits/valarray_array.h: tweak.
+
+1999-04-06 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/basic_string.h: Whoops--fix blip.
+
+1999-04-06 Benjamin Kosnik <bkoz@cygnus.com>
+
+ Update to SGI STL 3.13
+ * bits/basic_string.h: Add __get_c_string definition.
+ * stl/bits/stl_range_errors.h: New file.
+ * stl/bits/std_bvector.h: Same.
+ * stl/bits/*: Update.
+
+1999-04-04 1999 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * bits/slice_array.h: tweak.
+ * bits/gslice_array.h: tweak.
+ * bits/mask_array.h: tweak.
+ * bits/indirect_array.h: tweak.
+ * bits/valarray_array.h: tweak.
+ (__valarray_copy): replace copy with memcpy.
+ * bits/std_valarray.h: use __valarray_copy whenever possible.
+ use __valarray_fill instead of fill.
+
+1999-04-02 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * src/gen-num-limits.cc: new file
+ * mknumeric_limits: Ditto.
+
+1999-03-30 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/locfacets.tcc: Do a stub version of num_get for short, int,
+ and long types.
+ * bits/locfacets.h: Add num_get::get methods overloaded for int
+ and short, to resolve ambiguous overloads in istream insertion
+ operators.
+
+1999-03-30 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/std_istream.h: Fix.
+ * bits/istream.tcc: Fix.
+
+1999-03-30 Philip Martin <pm@corris.dircon.co.uk>
+
+ * testsuite/24/24iterator.cc: fix ++/-- tests
+
+1999-03-29 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/std_ostream.h: Looks like this, actually: Fix up eh-isms.
+ * bits/ostream.tcc: Same.
+
+ * bits/std_istream.h: Bring over ostream changes, implement member
+ functions. Baseline.
+ * bits/istream.tcc: New file.
+
+1999-03-26 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * bits/gslice.h (class gslice): fix friends template.
+
+1999-03-23 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/std_ostream.h: Fix sentry objects, implement seekp, tellp,
+ delete cruft, etc.
+ * bits/ostream.tcc: Same.
+
+ * bits/std_istream.h: Minor tweaks.
+
+1999-03-18 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * src/locale-inst.cc: Remove duplicate instantiations.
+ * bits/locfacets.tcc: Tweak definitions of static member.
+
+1999-03-18 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/std_fstream.h: Format: prepend "__" in front of
+ non-standard typedefs.
+ * bits/fstream.tcc: Match.
+ * bits/std_streambuf.h: Format: prepend "__" in front of
+ non-standard typedefs.
+
+ * bits/sstream.tcc: Match.
+ * bits/std_istream.h: Format.
+ * src/locale-inst.cc: Add num_get instantiations.
+
+ * bits/std_sstream.h: Fix crash in stringstreams. Remove member
+ _M_sb, a basic_stringbuf object, and use the basic_ios pointer
+ _M_streambuf instead. Make initializations sane. Fix
+ allocation/deallocation of _M_streambuf.
+ * bits/std_ostream.h: Fix initialization code.
+ (ctor): Eliminate redundant this->init(), let base class initialize.
+ (default ctor): New. Assume base classes already initialzed.
+ * bits/std_istream.h: Parallel work to ostream.
+ (ctor): Eliminate redundant this->init(), let base class initialize.
+ (default ctor): New. Assume base classes already initialzed.
+ Fix initialization of basic_iostream.
+
+ * bits/std_fstream.h: While we're at it, make initializations sane
+ here too. Now matches sstream.h.
+
+ * bits/string.tcc: Fix crash in basic_string::compare.
+ * bits/basic_string.h: And here.
+ * bits/c++config.h: Add comment about _G_USE_EXCEPTIONS.
+
+ * testsuite/make_check_libfree++: Check shared as well.
+ * testsuite/27/27stringstream.cc: Add bits.
+ * testsuite/27/27boolfmt.cc: Add bits.
+ * testsuite/27/27octfmt.cc: Add bits.
+
+1999-03-17 Benjamin Kosnik <bkoz@happy.cygnus.com>
+
+ * configure.in (USE_LONG_DOUBLE): signbitl link error.
+
+ * bits/locfacets.h: Fix errors that cause build problems
+ with current egcs (template parameters have class scope).
+ * bits/locfacets.tcc: Same.
+ * src/locale-inst.cc: Same, clean.
+ * src/misc-inst.cc: Same, clean.
+
+1999-03-17 Ryszard Kabatek <kabatek@chemie.uni-halle.de>
+
+ * stl/bits/std_memory.h: Modify auto_ptr::reset to reflect the
+ standard. Re-apply this previous patch.
+
+1999-03-17 Philip Martin <pm@corris.dircon.co.uk>
+
+ * bits/basic_string.h: Use __normal_iterator<> for iterators.
+ * bits/std_sstream.h: Support __normal_iterator<> iterators.
+ * bits/string.tcc: Ditto.
+ * src/misc-inst.cc: Ditto.
+ * src/locale-inst.cc: Ditto.
+ * stl/bits/stl_iterator.h: Add __normal_iterator<>.
+ * stl/bits/stl_vector.h: Use __normal_iterator<> for iterators.
+ * testsuite/24/24iterator.cc: Add test cases for basic_string and
+ vector iterators.
+
+1999-03-16 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/locfacets.tcc: Remove macro hack.
+ * bits/locfacets.h: Tweaks.
+ * src/misc-inst.cc: Weed out locale-related instantiations.
+ * src/locale-inst.cc: Same.
+
+ * RELEASE-NOTES: Make more changes.
+ * bits/c++config.h: Bump version number.
+
+ * testsuite/make_check_libfree++: Collect diagnostics.
+
+ * bits/std_ostream.h: Fix ostream initialization/destruction
+ problem, related to dtor cleanup and new cached facets, agggggggh.
+ * bits/ostream.tcc: Tweak.
+ * bits/locfacets.h: Remove all friends of iostream classes.
+ * bits/ios_base.h: Same.
+ * bits/streambuf.tcc: Tweak.
+ * bits/std_streambuf.h: Tweak.
+ * bits/std_fstream.h: Tweak.
+ * bits/fstream.tcc: Tweak.
+ * src/stdstreams.cc: Tweak.
+ * src/ios.cc: Close streams.
+
+ * math/Makefile.in: Add missing files for shared link errors.
+ * math/Makefile.am: Same.
+
+1999-03-15 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * src/locale-inst.cc: More wchar_t instantiations.
+ * src/misc-inst.cc: Missed a few bits.
+ * testsuite/make_check_libfree++: Add static and shared runs.
+ * src/ios.cc: Add clarity to ios_base::Init::~Init().
+
+1999-03-15 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/std_ostream.h: Format, expunge, simplify. Add cached
+ facets. Resolve link errors.
+ * bits/ostream.tcc: Same.
+ * src/misc-inst.cc: Add ostream, wostream instantiations.
+ * src/Makefile.am: Add missing bits for stdstreams.cc.
+ * src/Makefile.in: Same.
+ * bits/std_iosfwd.h: Format.
+ * bits/locfacets.h (num_put): Add basic_ostream as a friend to
+ num_put so that cached _M_fnumput pointer can be deleted in
+ basic_ostream's dtor. Now everybody plays nice.
+
+1999-03-12 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+ * bits/gslice.h (class gslice): Make friends valarray,
+ gslice_array and _GliceExpression.
+
+1999-03-11 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * RELEASE-NOTES: Update.
+ * src/ios.cc: Use do proper init.
+ * bits/std_streambuf.h: Tweak.
+ * bits/std_iostream.h: Take out static member.
+ * std/iostream: Put here.
+ * bits/std_ostream.h: Non-default ctor shouldn't smash _M_streambuf.
+ * bits/std_istream.h: Ditto.
+ * bits/basic_ios.h: Format.
+ * bits/ostream.tcc(write): Fix.
+ * bits/fstream.tcc: Fix stdstreams ctor to do a proper
+ initialization of the fstream class.
+ * src/stdstreams.cc: I'm baaaaaaaack.
+
+1999-03-10 Benjamin Kosnik <bkoz@rhino.cygnus.com>
+
+ * bits/ios_base.h: Correct comments. Add ios_base::init()
+ functionality. Format, tweak, expunge, clean, bathe, and hang to dry.
+ * src/misc-inst.cc: Add instantiations here.
+ * src/ios.cc: Clean.
+ * bits/std_iostream.h: Add wrappers, global ios_base::Init object.
+ * src/stdstreams.cc: Delete this file, as now unnecessary.
+ * bits/fstream.tcc: Add missing initialization bits for ctor.
+ * src/Makefile.am (libstdc___la_SOURCES): Delete here as well.
+ * src/Makefile.in (libstdc___la_OBJECTS): And here.
+
+ * bits/streambuf.tcc: Tweak.
+ * bits/sstream.tcc: Here too.
+
+ * bits/fstream.tcc: And change definition as well.
+ * bits/std_fstream.h: Change ctor.
+ * src/basic_file.cc (sys_open): Add call that opens a specific fileno.
+ * bits/basic_file.h: Add declarations.
+
+ * testsuite/27/27hello.cc: New file.
+
+ * bits/std_ostream.h: Move flush() inline.
+ * bits/ostream.tcc: From here.
+
+ * bits/char_traits.h: Add include of fpos.h for streamoff/streampos.
+ * bits/std_ios.h: Change include libio to only when necessary.
+ * bits/fpos.h: Like here.
+ * ios_base.h: And here.
+
+ * bits/locfacets.h: Change _Iostate to _Ios_Iostate.
+ * bits/locfacets.tcc: Same.
+ * bits/std_locale.h: Include std_ios.h not std_iosfwd.h.
+ * bits/std_iosfwd.h: Move _Ios_Iostate to ios_base.h
+
+1999-03-09 Benjamin Kosnik <bkoz@rhino.cygnus.com>
+
+ * bits/basic_ios.h: Change _M_ctype to _M_fctype.
+
+ * bits/std_streambuf.h: Clean, tweak.
+ * bits/std_fstream.h: Same.
+ * bits/std_sstream.h: Same.
+ * bits/streambuf.tcc: Move most member functions out-of-line.
+ * bits/fstream.tcc: Same.
+ * bits/streambuf.tcc: Same.
+
+ * bits/basic_file.h(filepos_cur): Set correctly.
+ (filepos_beg): Same.
+ (seekpos): Change to __c_streampos.
+ * src/basic_file.cc (std): Change to __c_streampos.
+
+ * testsuite/27/27filebuf.cc: Round one is finished.
+ * testsuite/27/27filebuf-2.tst: New file, final output should match.
+ * testsuite/27/27filebuf-3.tst: Same.
+
+1999-03-08 Benjamin Kosnik <bkoz@rhino.cygnus.com>
+
+ * bits/basic_file.h: Fix typo, add comments about what to expect
+ from the various member functions in __basic_file.
+
+ * bits/std_fstream.h: Re-do sync/underflow to work
+ together. Change from sys_read to xsgetn and from sys_write to
+ xsputn. As it should have been from the beginning. . .
+
+1999-03-06 Benjamin Kosnik <bkoz@haight.constant.com>
+
+ * bits/c++config.h (__GLIBCPP__): Add versioning macro.
+
+ * bits/basic_file.h(file_beg): New function.
+ (file_cur): Ditto.
+
+ * testsuite/27/27filebuf.cc: Test in, out, in | out.
+ * bits/std_fstream.h: More _M_mode refinements.
+ (synch): Add bits for out mode only.
+ * bits/std_streambuf.h(xsputn): Correct for filebufs.
+ * bits/std_sstream.h: Ditto.
+
+1999-03-03 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/std_fstream.h: Fix _M_mode AND with ios_base::openmode.
+ * testsuite/27/27filebuf.cc: Modify.
+ * bits/c++config.h: Fix.
+
+1999-03-02 Benjamin Kosnik <bkoz@tintin.cygnus.com>
+
+ * bits/c++config.h: New macro, _G_RESOLVE_LIB_DEFECTS, used to put
+ code in place that diverges from the final standard, but has been
+ brought up on the library mailing list.
+
+ * bits/std_fstream.h(underflow): Position all three internal
+ buffer pointers at the same initial position. Re-implement with
+ basic_filebuf abstraction.
+ (overflow): Ditto.
+ (seekoff): Ditto.
+ (seekpos): Ditto.
+ * bits/std_sstream.h: Move _M_mode down into base class
+ basic_streambuf.
+ * bits/sstream.tcc: Ditto.
+ * bits/std_streambuf.h: Ditto.
+
+ * testsuite/27/27filebuf.cc: Tweak.
+
+1999-02-27 Benjamin Kosnik <bkoz@slap-happy.cygnus.com>
+
+ * bits/std_sstream.h: Ditto.
+ * bits/std_fstream.h: Fix blip.
+
+1999-02-26 Benjamin Kosnik <bkoz@happy.cygnus.com>
+
+ * C++STYLE: Add cases.
+ * bits/std_fstream.h: Format.
+ * bits/std_streambuf.h: Ditto.
+ * bits/std_sstream.h: Ditto.
+
+ * src/basic_file.cc(sys_seek): Fix stack delirium, by keeping
+ return type for _IO_file_seek and __basic_file::seek the same size.
+ * bits/basic_file.h: Ditto.
+
+1999-02-26 Benjamin Kosnik <bkoz@happy.cygnus.com>
+
+ * bits/fstream.tcc: Add include guards.
+ * src/misc-inst.cc: Add instantiations for shared libes.
+ * src/locale-inst.cc: Add instantiaions for use_facet.
+ * bits/loccore.h: Remove specialization foward decls for
+ use_facet<ctype>: perhaps add the whole lot of them later on.
+ * bits/std_fstream.h: Fix.
+ * bits/locfacets.h: Ditto.
+ * src/stdstreams.cc: Disable wide streams for now.
+
+ * src/Makefile.am (CXXFLAGS): Change up.
+ * src/Makefile.in (CXXFLAGS): Ditto.
+
+1999-02-25 Benjamin Kosnik <bkoz@happy.cygnus.com>
+
+ * src/basic_file.cc: Change to ios_base::seekdir from int.
+ * bits/basic_file.h: Ditto.
+ * bits/locfacets.h : Fix blip with new guard macros.
+
+1999-02-25 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * stl/bits/stl_config.h (__STL_USE_STD_ALLOCATORS): Minor tweaking.
+ * bits/c++config.h: Clean. Remove _G_NO_STREAMBUF_ITERATORS and
+ _G_USE_NAMESPACE.
+ * amm1/locale: Remove unused defines.
+ * generic/locale: Ditto.
+ * src/ios.cc: Ditto.
+ * src/locale.cc: Ditto.
+ * src/locale-inst.cc: Ditto.
+ * src/localename.cc: Ditto.
+ * src/stdstreams.cc: And here.
+
+ * bits/c++config.h (_G_USE_WCHAR_T): Fix.
+ * bits/loccore.h: Simplify, clean, add wchar_t guards.
+ * bits/loccore.tcc: Ditto.
+ * bits/locfacets.h: Ditto.
+ * src/locale-inst.cc: Ditto.
+ * bits/locfacets.tcc: Add do_put long long here.
+
+1999-02-24 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/std_streambuf.h: Add cached ctype facet, _M_ctype.
+ * bits/basic_ios.h: Clean. Replace _M_strbuf with
+ _M_streambuf. Use cached _M_cvt in basic_streambuf.
+ * bits/std_istream.h: Replace _M_strbuf with _M_streambuf.
+ * bits/std_fstream.h: Tweak.
+
+ * bits/char_traits.h: Remove fpos definitions from here. . .
+ * bits/fpos.h: New file, put them here. Eventually, this may allow
+ the severing of char_traits and fpos dependencies.
+ * src/Makefile.in: Add fpos.h.
+ * src/Makefile.am: Ditto.
+ * bits/std_string.h: Add fpos.h include here.
+ * bits/std_ios.h: And here.
+
+ * bits/std_streambuf.h: Change _M_init to _M_initialized.
+ * bits/ios_base.h: Remove cstdio include.
+ * bits/std_ios.h: ... Place here.
+
+1999-02-23 Benjamin Kosnik <bkoz@loony.cygnus.com>
+
+ * src/Makefile.in (CXXFLAGS): Re-add -fvtable-thunks.
+ * src/Makefile.am (CXXFLAGS): Re-add -fvtable-thunks.
+
+ * bits/basic_file.h: Comment, adjust arguments.
+ * src/basic_file.cc: Ditto.
+
+ * bits/std_fstream.h(seekoff): Error is of fpos type, not integral
+ type: check and convert accordingly. Re-interpet "resultant stream
+ position" to indicate external byte sequence location, not internal
+ buffer info.
+
+1999-02-22 Benjamin Kosnik <bkoz@loony.cygnus.com>
+
+ * mkcshadow: And change copyright here.
+ * src/Makefile.am (CXXFLAGS): Add -g -O2. Add new header
+ dependencies for stl_pthread_alloc.h, pthread_allocimpl.h,
+ stl_thread.h, and stl_iterator_base.h.
+ * src/Makefile.in (CXXFLAGS): Ditto.
+ * stl/backward/pthread_alloc.h: Remove.
+
+1999-02-19 Benjamin Kosnik <bkoz@loony.cygnus.com>
+
+ * bits/std_streambuf.h (sungetc): Use standard defs for putback
+ position.
+ * bits/std_fstream.h (pbackfail): Correct.
+ (sungetc): Test.
+ (seekoff): Implement.
+ (seekpos): Re-do.
+ * testsuite/27/27filebuf.cc: Add test cases.
+
+1999-02-18 Benjamin Kosnik <bkoz@loony.cygnus.com>
+
+ * bits/std_fstream.h: Go with basic_file's interfaces for dealing
+ with the external buffers, and stop mucking around with setting
+ and re-setting the external buf's pointers. Aka, clarity and
+ simplicity rule the day.
+ * src/locale.cc: Use memcpy in codecvt::do_in and codecvt::do_out.
+ Remove partial result and support code.
+
+1999-02-18 Ulrich Drepper <drepper@cygnus.com>
+
+ * configure.in: Add hypot, hypotf, atan2f, expf, and copysignf to
+ list of function which have to be replaced.
+ Remove expf from list of functions to test for.
+ Define USE_LONG_DOUBLE in case the libm has partial support for long
+ doubles.
+ * Makefile.in: Regenerated.
+ * config.h.in: Likewise.
+ * configure: Likewise.
+ * libio/Makefile.am (LIBIO_SRCS): Add missing backslash.
+ * libio/Makefile.in: Regenerated.
+ * src/Makefile.in: Regenerated.
+ * string/Makefile.in: Regenerated.
+ * math/Makefile.am (EXTRA_DIST): Add hypot.c, hypotf.c, hypotl.c,
+ atan2f.c, expf.c, and $(EXTRA_yes).
+ (EXTRA_yes): Add signbitl.c mycabsl.c.
+ (libmath_la_LIBADD): Add $(EXTRA_$(USE_LONG_DOUBLE)).
+ (libmath_la_SOURCES): remove long double versions.
+ * math/Makefile.in: Regnerated.
+ * math/atan2f.c: New file.
+ * math/copysignf.c: New file.
+ * math/expf.c: New file.
+ * math/hypot.c: New file.
+ * math/hypotf.c: New file.
+ * math/hypotl.c: New file.
+ * math/cargf.c: Use correct function and macro names.
+ * math/ccos.c: Likewise.
+ * math/ccosh.c: Likewise.
+ * math/ccoshf.c: Likewise.
+ * math/ccoshl.c: Likewise.
+ * math/cexp.c: Likewise.
+ * math/cexpf.c: Likewise.
+ * math/cexpl.c: Likewise.
+ * math/clog.c: Likewise.
+ * math/clog10.c: Likewise.
+ * math/clog10f.c: Likewise.
+ * math/clog10l.c: Likewise.
+ * math/clogf.c: Likewise.
+ * math/clogl.c: Likewise.
+ * math/copysignf.c: Likewise.
+ * math/csin.c: Likewise.
+ * math/csinf.c: Likewise.
+ * math/csinh.c: Likewise.
+ * math/csinhf.c: Likewise.
+ * math/csinhl.c: Likewise.
+ * math/csinl.c: Likewise.
+ * math/csqrt.c: Likewise.
+ * math/csqrtf.c: Likewise.
+ * math/csqrtl.c: Likewise.
+ * math/ctan.c: Likewise.
+ * math/ctanf.c: Likewise.
+ * math/ctanh.c: Likewise.
+ * math/ctanhf.c: Likewise.
+ * math/ctanhl.c: Likewise.
+ * math/ctanl.c: Likewise.
+
+1999-02-17 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * testsuite/27/27filebuf.cc: Add cases.
+ * testsuite/27/27filebuf-1.txt: Remove inadvertent garbage.
+ * bits/std_streambuf.h: Simplify, always have one return statement.
+ * bits/std_fstream.h: Tweak comments in underflow.
+
+1999-02-17 Ulrich Drepper <drepper@cygnus.com>
+
+ * ltmain.sh: Update from libtool 1.2d and fix Solaris problems.
+ * ltconfig: Likewise.
+
+1999-02-16 Christophe Pierret <cpierret@businessobjects.com>
+
+ * src/locale.cc: Fix assert.
+
+1999-02-16 Benjamin Kosnik <bkoz@cygnus.com>
+
+ FIXME: Still need some kind of solution for undefined math symbols.
+ * src/Makefile.in (locale-inst.lo): Compile with
+ -fimplicit-templates to fix Solaris link problem.
+ * src/Makefile.am: Ditto.
+ * libio/Makefile.in: Add stdfiles.c so that _IO_list_all is defined.
+ * libio/Makefile.am: Ditto.
+ * src/locale.cc: Provide some kind of def for _S_tolower.
+ * bits/locfacets.h: Fix declarations of ctype<wchar_t> to
+ match ctype<char> for _S_tolower, _S_toupper, _S_table.
+
+1999-02-10 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/loccore.tcc: Move member-template ctor inline...
+ * bits/loccore.h: ...here.
+ * src/locale-inst.cc: Add instantiation here.
+
+ * testsuite/27/27stringstream.cc: Tweak.
+
+ * bits/ostream.tcc: Include sbuf_iter.h.
+
+ * bits/ostream.tcc: Convert *this to ostreambuf_iterator before
+ passing to num_put, as num_put's first argument is an interator,
+ not basic_ostream.
+
+ * testsuite/make_check_libfree++: New file, runs through the
+ existing test files in the testsuite directory and makes sure
+ they link.
+
+1999-02-10 Brendan Kehoe <brendan@cygnus.com>
+
+ * testsuite/21/21compare.cc: Fix typo.
+ * src/locale.cc (ctype<wchar_t>::_S_{toupper,tolower,table}):
+ Don't try to provide non-linux versions, since it's impossible to
+ initialize their const references with the integer 0, no matter
+ how we try to cast it.
+
+1999-02-10 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/std_locale.h: Move std_vector.h dependency.
+ * bits/std_ios.h: ...from here.
+ * bits/std_string.h: ...and here.
+ * src/locale.cc: ..to here.
+ * bits/loccore.h: Ditto, add vector forward declaration,
+ make locale::_Impl data members pointers not containers.
+ * bits/loccore.tcc: Move out-of-line for now.
+ * bits/locfacets.h: Move vector dependency from here...
+ * bits/locfacets.tcc: ...to here.
+ * src/localename.cc: ..and here.
+ * src/locale-inst.cc: Add include of locfacets.tcc here.
+
+ * stl/bits/stl_string_fwd.h: Make __get_c_string non-static.
+ * bits/basic_string.h: Can't use sizeof on an incomplete type.
+ * bits/string.tcc: Tweak.
+ * src/string.cc: And add __get_c_string def here.
+
+ * bits/std_fstream.h: Yeah, comment the fill_n idea out as impractical.
+
+ * src/stlinst.cc: Add include of stl_config.h.
+
+1999-02-09 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * stl/bits/std_bitset.h: Update to SGI STL 3.12.
+ * stl/bits/stl_config.h: Tweak, update.
+ * stl/bits/std_stdexcept.h: Ditto, change stl_exception to
+ std_exception.
+ * stl/bits/std_memory.h: Reconstructed auto_ptr, Ditto.
+ * stl/bits/std_functional.h: Ditto.
+
+ * stl/bits/stl_string.h: New file, SGI's string
+ implementation. For reference only, corresponding to string in
+ 3.12 source.
+ * stl/bits/stl_char_traits.h: As above.
+
+ * stl/bits/pthread_allocimpl.h: New file corresponding to
+ pthread_alloc.
+ * stl/bits/stl_pthread_alloc.h: New file corresponding to
+ pthread_alloc.h
+ * stl/bits/stl_threads.h: New file.
+
+ Note that SGI STL 3.12's file iterator.h is not used.
+ * stl/bits/std_iterator.h: Ditto.
+ * stl/bits/stl_iterator.h: Drop in replace.
+ * stl/bits/stl_iterator_base.h: New file, drop in replace.
+
+ * stl/bits/stl_queue.h, stl_rope.h, stl_set.h, stl_stack.h,
+ stl_string_fwd.h, stl_tempbuf.h, stl_tree.h, stl_vector.h,
+ stl_pair.h, stl_multimap.h, stl_multiset.h, stl_list.h,
+ stl_hashtable.h, stl_hash_set.h, stl_hash_map.h, stl_function.h,
+ stl_deque.h, stl_alloc.h, stl_algo.h, stl_algobase.h, ropeimpl.h:
+ Drop-in replace (ie, stop changing __SGI_STL_* to _CPP_BITS_* for
+ preprocessor guards, but fixup include paths and names according
+ to new directory layout).
+
+1999-02-05 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/std_fstream.h: Remove _M_open data member.
+ * bits/fstream.tcc: Ditto.
+
+ * src/locale.cc: Tweak.
+
+ * bits/std_sstream.h: Simplify.
+
+ * bits/std_streambuf.h: Simplify.
+ (sputc): Use correct definition of "write area."
+
+ * bits/std_fstream.h: Fix uflow.
+ * src/basic_file.cc: Tweak.
+ * testsuite/27/27filebuf.cc: Add tests.
+ * testsuite/27/27filebuf-3.txt: Rename to *-2.txt.
+
+1999-02-02 Ryszard Kabatek <kabatek@chemie.uni-halle.de>
+
+ * bits/ios_base.h: Make protected.
+
+1999-02-01 Ryszard Kabatek <kabatek@chemie.uni-halle.de>
+
+ * bits/ios_base.h: Changes in the class ios_base:
+ Rename _M_exceptions member to _M_exceptions_data.
+ Make the member functions rdstate(), clear(), exceptions()
+ and exceptions(iostate) protected and add the "_M_" prefix.
+ * src/ios.cc: Ditto.
+ * bits/basic_ios.h: Adapt the changes from ios_base.
+
+1999-01-29 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/std_fstream.h: Remove _M_flags, _M_equilibrate as unnecessary.
+ * bits/fstream.tcc: Ditto.
+
+ * bits/std_fstream.h (underflow): Resize deallocates memory and
+ resets pointers in the internal cache according to new _M_buf. . dooh!
+ * src/locale.cc: Mas changes with codecvt::do_in, do_out.
+
+1999-01-29 Ryszard Kabatek <kabatek@chemie.uni-halle.de>
+
+ * stl/bits/std_memory.h: Modify auto_ptr::reset to reflect the
+ standard.
+
+1999-01-28 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * src/locale.cc (codecvt::do_in): Finer-grained tuning to take
+ into account partial returns.
+ (codecvt::do_out): Likewise.
+
+ * bits/char_traits.h: Change streamsize to be a signed type, as
+ required by 27.4.1 Types p 2. (Changing to _IO_ssize_t.)
+ * bits/std_streambuf.h: Make
+ in_avail() and showmanyc() have streamsize as return types, so
+ that showmanyc()'s return of eof won't underflow in_avail's return
+ value and give a bogus result.
+ * src/misc-inst.cc: And more changes. . .
+
+ * bits/std_streambuf.h (basic_streambuf): Add _M_buf_unified to keep
+ track of joint in/out pointers into the internal buffer.
+ (sbumpc): Add check for _M_buf_unified.
+ (sputbackc): Ditto.
+ (sungetc): Ditto.
+
+ * testsuite/27/27filebuf.cc: Add cases.
+ * testsuite/27/27stringbuf.cc: Add showmanyc case.
+
+ * bits/std_fstream.h (close): Fix logic error.
+ (open): Initialize internal pointers based on _M_buf and _M_buf_size.
+ (showmanyc): Add underflow component, to match the standard.
+
+ * bits/fstream.tcc: Ditto.
+
+1999-01-27 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/basic_file.h: Match vtables w/ _IO_FILE_plus.
+ * src/basic_file.cc: Ditto.
+ * src/Makefile.in: Add -fvtable-thunks to CXXFLAGS: preferred
+ format for dealing with _IO_file in libio.
+
+1999-01-27 Ulrich Drepper <drepper@cygnus.com>
+
+ * src/basic_file.cc: Include fcntl.h.
+
+1999-01-27 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * libio/Makefile.in: Add fileops.lo, genops.lo to objects to debug
+ libio calls.
+ * bits/std_streambuf.h: Redefine read posion.
+
+ * bits/std_fstream.h: Temporary hack to get vtables working again.
+ * bits/basic_file.h: Revert.
+ * src/basic_file.cc: Ditto.
+ * testsuite/27/27filebuf.cc: Tweak.
+
+1999-01-26 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/basic_file.h: Add showmanyc, underflow. .
+ * src/basic_file.cc: Ditto.
+
+ * bits/std_fstream.h (showmanyc): Add bits to ping libio to see if more
+ chars can be read.
+
+ * testsuite/27/27filebuf.cc: Add testcases.
+ * src/basic_file.cc: Add O_CREAT to open calls with
+ ios_base::trunc as part of the open mode.
+
+1999-01-26 Ryszard Kabatek <kabatek@chemie.uni-halle.de>
+
+ * bits/basic_ios.h: fix basic_ios::exceptions(iostate)
+
+1999-01-25 Benjamin Kosnik <bkoz@nabi.net>
+
+ * src/ios.cc (clear): Correct typo.
+ * bits/ios_base.h: Tweak spacing.
+
+1999-01-25 Ryszard Kabatek <kabatek@chemie.uni-halle.de>
+
+ * bits/basic_ios.h: fix basic_ios::fail()
+
+1999-01-25 Benjamin Kosnik <bkoz@loony.cygnus.com>
+
+ * bits/basic_file.h: Include libioP.h from libio instead of here.
+ * bits/iolibio.h: Remove.
+ * bits/libio.h: Remove.
+
+1999-01-22 Benjamin Kosnik <bkoz@lunatic.cygnus.com>
+
+ * bits/std_fstream.h: Tweak cvt-> in call for newer egcs compilers.
+
+1999-01-22 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile.am (SUBDIRS): Add libio.
+ * configure.in: Add rule to test for glibc2.
+
+ * src/Makefile.am (INCLUDES): Add -I to libio subdir.
+ (libstdc___la_LIBADD): Add libio.la.
+
+1999-01-21 Benjamin Kosnik <bkoz@cygnus.com>
+
+ * bits/basic_file.h: Make new abstraction for underlying C library
+ FILE, named __basic_file.
+ * src/basic_file.cc: New file.
+ * bits/os_raw.h: Delete.
+ * src/os_raw.cc: Delete.
+ * src/Makefile.in: Tweak.
+ * src/Makefile.am: Tweak.
+ * bits/iolibio.h: Add this here, for the time being.
+ * bits/libioP.h: Ditto.
+
+ * bits/ios_base.h: Delete unused defines.
+ * src/locale.cc (codecvt<char, char, mbstate_t>::do_in): Use
+ strcpy to copy between the two buffers.
+
+ * testsuite/27/27stringbuf.cc: Change license, fix in_avail tests.
+ * testsuite/27/27filebuf.cc: New file.
+ * testsuite/27/27filebuf-1.txt: Data file for above test.
+ * testsuite/27/27filebuf-2.txt: Ditto.
+
+ * bits/std_streambuf.h (uflow): Re-implement default.
+ * bits/std_fstream.h: Set _M_buf_size based on cstdio's BUFSIZ.
+ Re-implement virtual functions.
+ * bits/fstream.tcc: Delete unused mf's.
+
diff --git a/libstdc++-v3/ChangeLog-2000 b/libstdc++-v3/ChangeLog-2000
index d21b530839b..98b74025abd 100644
--- a/libstdc++-v3/ChangeLog-2000
+++ b/libstdc++-v3/ChangeLog-2000
@@ -5642,4489 +5642,3 @@ Thu Nov 2 10:11:45 2000 Mark P Mitchell <mark@codesourcery.com>
docs/status.html, docs/thanks.html, docs/faq/index.txt: Ditto.
* docs/how.html: Ditto. (This file should go away soon.)
-1999-12-26 Phil Edwards <pme@sourceware.cygnus.com>
-
- * docs/gentop/status: Add snapshot version column, update
- for Solaris 7.
- * docs/status.html: Regenerated.
-
-1999-12-26 Phil Edwards <pme@sourceware.cygnus.com>
-
- * docs/faq/index.html: Turn README and RELEASE-NOTES into links
- from installation FAQ, and specify location of text files.
- * docs/faq/index.txt: Regenerated.
-
-1999-12-23 Phil Edwards <pme@sourceware.cygnus.com>
-
- * docs/gentop/download: Add links to prebuilds for Cygwin/Mingw32.
- * docs/download.html: Regenerated.
-
-1999-12-22 Phil Edwards <pme@sourceware.cygnus.com>
-
- * docs/faq/index.html: Update 'what works' for .7 snapshot,
- clean up various links.
- * docs/faq/index.txt: Regenerated.
- * docs/gentop/gentop: Smarter regeneration script.
- * docs/gentop/{head,foot}chunk.html: Updated with new
- contributors link and mod date.
- * docs/gentop/index: Snapshot relase date.
- * docs/gentop/thanks: New contributors page added.
- * docs/{download,how,index,links,mail,status,thanks}.html:
- Regenerated from gentop; thanks.html created.
-
-1999-12-21 Benjamin Kosnik <bkoz@decepticon.cygnus.com>
-
- * bits/c++config.h.in (__GLIBCPP__): 19991221.
- * docs/index.html: Add correct information.
-
- * config/irix: New directory.
- * config/irix/ctype.cc: Add irix-6.5 info. Not tested.
- * config/irix/bits/ctype_base.h: And here.
-
- * config/aix: New directory.
- * config/aix/ctype.cc: Add aix-4.2 info. Not tested.
- * config/aix/bits/ctype_base.h: And here.
-
-1999-12-21 Philip Martin <pm@corris.dircon.co.uk>
-
- * bits/basic_string.h: Add special case handling for integral
- "iterators".
- * bits/std_string.h: include type_traits.h
- * testsuite/21_strings/ctor_copy_dtor.cc: Tweak.
-
-1999-12-21 Benjamin Kosnik <bkoz@decepticon.cygnus.com>
-
- * bits/fstream.tcc (seekoff): Output buffer based on _M_*_in and
- _M_*_end now.
- * bits/std_fstream.h (sync): And here.
- * testsuite/27_io/filebuf.cc: Revisions.
- * testsuite/27_io/filebuf-2.tst: Correct, remove weird character
- at the end of the file.
- * testsuite/27_io/filebuf-3.tst: Correct.
-
-1999-12-21 Phil Edwards <pedwards@jaj.com>
-
- * docs/gentop/index: Hold off on .7 announcement date.
- * docs/index.html: Regenerate.
-
-1999-12-21 Benjamin Kosnik <bkoz@kcygnus.com>
-
- * bits/std_fstream.h (sync): Move _M_file->sync() to
- _M_really_overflow().
- * bits/fstream.tcc (seekoff): Call sync, not _M_really_overflow so
- as to get the _M_file->sync action, which forces the external
- buffer to update itself.
- (underflow): Same here.
-
-1999-12-21 Phil Edwards <pedwards@jaj.com>
-
- * bits/c++config.h.in: Uncomment _GLIBCPP_USE_NAMESPACES and move...
- * acconfig.h: ...to here.
- * config.h.in: Regenerate from aclocal.
- * acinclude.m4: Add GLIBCPP_ENABLE_DEBUG, GLIBCPP_ENABLE_NAMESPACES.
- * aclocal.m4: Regenerate from acinclude.
- * configure.in: Use ENABLE macros here.
- * configure: Regenerate.
- * src/Makefile.am: Use results from ENABLE macros.
- * src/Makefile.in: Regenerate.
-
-1999-12-20 Benjamin Kosnik <bkoz@cygnus.com>
-
- * mkcheck (SRC_DIR): Now have to include config/* dir if "make
- check" and not "make check-install." Temporarily hack in linux
- support.
-
- * bits/std_streambuf.h: Tweaks.
- * bits/streambuf.tcc (xsgetn): Tweaks.
- * bits/std_fstream.h (sync): Make _M_really_overflow consistent.
- * bits/fstream.tcc (filebuf::underflow): Simplify.
- * bits/std_sstream.h (streambuf::underflow): Minor change to make
- checks for read position precisely implement the standard.
- * bits/basic_file.h (filepos_cur): Base this on _offset.
- * testsuite/21_strings/inserters_extractors.cc (test05): Tweaks.
- * testsuite/27_io/filebuf.cc: Tweak.
-
-1999-12-20 Benjamin Kosnik <bkoz@cygnus.com>
-
- * docs/17_intro/RELEASE-NOTES: Fix typos.
-
- * bits/locale_facets.h (ctype): Modify, use __to_type to abstract
- out platform-specific bits.
- * config/default/ctype.cc: And here.
- * config/defaults/bits/ctype_base.h: And here.
- * config/linux/ctype.cc: And here.
- * config/linux/bits/ctype_base.h (ctype_base): And here.
- * config/solaris/bits/ctype_base.h (ctype_base): Add
- __to_type. Comment, as it looks like this is for solaris2.6 and
- above: solaris2.5.1 doesn't seem to have the same definitions.
- * config/solaris/ctype.cc: And here.
-
-1999-12-19 Benjamin Kosnik <bkoz@cygnus.com>
- Ulrich Drepper <drepper@cygnus.com>
-
- * acconfig.h: Remove _GLIBCPP_USE_CTYPE_ISBIT.
-
- * src/locale.cc: Take out platform-specific hacks.
- * config/linux/ctype.cc: Put here.
- * config/solaris/ctype.cc: Put here.
- * config/default/ctype.cc: Put here.
-
- * bits/locale_facets.h: Take out platform-specific hacks.
- * config/linux/bits/ctype_base.h: Put here.
- * config/solaris/bits/ctype_base.h: Put here.
- * config/default/bits/ctype_base.h: Put here.
-
- * configure.in: Bump version.
- Add tests for top-level config directory.
- * configure: Regenerated.
- * src/Makefile.am (INCLUDES): Add platform-specific dir.
- * src/Makefile: Regenerate.
-
-1999-12-19 Benjamin Kosnik <bkoz@cygnus.com>
- Ulrich Drepper <drepper@cygnus.com>
-
- * bits/locale_facets.h: Hack in solaris support.
- * src/locale.cc: Here too.
-
-1999-12-18 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * docs/17_intro/TODO: Update
- * docs/17_intro/RELEASE-NOTES (New): Update.
-
-1999-12-17 Benjamin Kosnik <bkoz@milou.cygnus.com>
-
- * bits/c++config.h.in (__GLIBCPP__): Bump.
- * docs/17_intro/RELEASE-NOTES: Update, Gaby please add your stuff.
- * docs/17_intro/TODO: Update.
-
- * bits/locale_facets.h: Touch this too.
- * bits/localefwd.h: Add typedefs for loooooong vector names.
- * bits/locale_facets.tcc (locale::operator()): Need parens.
- (has_facet): Simplify.
- * src/locale-inst.cc: Add instantiations.
- * src/locale.cc: Tweaks.
-
- * bits/std_streambuf.h: Move indeterminates into. .
- * bits/std_fstream.h: Here.
- * bits/fstream.tcc (underflow): Rewind just for ios_base::out
- streams.
- * bits/sstream.tcc: Very minor formatting tweaks.
- * bits/std_streambuf.h (_M_set_determinate): If exclusively an
- input buffer, set _M_buf to offset.
- * bits/istream.tcc (std): Tweaks.
- * testsuite/27_io/istream_unformatted.cc (test05): More tweaks,
- include fstream.
- * testsuite/27_io/filebuf.cc: Tweaks.
-
-1999-12-17 Phil Edwards <pedwards@jaj.com>
-
- * configure.in: Add OPTLEVEL, -O2 for gcc 2.96+, nothing otherwise.
- * configure: Regenerate.
- * src/Makefile.am: Use OPTLEVEL in CXXFLAGS.
- * src/Makefile.in: Regenerate. Also picks up OTHER_CXXFLAGS rename
- to OPTIMIZE_CXXFLAGS from a previous revision (1.96) to Makefile.am.
-
-1999-12-17 Phil Edwards <pedwards@jaj.com>
-
- * docs/21_strings/stringtok_std_h.txt: New algorithm
- suggested by Chris King.
- * docs/21_strings/howto.html: Link to new version.
-
-1999-12-16 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * bits/valarray_array.h (__valarray_sum): Use operator+=, not
- operator+.
- * docs/17_intro/TODO: Update.
-
-1999-12-15 Phil Edwards <pme@sourceware.cygnus.com>
-
- * docs/gentop/footchunk.html: Updated, fixed CRLFs.
- * docs/gentop/gentop: Ditto.
- * docs/gentop/headchunk.html: Ditto.
- * docs/*.html: Regenerated from gentop.
- * docs/*/howto.html: Updated as test.
- * docs/faq/index.html: Updated, fixed CRLFs.
- * docs/faq/index.txt: Regenerated.
-
-1999-12-15 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * mknumeric_limits (OUT_C): restart only if $OUT_C is present.
-
- * bits/std_complex.h
- (complex<float>::complex(const complex<double>&),
- complex<float>::complex(const complex<long double>&)): Define.
-
- * docs/17_intro/TODO: Update.
-
-1999-12-13 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/istream.tcc (seekg): Don't set _M_gcount.
- (tellg): Same.
- * bits/fstream.tcc (filebuf::underflow): Re-sync
- external byte sequence's input buffer only. . .
- * testsuite/27_io/istream_unformatted.cc (test04): New tests for
- tellg, seekg and filebufs.
- (test05): Same for stringbufs.
- * testsuite/27_io/istream_unformatted-2.tst: New file.
- * testsuite/27_io/istream_unformatted-1.tst: New file.
- * testsuite/27_io/istream_unformatted-1.txt: New file.
- * testsuite/21_strings/inserters_extractors.cc (test05): Change
- output file.
-
-1999-12-13 Phil Edwards <pedwards@jaj.com>
-
- * docs/gentop/*: New directory, containing bits for the homepages.
- * docs/*.html: Regenerated from gentop.
- * docs/*/*.html: Entries added and regenerated.
-
-1999-12-13 Benjamin Kosnik <bkoz@gnu.org>
-
- Efforts to get -O2 to work with -Winline -Werrors.
- * bits/valarray_array.h (__valarray_fill(_Tp*, size_t, const
- _Tp&): Remove inline declaration, as cannot be inlined and
- -Winline -Werror complains. An interesting question is why this
- cannot be inlined, as I can see no real reason to disqualify it.
- (__valarray_product(const _Tp*, const _Tp*)): Same here.
- * bits/std_valarray.h (valarray::operator[](size_t)): Same here.
-
- * docs/17_intro/TODO: Update.
-
-1999-12-12 Benjamin Kosnik <bkoz@gnu.org>
-
- * bits/std_fstream.h (seekpos): Tweaks, fixes. Move definition to
- fstream.tcc.
- * bits/basic_file.h (filepos_cur()): Make pointers themselves be
- the resultant position.
- * bits/fstream.tcc (seekoff): Explicitly set return value to
- resultant external byte sequence position, not value returned from
- _M_file->seekoff. Need to make
- (seekpos): New definition.
-
- * bits/istream.tcc (seekg): As per Library Issues List 136, set to
- just istream. Necessary, or else tellg will give an invalid stream
- position, but seekg will return a valid stream position, which is
- not groovy: see testcase addition.
- * bits/ostream.tcc (seekp): Same.
-
- * bits/streambuf.tcc (_S_copy_streambufs): Simplify.
- * bits/sstream.tcc: Tweaks.
- * bits/locale_facets.tcc: Tweaks.
- (num_put::do_put(iter_type, ios_base, char_type, const void*)):
- Re-write in a way that is easier for the inliner to work with.
- * bits/ios_base.h: Use explicit static_cast<int>(...) notation.
-
-1999-12-10 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/locale_facets.tcc: Tweaks.
- * bits/locale_facets.h (use_facet): Can't inline, remove inline
- from declaration.
- * bits/localefwd.h: And here.
- * bits/std_ostream.h: Tweaks, sentry ctor can't be inlined.
- * bits/ostream.tcc: Put here.
-
- Frank Ch. Eigler <fche@cygnus.com>
- * src/Makefile.am: Adjust CXXFLAGS, add AM_CXXFLAGS.
-
-1999-12-08 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/sstream.tcc (stringbuf::seekoff): Long overdue revamp. Make
- in and out buffers update independently.
-
- * bits/basic_ios.h: Minor formatting.
- * bits/fstream.tcc (std): Fix indentation.
-
-1999-12-08 Chip Salzenberg <chip@valinux.com>
-
- * bits/char_traits.h (char_traits<>): Move not_eof() functions
- after corresponding eof() functions, so they're easier for the
- compiler to inline.
- * bits/locale_facets.h (money_base::__default_pattern): Move
- static variable out of inline functions.
- (_Moneypunct<>::do_{pos,neg}_format): Use it.
- * src/locale-inst.cc (money_base::__default_pattern): Define it.
-
-1999-12-08 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/std_fstream.h (filebuf::open): Tweak.
- * bits/fstream.tcc (filebuf::seekoff): Simplify, fix.
- * bits/std_ios.h: Minor tweaks for headers.
-
-1999-12-06 Benjamin Kosnik <bkoz@gnu.org>
-
- * bits/c++config.h.in (_GLIBCPP_FULLY_COMPLIANT_HEADERS): New macro.
- * src/string-inst.cc: Add guards . . .
- * src/misc-inst.cc: And here.
- * bits/std_sstream.h: And here.
- * bits/std_fstream.h: And here.
- * bits/std_streambuf.h: And here.
- * bits/std_istream.h: And here.
- * bits/std_ostream.h: And here.
-
-1999-12-06 Scott Snyder <snyder@fnal.gov>
-
- * bits/istream.tcc (basic_istream::read): Try to handle __n == 0
- case.
- (basic_istream::readsome): And here as well.
- * testsuite/27_io/istream_unformatted.cc: Test a zero-length
- read().
-
-1999-12-06 Mumit Khan <khan@xraylith.wisc.edu>
-
- * bits/istream.tcc (basic_istream::ignore): streamsize is not
- necessarily an `int'.
-
-1999-12-06 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * mknumeric_limits: Don't use $CXXFLAGS when building
- gen-num-limits. It's definitely wrong to use it since $CXXFLAGS
- generally instructs the compiler not to emit template
- instantiations and we end up with undefined symbols. Sigh.
-
-1999-12-05 Benjamin Kosnik <bkoz@gnu.org>
-
- * bits/locale_facets.tcc: Tweak.
- (_S_format_long): Adjust showpos formatting for hex and oct.
- * bits/std_ostream.h (operator<<(short)): Correctly deal with hex
- and oct by formatting as unsigned.
- (operator<<(int)): Same here.
- * bits/ostream.tcc (operator<<(long)): Same.
- (operator<<(long long)): Same.
- (_S_pad_char): Actually treat ios_base::internal as something
- worth doing correctly. Remove const designation on ios argument.
- * testsuite/27_io/ios_manip_basefield.cc (test02): Add tests.
- * testsuite/27_io/ostream_inserter_arith.cc (test03): Add tests.
-
-1999-12-04 Benjamin Kosnik <bkoz@gnu.org>
-
- * bits/std_sstream.h (streambuf::underflow): Check for mode == in.
-
-1999-12-03 Benjamin Kosnik <bkoz@gnu.org>
-
- * bits/locale_facets.tcc (num_put::do_put(bool): Fix.
-
- * bits/sstream.tcc (streambuf::seekoff): Add parens.
- * bits/istream.tcc (istream::get(sb)): Handle exceptional events.
- (operator>>(istream, _CharT*)): Change streamsize to int_type.
- (operator>>(istream, _CharT&)): Fix typedef'd type to be _CharT.
- * bits/ostream.tcc (ostream::operator<<(const char*)): Stub out
- unused argument.
- (ostream::operator<<(_CharT)): Fix.
-
- * bits/std_sstream.h: Temporarily disable including sstream.tcc to
- see if this will increase compile speed.
- * bits/std_ostream.h: Likewise. . .
- * bits/std_istream.h: And here.
- * bits/std_fstream.h: And here.
- * src/misc-inst.cc: Add relevant header file includes for
- instantiation purposes.
- * src/string-inst.cc: And here.
- * testsuite/27_io/ostream_inserter_arith.cc: Add test case.
-
-1999-12-02 Benjamin Kosnik <bkoz@gnu.org>
-
- * testsuite/27_io/istream_unformatted.cc (test03): Add tests.
- * bits/istream.tcc (get(streambuf)): More fixes.
- (istream::ignore): Get specific about numeric_limits<int>::max()
- requirements.
-
- * bits/fstream.tcc (filebuf::open): Tweaks for _M_last_overflowed.
- (filebuf::close): Same.
- * testsuite/27_io/filebuf.cc: Add tests for ios_base::ate.
-
-1999-12-01 Phil Edwards <pedwards@jaj.com>
-
- * mkcheck: Support for compilation/execution timing.
- * testsuite/printnow.c: New file.
-
-1999-12-01 Phil Edwards <pedwards@jaj.com>
-
- * bits/std_cwchar.h: Test for _GLIBCPP_USE_WCHAR_T.
- * configure.in: Test for presence of wchar.h before testing
- for any of its features.
- * configure: Regenerate.
-
-1999-11-30 Benjamin Kosnik <bkoz@gnu.org>
-
- Preliminary istream validations complete.
- * bits/istream.tcc (istream::getline): Fixes. Tweaks to make
- formatting more consistent. Removal of if-statements inside of for
- loops.
- (ignore): Fix.
- (get): Same.
- (putback): Same.
- * bits/std_istream.h: Same.
- * bits/sstream.tcc (stringbuf::pbackfail): Fix.
- * testsuite/27_io/stringbuf.cc: Tweak.
- * testsuite/27_io/istream_unformatted.cc (test02): Mo' tests.
-
- * bits/ostream.tcc (ostream::operator<<(arith)): Set badbit, not
- failbit on failure, as per 27.6.2.5.2.
-
- * stl/bits/std_vector.h: Allow bool specializations. Should move
- ext/std_bvector to bits, not ext, maybe.
-
-1999-11-30 Mumit Khan <khan@xraylith.wisc.edu>
-
- * configure.in: Fix checks for mbstate_t and WCHAR_MIN/MAX.
- * configure: Regenerate.
-
-999-11-29 Benjamin Kosnik <bkoz@gnu.org>
-
- * bits/istream.tcc (get(streambuf, char)): Fix.
- * testsuite/27_io/istream_unformatted.cc (test03): Add tests.
-
-1999-11-29 Scott Snyder <snyder@fnal.gov>
-
- * bits/basic_string.h (append(const _Char*, size_type)): The
- length of the appended string is given exactly by the second arg,
- regardless of the data in the character array.
- * bits/string.tcc (basic_string(const _CharT*, size_type, const
- _Alloc&)): Likewise.
- * testsuite/21_strings/append.cc (test01): Remove erroneous test
- of basic_string::append.
-
-1999-11-29 Chip Salzenberg <chip@valinux.com>
-
- * Makefile.in: Tweaks for CXXFLAGS.
- * */Makefile.in: Same.
-
-1999-11-29 Mumit Khan <khan@xraylith.wisc.edu>
-
- * conficd bgure.in: Check for wide character support.
- * bits/c++config.h.in (_GLIBC_USE_WCHAR_T): Move from here ...
- * acconfig.h (_GLIBC_USE_WCHAR_T): to here.
- * bits/string.tcc (wstring::_S_find): Guard wchar_t specialization.
-
-1999-11-29 Mumit Khan <khan@xraylith.wisc.edu>
-
- * acinclude.m4: Fix typo.
- * src/complex.cc: Fix macro line continuation.
-
-1999-11-29 Petter Urkedal <petter@matfys.lth.se>
-
- * src/Makefile.am (CXXFLAGS): Add -Wno-format to allow non-
- string literals in format, as used in locale-facets.tcc.
-
-1999-11-28 Benjamin Kosnik <bkoz@gnu.org>
-
- * testsuite/27_io/istream_unformatted.cc (test03): Add tests.
- * bits/istream.tcc (istream::get): Extract to argument minus one.
- Various tweaks and fixes.
-
-1999-11-22 Mumit Khan <khan@xraylith.wisc.edu>
-
- * bits/locale_facets.tcc: Workaround for compiler crash on
- ix86-*-mingw32.
-
-1999-11-21 Mumit Khan <khan@xraylith.wisc.edu>
-
- * acinclude.m4: New file. New _GLIBCPP_CHECK_FLOAT_SUPPORT macro.
- * configure.in: Use.
- * acconfig.h: New _GLIBCPP_BUGGY_FLOAT_COMPLEX macro.
- * src/complexf.cc: New _GLIBCPP_FLOAT_SPECIALIZATION macro.
- * bits/std_complex.h: Use.
- * src/complex.cc: Use.
-
-1999-11-19 Mumit Khan <khan@xraylith.wisc.edu>
-
- * testsuite/18_support/numeric_limits.cc: Add missing std:: prefix.
- * testsuite/21_strings/inserters_extractors.cc: Likewise.
- * testsuite/22_locale/ctype.cc: Likewise.
- * testsuite/23_containers/multiset.cc: Likewise.
- * testsuite/23_containers/vector_ctor.cc: Likewise.
- * testsuite/26_numerics/binary_closure.cc: Likewise.
- * testsuite/27_io/fpos.cc: Likewise.
- * testsuite/27_io/ios_base_callbacks.cc: Likewise.
- * testsuite/27_io/istream_extractor_arith.cc: Likewise.
- * testsuite/27_io/istream_extractor_char.cc: Likewise.
- * testsuite/27_io/istream_extractor_other.cc: Likewise.
- * testsuite/27_io/istream_sentry.cc: Likewise.
- * testsuite/27_io/ostream_inserter_char.cc: Likewise.
- * testsuite/27_io/ostream_inserter_other.cc: Likewise.
- * testsuite/27_io/streambuf.cc: Likewise.
- * testsuite/27_io/stringstream.cc: Likewise.
-
-1999-11-19 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * bits/valarray_meta.h: Don't forget to define tanh
-
-1999-11-18 Philip Martin <pm@corris.dircon.co.uk>
-
- * src/stl-inst.cc: Use typedef to refer to iterator
- * stl/bits/stl_algobase.h: Add traits based dispatch for
- __normal_iterator in the copy()algorithm
- * stl/bits/type_traits.h: Add _Is_normal_iterator trait support
-
-1999-11-18 Kevin Ediger <kediger@licor.com>
-
- * src/locale.cc (locale::_Imp::_Imp): Use auto_ptr to make
- constructors for locale::_Impl exception safe.
-
-1999-11-18 Scott Snyder <snyder@fnal.gov>
-
- * stl/bits/stl_queue.h: The C++ standard gives the default for the
- _Sequence template argument of priority_queue<> as vector<>, not
- deque<>.
-
-1999-11-18 Benjamin Kosnik <bkoz@gnu.org>
-
- * bits/std_sstream.h (stringbuf::_M_really_sync): Add __iend as a
- parameter.
- * bits/sstream.tcc: Adjust here too.
-
-1999-11-17 Benjamin Kosnik <bkoz@gnu.org>
-
- * bits/sbuf_iter.h (istreambuf_iter::equal): Tweak.
- * bits/istream.tcc (operator>>): Replace iostate(0) with
- iostate(ios_base::goodbit), which is the same thing, but hopefully
- a bit clearer.
- * bits/locale_facets.tcc (do_get(bool)): Streamline, deal with
- libraries issue list 17.
- (do_gets): Don't set goodbit explicitly, instead only set on
- failures as good bit is the default setting.
- * bits/ios_base.h (setf): Set correctly.
- * bits/fstream.tcc: Tweak.
- * bits/std_sstream.h (_M_really_sync): Fix ibuffer positioning for
- in|out bufs that are empty. . .
- * testsuite/27_io/istream_extractor_arith.cc (test03): Add.
-
-1999-11-16 Benjamin Kosnik <bkoz@gnu.org>
-
- * testsuite/27_io/streambuf.cc (class testbuf): Don't set _M_buf_size.
- * bits/std_streambuf.h (setp): Set _M_buf_size, _M_mode.
- Add comments "all about _M_buf."
- (setg): Set _M_mode.
-
-1999-11-16 Kevin Ediger <kediger@licor.com>
-
- * bits/locale_facets.tcc (_S_build_float_format): New function.
- (_S_output_float): New function.
- (num_put::do_put(double)): Use 'em.
- (num_put::do_put(long double)): Use 'em.
- * testsuite/27_io/ostream_inserter_arith.cc: New file.
-
-1999-11-15 Scott Snyder <snyder@fnal.gov>
-
- * bits/basic_file.h: Type of __off parm should be __c_streampos, to
- match how libio is calling us.
- * src/basic_file.cc (sys_seek): Likewise.
- * bits/std_fstream.h (basic_filebuf::sync): Restore sync call.
-
-1999-11-15 Benjamin Kosnik <bkoz@gnu.org>
-
- * docs/17_intro/contribute.html: Add link to assignment form.
- * docs/17_intro/libstdc++-assign.txt: New file.
-
- * mkcheck (TESTS_FILE): Move a copy of test files as well as
- output files.
-
- * bits/std_streambuf.h (_M_buf_bump): New function.
- * bits/streambuf.tcc: Mods to support _M_buf_bump.
- (xsputn): Here. Also add checks for output valid.
- (xsgetn): Add checks for input valid.
- (sputc): Here.
- (sgetc): Set _M_in_end to _M_buf + _M_buf_end.
- * bits/std_sstream.h (_M_really_sync): Set _M_buf.
- Set _M_out_end to variable-length-end.
- * bits/sstream.tcc (overflow): Use _M_buf_bump.
- (seekpos): Same.
- (seekoff): Same.
- * bits/fstream.tcc (std): Tweak formatting.
- (filebuf::overflow): Simplify.
- (filebuf::showmanyc): Same.
- (filebuf::underflow): Same.
- * testsuite/27_io/filebuf.cc: Fix.
- * testsuite/27_io/ostream_inserter_other.cc: Fix.
- * testsuite/27_io/ostream_inserter_other-2.tst: New file.
- * testsuite/27_io/stringbuf.cc: Tweak.
- * testsuite/27_io/streambuf.cc: Tweak.
- * testsuite/27_io/istream_extractor_other.cc: Fix.
-
-1999-11-11 Matthias Klose <doko@cs.tu-berlin.de>
-
- * stl_deque.h: Use static_casts<size_type>(signed_type).
-
-1999-11-11 Benjamin Kosnik <bkoz@gnu.org>
-
- Cleanups for callbacks, more regression hunting. Remaining
- failures (1) due to last unresolved stringstream issues, not
- regressions per se.
- * bits/std_fstream.h: Revert. Disable call to _M_file->sync as
- killing 27_io/filebuf.cc tests. . . need another solution.
-
- * bits/streambuf.tcc (_S_copy_streambufs): Fix.
- * testsuite/27_io/istream_extractor_other.cc: Tweak comments.
-
- * bits/basic_ios.h: Add cached facets here. UGH. The standard
- foils all attempts at a graceful, minimal implementation.
- * bits/basic_ios.tcc: Tweaks.
- * bits/istream.tcc: Fix.
- * bits/ostream.tcc: Fix.
- * bits/std_istream.h: Fix.
- * bits/std_ostream.h: Fix.
- * src/ios.cc (ios_base::imbue): Set _M_locale_ios before calling
- callbacks.
- * bits/locale_facets.tcc (std): Minor, minor formatting tweak.
- (_S_pad_numeric): Make comprehensible.
-
-1999-11-10 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/std_ostream.h: Add callbacks for _M_fnumput.
- (_S_ostream_fcache): New function.
- Move functions out-of-line.
- * bits/ostream.tcc: Put here.
-
- * bits/std_istream.h: Add callbacks for _M_fnumget.
- (_S_istream_fcache): New function.
- Move functions out-of-line.
- * bits/istream.tcc: Put here.
-
- * bits/basic_ios.tcc (basic_ios::imbue): Tweaks, remove call to
- _M_call_callbacks(), as ios_base::imbue does this already.
- * src/ios.cc (register_callback): Clean.
- (_M_call_callbacks): Same.
- * bits/ios_base.h: Callback work.
- * testsuite/27_io/ios_base_callbacks.cc (test01): New file.
-
-1999-11-10 Benjamin Kosnik <bkoz@cygnus.com>
- Matthias Klose <doko@cs.tu-berlin.de>
-
- * stl/ext/stl_rope.h: Fix initialization order.
-
-1999-11-09 Scott Snyder <snyder@fnal.gov>
-
- * bits/std_fstream.h (basic_filebuf::sync): Unconditionally call
- _M_file->sync() so that redirection works correctly.
-
-1999-11-09 Benjamin Kosnik <bkoz@gnu.org>
-
- * bits/istream.tcc: Re-order.
- * bits/std_istream.h: Fix getline problems.
- * testsuite/27_io/istream_unformatted.cc: New tests.
-
- Clean up regressions.
- * bits/std_sstream.h: Set initial stringbufs correctly.
-
-1999-11-09 Scott Snyder <snyder@fnal.gov>
-
- * stl_vector.h (_M_range_insert): Fix mixing pointers and
- vector::iterator.
- * testsuite/23_containers/vector_modifiers.cc (test01): New file,
- tests.
-
-1999-11-09 Benjamin Kosnik <bkoz@cygnus.com>
-
- * src/Makefile.am (CXXFLAGS): Add -Winline.
- * src/Makefile.in: Regenerate.
-
-1999-11-05 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * bits/valarray_meta.h (_DEFINE_EXPR_UNARY_FUNCTION): When
- building meta-expressions don't forget to take the contained
- closures.
-
-1999-11-02 Benjamin Kosnik <benjamin@cygnus.com>
-
- * configure: Regenerate.
-
-1999-11-02 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * bits/valarray_meta.h (_Expr<>::sum): Tweak. Use copy-initialization
- syntax.
- * bits/valarray_meta.h (min): Likewise.
- * bits/valarray_meta.h (max): Likewise.
-
-1999-11-01 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/std_sstream.h (_M_really_sync): Take into account in | out bufs.
- * bits/std_streambuf.h (_S_copy_streambufs): New function.
- * bits/streambuf.tcc: Define.
- * bits/istream.tcc (istream::operator>>(streambuf)): Rewrite.
- * bits/ostream.tcc (ostream::operator<<(streambuf)): Rewrite.
- * testsuite/27_io/ostream_inserter_other.cc: Add tests.
- * testsuite/27_io/ostream_inserter_other-1.tst: New file.
-
- * bits/basic_string.h: Explicitly cast npos to unsigned type,
- reported by Richard Atterer.
- * bits/char_traits.h: For consistency's sake, here too.
-
- * configure.in: Bump version to 2.90.7.
-
-1999-10-31 Benjamin Kosnik <bkoz@cygnus.com>
-
- * testsuite/27_io/ostream_inserter_char-1.tst: Check file output.
- * testsuite/27_io/ostream_inserter_char.cc (test05, test01): Add tests.
- * bits/streambuf.tcc (xsputn): Treat--size const char for long loops.
- (xsgetn): Same.
- * bits/sstream.tcc (seekpos): Tricks, mostly: check _M_mode before
- writing into buffer.
- (seekoff): Same.
-
-1999-10-29 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * bits/valarray_array.h (__valarray_sum): New function.
- * bits/valarray_array.h (__valarray_product): Same.
-
- * bits/std_valarray.h (valarray<T>::product): Comment out.
- * bits/std_valarray.h (valarray<T>::sum): Use __valarray_sum
- instead of accumulate.
-
- * src/valarray-inst.cc: Remove explicit intantiation of
- class multiplies<size_t>, accumulate, valarray<size_t>::product.
- * src/valarray-inst.cc (__valarray_product): Instantiate
- explicitly.
- * src/valarray-inst.cc (__valarray_product(const
- valarray<size_t>&)): New function.
- * src/valarray-inst.cc (gslice::_Indexer::_Indexer): Don't use
- valarray<size_t>::product. Use __valarray_product instead.
-
-
-1999-10-25 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/std_ostream.h (ostream.inserters.char): Correctly pad output.
- (_S_pad_char): New function. Not done: ios_base::internal.
- * bits/ostream.tcc: Clean for above.
- * bits/locale_facets.tcc (_S_fill): Remove ostreambufiterator
- specialization that was commented out, as ostreams now have to
- correctly deal with padding.
- * testsuite/27_io/ostream_inserter_char.cc (main): Add tests.
-
- * testsuite/21_strings/ctor_copy_dtor.cc(test02): Add test case
- from mailing list. This is a bug, and should be fixed.
- * testsuite/21_strings/inserters_extractors.cc (main): Tweak, fix typo.
-
-1999-10-22 Petter Urkedal <petter@matfys.lth.se>
-
- * stl/bits/stl_numeric.h (__power): Replaced argument name `__opr'
- to avoid conflict with gcc name mangling.
- * stl/bits/stl_algo.h (__transform): Same.
-
-1999-10-21 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/ios_base.h: Change argument names.
- * docs/17_intro/BADNAMES: Add __opr.
-
-1999-10-20 Benjamin Kosnik <bkoz@decepticon.cygnus.com>
-
- Work on compilation slowdowns from 10-5 to 10-12, which are
- related to the _Callback_list inlining/merge-ifcation, which is
- still a pending issue, but this stuff is necessary cleanup anyway.
-
- * src/ios.cc: Re-arrange.
- * bits/ios_base.h: Tweak.
- * bits/basic_ios.tcc: Move out of line definitions here, move
- small out-of-line definitions inline.
- * bits/basic_ios.h: From here.
-
- * bits/streambuf.tcc (pbackfail, overflow): Move back inline.
- * bits/std_streambuf.h: From here.
-
-1999-10-19 Benjamin Kosnik <bkoz@cygnus.com>
-
- * testsuite/27_io/istream_extractor_char.cc: Add tests.
- * bits/std_istream.h: Tweaks--set eofbit on eof condition.
- * bits/istream.tcc (operator>>(istream&, string&): Remove
- vestigial issspace hacks and use ctype::is instead.
- (getline): Remove unnecessary loops, fortify and pasteurize.
- (ws): Same.
-
-1999-10-18 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/istream.tcc (operator>>): Tweak.
- * bits/std_istream.h: Fix according to library issues list 68.
- Add typedefs.
-
- * bits/locale_facets.h: Fix table_size to be non-zero.
-
-1999-10-18 Vadim Egorov <egorovv@HotPOP.com>
-
- * src/basic_file.cc: ifdef instead of comment for binary mode
-
-1999-10-18 Russell Davidson <russell@qed.econ.queensu.ca>
-
- * bits/std_sstream.h: Stringbuf initialization based on actual,
- not allocated, size.
- * testsuite/21_strings/inserters_extractors.cc (test06): Add test
- case.
-
-1999-10-17 Benjamin Kosnik <bkoz@cygnus.com>
-
- * testsuite/26_numerics/c_math.cc (test03): Tweak.
- * testsuite/27_io/istream_manip.cc (test01): Corrections due to
- sentry change.
- * testsuite/21_strings/inserters_extractors.cc (test01): Same.
-
-1999-10-14 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/std_istream.h: Tweaks.
- * bits/istream.tcc (istream::sentry::sentry()): Simplify, correct
- as per issues list addition--set failbit, eof on empty buffers.
- * testsuite/27_io/istream_sentry.cc: New file.
-
-1999-10-12 Chris Prince <prince@wcug.wwu.edu>
-
- * bits/std_cstdio.h: Remove Solaris hacks.
-
-1999-10-12 Phil Edwards <philip.edwards@sn.wpafb.af.mil>
-
- * docs/index.html: Fix minor typos and tweaks.
- * docs/17_intro/contribute.html: Ditto.
- * docs/*/howto.html: Ditto. More "EGCS"->"GCC" conversion, notes on
- thread safety and binary I/O, links to external sites.
- * docs/faq/index.html: EGCS/GCC cleanup, new entries for Cygwin
- and MT.
-
-1999-10-12 Petter Urkedal <petter@matfys.lth.se>
-
- * bits/std_cmath.h (abs(float)): When ::absf is not present, call
- ::fabs(double) rather than ::abs(int).
-
-1999-10-11 Benjamin Kosnik <bkoz@milou.cygnus.com>
-
- * bits/std_streambuf.h: Fix minor blip--should explicitly return
- *gptr(), not the result of underflow.
- (pbackfail): Conform to default behavior.
- (overflow): Same.
- * bits/streambuf.tcc: Add out-of-line streambuf members.
- (xsputn): Tweak.
- (xsgetn): Tweak.
- * testsuite/27_io/streambuf.cc: New file.
- * testsuite/27_io/filebuf.cc: Correct test.
-
-1999-10-08 Benjamin Kosnik <bkoz@haight.constant.com>
-
- * bits/std_cmath.h: Correctly cast int to double.
- * testsuite/26_numerics/c_math.cc: Add test.
-
- * mknumeric_limits (OUT_C): Tweaks.
- * src/gen-num-limits.cc: Checks for WCHAR_MIN, WCHAR_MAX before
- trying to instantiate type_traits<wchar_t>.
- * acconfig.h: Add _GLIBCPP_HAS_WCHAR_MIN_MAX.
- * configure.in (LIBS): Plus checks for WCHAR_MIN, WCHAR_MAX.
- * configure: Regenerate.
-
-1999-10-06 Benjamin Kosnik <bkoz@milou.cygnus.com>
-
- * bits/streambuf.tcc (streambuf::xsgetn): Rewrite.
- (streambuf::xsputn): Put in break.
- Aiming for parity between these two (mostly) similar functions.
- Need to re-write tests.
-
- * bits/ios_base.h (ios_base::_M_copy_base): Remove declaration.
- Make data members protected, not private.
- * src/ios.cc (ios_base::_M_copy_base): Move _Callback_list into
- ios_base.h. As called only once, collapse into . . .
- * bits/basic_ios.h (basic_ios::copyfmt): Fix.
- (basic_ios::clear): Throw ios_base::failure on occasion.
- (basic_ios::exceptions): Fix.
- * testsuite/27_io/ios_members.cc (test02): Add tests.
-
- * bits/fpos.h: Default initialize.
- * testsuite/27_io/fpos.cc (test03): Add test.
-
-1999-10-04 Russell Davidson <russell@qed.econ.queensu.ca>
-
- * src/basic_file.cc: Fix open modes.
-
-1999-10-04 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * bits/locale_facets.tcc (num_get<>::do_get): Fix typo.
-
-1999-09-23 Benjamin Kosnik <bkoz@milou.cygnus.com>
-
- * bits/streambuf.tcc: Yea. Fix this for real.
- * testsuite/27_io/ostream_inserter_other.cc: Add file.
- * src/Makefile.*: Regenerate.
-
-1999-09-22 Benjamin Kosnik <bkoz@milou.cygnus.com>
-
- * bits/std_cstdlib.h: Add more linux-specif hacks to the header
- files so that stdtof and strtold will be declared. Some hacks
- already exits in bits/std_cctype.h -- these should all be removed
- at a later date.
- * bits/locale_facets.tcc: Add cstring.h include.
- _S_format_long: Use long, not int.
- Add std_limits.h include, for numeric_limits.
- * testsuite/27_io/istream.cc: Make instantiations work when using
- -fhonor-std.
- * testsuite/27_io/ostream.cc: Same.
-
-1999-09-21 Benjamin Kosnik <bkoz@milou.cygnus.com>
-
- * bits/fpos.h (fpos::operator streamoff): Make const, don't return
- a reference. Same for operators == and !=.
- * testsuite/27_io/fpos.cc: Add tests.
-
-1999-09-21 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * bits/valarray_array.h: Fix typo.
-
- * mknumeric_limits: Make sure we are regenerating things from
- scratch. Otherwise things get redefined. Not good.
-
-1999-09-20 Benjamin Kosnik <bkoz@milou.cygnus.com>
-
- * bits/std_ostream.h: Fix typo.
- * bits/std_istream.h: Same.
- * bits/std_iomanip.h: Same.
-
- * bits/istream.tcc (sentry::sentry()): Remove optional tie with
- ostream, as happens with underflow anyway.
- * testsuite/27_io/istream.cc (main): New file.
- * testsuite/27_io/ostream.cc (main): New file.
- * testsuite/27_io/istream_unformatted.cc: Add tests.
-
- * src/Makefile.am (headers): Add new file.
- * src/Makefile.in (headers): Regenerated.
-
- * bits/basic_ios.h: Remove local-related files.
- * bits/basic_ios.tcc: New file, add locale-related items.
- * src/misc-inst.cc: Add include of basic_ios.tcc, as a hack for now.
- * testsuite/27_io/ios_members_static.cc: Change to
- * testsuite/27_io/ios_base_members_static.cc: This.
- * testsuite/27_io/ios_members.cc: New file.
- * testsuite/27_io/stdios_basefield_manip: Change to
- * testsuite/27_io/ios_manip_basefield.cc: This.
- * testsuite/27_io/stdios_fmtflags_manip: Change to
- * testsuite/27_io/ios_manip_fmtflags.cc: This.
-
- * bits/fpos.h: Fix discarding qualifiers on this when
- using _M_position with a const fpos.
- * bits/std_iosfwd.h: Tweak.
- * testsuite/27_io/fpos.cc: New file.
-
-1999-09-17 Benjamin Kosnik <bkoz@milou.cygnus.com>
-
- * bits/streambuf.tcc (streambuf::xsputn): Tweak.
- * bits/ostream.tcc: Tweak.
- * testsuite/21_strings/inserters_extractors.cc (test04, test05):
- Add new regressions.
-
-1999-09-16 Benjamin Kosnik <bkoz@milou.cygnus.com>
-
- * bits/basic_ios.h: Inline, tweak.
- * bits/fstream.tcc (basic_filebuf::_M_really_overflow): Tweak,
- pass back accurate return value to basic_filebuf::overflow.
- * bits/streambuf.tcc (streambuf::xsputn): Fix overflow accounting.
- This fixes sstream problems reported in libstdc++/9, but screws up
- filebufs. That solution is pending.
-
-1999-09-15 Vadim Egorov <egorovv@1c.ru>
-
- * bits/streambuf.tcc (basic_streambuf::xsputn): Add check for
- zero count puts.
- * testsuite/21_strings/inserters_extractors.cc (test01): Add test.
-
-1999-09-08 Benjamin Kosnik <bkoz@milou.cygnus.com>
-
- * bits/c++config.h.in: Add emacs hints.
-
- * stl/bits/stl_range_errors.h: Don't define here, for now define
- in stdexcept.cc along with string inlines __length_error, etc.
- * src/stdexcept.cc: Define here.
- * stl/bits/stl_config.h (__STL_CAN_THROW_RANGE_ERRORS): Enable, so
- at(size_t) will be declared/defined.
- (__STL_THREADS): Fix mess surrounding use of this, enable.
-
-1999-08-31 Benjamin Kosnik <bkoz@milou.cygnus.com>
-
- * testsuite/27_io/istream_extractor_arith.cc: Fix.
- * src/localename.cc: Tweak formatting, fix assignment to
- const compiler errors.
-
-1999-08-25 Benjamin Kosnik <bkoz@cygnus.com>
-
- * acconfig.h: Add absf, cosf.
- * configure.in (use_builtin_sinf): Same.
- * configure: Regenerate.
- * bits/std_cmath.h: Add mess of defines.
- * testsuite/26_numerics/modf_float.cc: Change to
- * testsuite/26_numerics/c_math.cc: This.
-
- * src/locale.cc: Change.
- * bits/locale_facets.h: Fix.
- * testsuite/22_locale/ctype.cc: Add temporary tests.
-
-1999-08-24 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/fpos.h: Test.
-
- * docs/index.html: Add powerpc-linux-gnu results with gcc-2.95.1.
- Fix database name for "libstdc++".
-
-1999-08-23 Benjamin Kosnik <bkoz@cygnus.com>
-
- * mknumeric_limits (numeric_limits): Add default definitions to
- member functions.
- * testsuite/18_support/numeric_limits.cc: New file.
-
-1999-08-18 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/std_istream.h: Correct initialization.
- * bits/std_ostream.h: Likewise.
- * bits/std_sstream.h: Likewise.
- * bits/std_fstream.h: Likewise.
- * testsuite/27_io/stringstream.cc: Add test case.
-
- * bits/std_sstream.h: Replace ____string_type with __string_type.
- * bits/basic_ios.h (basic_ios::rdbuf(sb*): Call clear(), as required.
- * bits/std_ostream.h: Tweak dtor.
-
-1999-08-17 Benjamin Kosnik <bkoz@decepticon.cygnus.com>
-
- * src/Makefile.am (CXXFLAGS): Add -O2.
- * src/Makefile.in: Likewise.
-
- * src/gen-num-limits.cc: Conditionally allow wchar_t. See what
- this breaks. . .
- * mknumeric_limits (numeric_limits): Uglify.
-
- * bits/std_istream.h: Fix warnings.
- * bits/locale_facets.tcc: Collateral damage from
- char_traits<char>::int_type change.
-
- * testsuite/27_io/istream_extractor_char.cc: Terminate strings.
-
-1999-08-17 Benjamin Kosnik <bkoz@decepticon.cygnus.com>
-
- * docs/index.html: Add mailing list form.
- * docs/27_io/howto.html: Add link to iostreams_hierarchy.pdf.
-
-1999-08-16 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/streambuf.tcc (streambuf::xsputn): Allow copies to continue
- if overflow successfully allocates more space.
- * bits/std_sstream.h: Adjust comments.
- * bits/sstream.tcc (stringbuf::overflow): Copy buffer into string
- before overflow forces a resize.
- * testsuite/27_io/ostream_inserter_char.cc: New file.
-
- * bits/std_fstream.h: Remove declaration.
- * bits/fstream.tcc: Move uflow.
- * bits/std_streambuf.h: To here.
- * bits/streambuf.tcc: Make consistent.
-
- * src/Makefile.am (WERROR): Enable.
- * src/Makefile.in: Regenerate.
- * bits/sbuf_iter.h: Tweak.
- * bits/char_traits.h: (char_traits<wchar_t>::eof): Use WEOF.
- Use unsigned int as char_traits<char>::int_type.
-
- * bits/ostream.tcc (ostream::putc(char)): Tweak.
- * testsuite/27_io/iostream_objects.cc: Terminate string.
- Move cin::operator>>(char*) test to extractor_char.cc.
- * testsuite/27_io/stringstream.cc: Add stringstream instantiation.
- * bits/std_istream.h (basic_iostream): Make explicit definition
- for default ctor.
- * bits/std_sstream.h: Fix typos.
- * bits/fstream.tcc (_M_init_filebuf): Set to indeterminate for
- basic_filebuf ctor with fileno open arguments. Thus, filebufs are
- initialized in a consistent manner, no matter if the underlying
- FILE/bit bucket is a tty or a text file or some other imaginary
- construct. This and setting _M_buf_size to 1 for cin allows
- istream::get(char) to work in a manner consistent with what others
- expect.
-
- * docs/index.html: Link Stroustrup's C++ page.
-
-1999-08-12 Michael Cook <cook@sightpath.com>
-
- * bits/fstream.tcc: Fix signed/unsigned -Wall warning.
- * bits/istream.tcc: ditto.
- * bits/sbuf_iter.h: ditto.
- * bits/std_istream.h: ditto.
- * src/Makefile.am: Add -Wall to CXXFLAGS.
- * src/Makefile.in: ditto.
-
-1999-08-12 Benjamin Kosnik <bkoz@tintin.cygnus.com>
- Russell Davidson <russell@ehess.cnrs-mrs.fr>
-
- * bits/locale_facets.tcc (_M_extract): Finish off patch from yesterday.
- * src/Makefile.am (myinstallheaders): Tweak, remove PHONY.
-
-1999-08-11 Benjamin Kosnik <bkoz@tintin.cygnus.com>
-
- * testsuite/27_io/istream_unformatted.cc: New file.
-
- * testsuite/27_io/istream_extractor_arith.cc (test02): Add more
- elaborate tests for int types with noskipws.
-
- * testsuite/27_io/istream_extractor_other-1.txt: New file.
- * testsuite/27_io/istream_extractor_other-1.tst: New file.
- * testsuite/27_io/istream_extractor_other-2.tst: New file.
- * testsuite/27_io/istream_extractor_other.cc: Add tests.
- * bits/istream.tcc: Fix operator>>(streambuf*).
-
- * testsuite/23_containers/vector_ctor.cc (test01): Add.
-
- * docs/index.html: Remove references to egcs.
- * docs/17_intro/DESIGN: Same.
- * docs/17_intro/contribute.html: Same.
- * docs/17_intro/RELEASE-NOTES: Ditto.
- * docs/17_intro/howto.html: Same here.
-
- Russell Davidson <russell@ehess.cnrs-mrs.fr>
- * stl/bits/stl_vector.h (_M_insert_aux):
- * bits/locale_facets.tcc (_M_extract): Tweaks for preliminary
- decimal/floating point support.
- * bits/locale_facets.h: Change _M_extract prototype.
- * bits/char_traits.h (char_traits::to_int_type): Cast to unsigned.
- * bits/std_istream.h (istream::read(char_type, streamsize)): Fix.
-
-1999-08-10 Michael Cook <cook@sightpath.com>
-
- * bits/fstream.tcc: Fix for unused variable warning (-Wall).
- * bits/ios_base.h: ditto.
- * bits/istream.tcc: ditto.
- * bits/locale_facets.h: ditto.
- * bits/locale_facets.tcc: ditto.
- * bits/std_streambuf.h: ditto.
- * src/basic_file.cc: ditto.
- * src/locale.cc: ditto.
- * src/localename.cc: ditto.
-
-1999-08-10 Kirat Singh <singhki@jany.gs.com>
-
- * bits/std_iomanip.h: Inline.
-
-1999-08-10 Alfred Minarik <a8601248@unet.univie.ac.at>
-
- * bits/std_streambuf.h: Correct member initialization order.
- * src/ios.cc: Add definitions for ios_base data members.
-
-1999-08-06 Phil Edwards <pedwards@ball.com>
-
- * docs/index.html: Seventh snapshot updates. Minor tweaks.
- * docs/faq/index.html: Ditto. Removed bugs sections that have
- been fixed for a long time... Lots of "egcs" references still
- exist.
- * docs/faq/index.txt: Regenerated.
-
-1999-08-05 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
- Andreas Amann <amann@physik.tu-berlin.de>
-
- * testsuite/26_numerics/binary_closure.cc (main): new test.
-
-1999-07-29 Andreas Amann <amann@physik.tu-berlin.de>
-
- * bits/valarray_meta.h: (_BinClos<>::_Binclos): fix typo causing
- segmentation fault.
-
-1999-08-04 Benjamin Kosnik <bkoz@decepticon.cygnus.com>
-
- * docs/index.html (host): Put in testing status.
-
-1999-08-03 Benjamin Kosnik <bkoz@cygnus.com>
-
- * docs/index.html: Update for libstdc++-2.90.6 release.
- * docs/17_intro/RELEASE-NOTES (New): Update.
- * docs/17_intro/BUGS: Update.
- * bits/c++config.h.in (__GLIBCPP__): Bump version number.
- * README (file): Update.
-
-1999-08-03 Benjamin Kosnik <bkoz@cygnus.com>
-
- * src/Makefile.am (generated_headers): Remove bits/c++config.h as
- a target.
- ($(generated_headers)): Same.
- * src/gen-c++config.cc: Remove, rename to
- * bits/c++config.h.in: New file. Bump version number.
- * configure.in: Generate bits/c++config.h at configure time.
- * math/mathconf.h: include bits/c++config.h, not config.h.
-
- * bits/std_cmath.h: Fix remaining link error for solaris shared
- builds. _GLIBCPP_HAS_BUILTIN_SINF has to be disabled for the time
- being, as on Solaris this silently calls sinf, which does not
- exist.
-
- * src/complex.cc: More tweaks.
-
-1999-08-03 Benjamin Kosnik <bkoz@cygnus.com>
-
- * src/complex.cc: Same.
- * math/complex-stub.h: Change.
- * math/c_log10*.c: Change back to clog10*.c.
-
- * configure.in (NEED_C_LOG10): Delete.
- * configure: Regenerate.
- * math/Makefile.am: Change.
-
-1999-07-30 Benjamin Kosnik <bkoz@cygnus.com>
-
- * math/Makefile.am: Fix, for real.
- * configure.in (use_builtin_sinf): Ok, make autoconf solution.
- * math/clog.c: Move to c_log.c.
- * math/clog*: Ditto.
- * math/c_log10l.c (c_log10l): Change function name.
- * math/c_log10f.c (c_log10f): Change function name.
- * math/c_log10.c (c_log10): Change function name.
-
- * math/complex-stub.h: Change to c_log* variants.
- * src/complex.cc: And here.
-
-1999-07-29 Benjamin Kosnik <bkoz@cygnus.com>
-
- * testsuite/27_io/istream_extractor_other.cc: Correct last test.
- * bits/sstream.tcc (stringbuf::overflow): Don't update the input
- sequence, just the output sequence.
- * bits/std_sstream.h (stringbuf::str()): Only in stringbufs return
- the original string, all others use complicated heuristic.
-
- * src/complex.cc: Assume c_log10.
- * math/Makefile.am (EXTRA_yes): Fix c_log/c_logf unresolved
- symbols in shared libraries by making c_log/c_log10 part of the
- "must cmpile" sources. This may not work on solaris, must check.
-
-1999-07-29 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/istream.tcc (operator>>(streambuf*)): Re-do.
- * bits/std_istream.h: Fix char extractors.
- * testsuite/27_io/istream_extractor_char.cc: Change.
- * testsuite/27_io/istream_extractor_other.cc: Add tests.
-
-1999-07-28 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/std_cctype.h: Fix for solaris2.6 builds.
-
- * bits/istream.tcc: Fix, thanks Alfred.
- * bits/std_istream.h: Formatting changes.
-
- * libio/Makefile.am (libio_la_SOURCES): Remove cleanup.c, so that
- _IO_cleanup will not be undefined.
- * libio/*: Regenerate.
-
- * bits/basic_string.h: More namespace-safety stuff.
- * testsuite/27_io/istream_extractor_char.cc: Fix.
- * testsuite/27_io/istream_extractor_arith.cc: Fix.
- * testsuite/27_io/iostream_objects.cc: Fix.
- * testsuite/27_io/ios_ctor.cc: Fix.
- * testsuite/27_io/istream_manip.cc: Make namespace safe.
- * testsuite/27_io/istream_extractor_other.cc: New file.
-
- * mkcheck (TESTS_FILE): Tweaks.
-
-1999-07-27 Benjamin Kosnik <bkoz@cygnus.com>
-
- * src/gen-c++config.cc: Note here, change version.
- * acconfig.h( _GLIBCPP_USE_CTYPE_ISBIT): New macro.
- * src/locale.cc: Used here.
- * configure.in (use_builtin_sinf): Check for _ISBit using autoconf.
-
- * aclocal.m4: Regenerate by running `aclocal -I m4.`
-
- * bits/istream.tcc: Fix.
- * bits/std_istream.h: More changes to extractors.
-
- * testsuite/27_io/istream_extractor_char.cc: More.
- * testsuite/21_strings/inserters_extractors.cc (test01): Fix logic
- error in testsuite construction.
-
- * bits/std_istream.h: Partially revert.
- * bits/std_ostream.h: Same.
- * bits/std_sstream.h: Revert.
-
-1999-07-26 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/std_sstream.h: Change initialization.
- * bits/std_ostream.h: Make default ctor/assign/operator= private.
- * bits/std_istream.h: Same, also correct sentry args.
- * bits/istream.tcc: Add correct sentry args.
-
- * testsuite/27_io/istream_extractor_char.cc: New file.
- * testsuite/27_io/istream_extractor_arith.cc: New file, old file,
- name changes making me dizzy.
-
-1999-07-26 Ulrich Drepper <drepper@happy.cygnus.com>
- Benjamin Kosnik <bkoz@cygnus.com>
-
- * aclocal.m4, config.guess, config.sub, ltconfig ltmain.sh: Update
- to libtool 1.3.3.
-
-1999-07-26 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * bits/std_complex.h: Tweak. Make the primary template class
- complex work with user-defined numerical types. Provide member
- definitions. Restructure.
- (class complex<float>): Uglify. Remove __value(). Rename __val
- to _M_value. Rename __complex_value_type to _ComplexT. Make it
- private. Remove dependency on __value(). Fix various explicit
- specialization syntax. Declare a some functions friend. Now the
- implementation is nearly comforming.
- (class complex<double>): Likewise.
- (class complex<long double>): Likewise.
-
- * src/complex.cc: Tweak. Remove dependency on complex::__value().
- (sin, sinh, tan, than): Fix call to corresponding C9x function
- syntax.
-
-1999-07-24 Benjamin Kosnik <bkoz@fidel.cygnus.com>
-
- * bits/istream.tcc (ws): Fix error with failbit being set.
-
- Disabled due to egcs/gcc-2_95 internal compiler errors.
- * src/Makefile.am (CXXFLAGS): Add -fsquangle -fhonor-std
- -fnew-exceptions. Compiling with namespaces enabled will now be
- the default.
- * mkcheck (CXX_FLAG): Same.
- * src/gen-c++config.cc (_GLIBCPP_USE_NAMESPACES): Yup. New macro.
- * bits/std_cctype.h: Not enough to just define in namespace std if
- ctype-isms are macros. Need to also define in namespace std:: if
- the C functions are just plain functions.
-
- * src/gen-num-limits.cc: Fix spelling inconsistencies.
-
-1999-07-24 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * docs/18_support/howto.html: Start documentation. Need to keep
- track of the ongoing discussion in th LWG reflector.
-
- * src/gen-num-limits.cc: Tweak.
- (class predicate): New class.
- (class value): Likewise.
- Make the whole machinery more flexible. Add comments.
-
-1999-07-23 Benjamin Kosnik <bkoz@fidel.cygnus.com>
-
- * bits/ios_base.h: Move state/exception functions into basic_ios.
- * bits/basic_ios.h: Same.
- * src/ios.cc: And here. Callbacks don't attempt to reset
- state now.
-
- * bits/std_streambuf.h: Separate ios and streambuf locale data
- members and cached facets. Using this convention: _M_locale_buf for
- the streambuf-related classes, and _M_locale_ios for the ios
- hierarchy.
- * bits/fstream.tcc: And here.
- * bits/basic_ios.h: And here. Also, add cached ctype.
- * src/ios.cc: Ditto.
- * bits/ios_base.h: Ditto.
- * bits/std_istream.h: Use cached ctype facet.
- * docs/27_io/iostreams_hierarchy.pdf: Update for new data member
- arraignment.
-
- * testsuite/27_io/ios_ctor.cc: New file.
- * src/ios.cc: Move _M_state init to basic_ios::init().
- * bits/basic_ios.h: To here.
-
- Attempt for some consistency in naming for testsuite/27_io/*.cc.
- * testsuite/27_io/boolfmt.cc: Rename to stdios_fmtflags_manip.cc
- * testsuite/27_io/octfmt.cc: Rename to stdios_basefield_manip.cc
- * testsuite/27_io/istream_manip.cc: Rename to istringstream_manip.cc.
- * testsuite/27_io/ostream_manip.cc: Rename to ostringstream_manip.cc.
-
-1999-07-22 Benjamin Kosnik <bkoz@fidel.cygnus.com>
-
- * src/ios.cc: Tweak initializations of standard iostream
- objects to closely match the standard. Tie cin/wcin, set flags on
- cerr/wcerr
- * bits/char_traits.h: Change from size_t to int_type, as per
- standard. As per wide streams.
- * bits/basic_ios.h: Infect with __ctype_type, as a preparation
- for caching a bunch of ctype info. For instance, ctype_base::space
- info needs to be stored somewhere, somehow.
- * bits/std_istream.h: Also here.
- * bits/std_ostream.h: Ditto.
- * bits/std_istream.h (operator>>(istream, char): Aggh. Fixup.
- * testsuite/27_io/iostream_objects.cacc (test01): Oh yeah. Fix
- stream states.
-
- * bits/istream.tcc (ws): Fix.
- * testsuite/27_io/istream_manip.cc: New file, test ws.
- * testsuite/27_io/ostream_manip.cc: New file, test endl, ends, flush.
-
- * bits/basic_string.h: Provide a specialized member function for
- _S_find<char> using strchr.
- * src/string-inst.cc: Put specializations here.
- * bits/string.tcc: Small fix for find, remove typo.
- * testsuite/21_strings/find.cc (test01): Add tests to catch this
- find bug. . .
-
-1999-07-20 Benjamin Kosnik <bkoz@decepticon.cygnus.com>
-
- * bits/basic_ios.h: Put into basic_ios namespace.
- Tweak widen/narrow.
-
-1999-07-19 Benjamin Kosnik <bkoz@decepticon.cygnus.com>
-
- * bits/std_sstream.h (stringbuf::sync): Change to _M_really_sync,
- adjust _M_*_cur pointers inside the function, so callee doesn't
- have to adjust.
- * bits/sstream.tcc (stringbuf::overflow): Tweak.
-
- * mkcheck: Tweak. Add execution time field, even though it is not
- implemented yet. Simplify pass/fail status notation.
-
-1999-07-18 Mumit Khan <khan@xraylith.wisc.edu>
-
- * configure.in: Check for float.h and underscored version of
- math functions.
- * acconfig.h: Add @BOTTOM@ section for handling underscored
- math functions.
- * configure: Regenerate.
- * config.h.in: Regenerate.
- * math/mathconf.h (float.h): Include conditionally.
- (M_PI): Define conditionally.
- (INFINITE_P): Define for Mingw.
- * bits/locale_facets.tcc: Workaround for compiler crash on
- ix86-*-mingw32.
- * bits/std_cwchar.h (bits/std_cstddef.h): Include.
- * src/locale.cc (bits/std_istream.h): Include.
- (bits/std_ostream.h): Likewise.
-
-1999-07-18 Phil Edwards <pedwards@ball.com>
-
- * docs/faq/index.html: Updated __black_count notes, fixed typos.
- * docs/faq/index.txt: Regenerated.
-
-1999-07-15 Benjamin Kosnik <bkoz@decepticon.cygnus.com>
-
- * testsuite/27_io/stringbuf.cc: Cccchanges, latent bugs.
-
- * bits/sstream.tcc (stringbuf::overflow): Modify accounting of
- newly-allocated buffer.
- * bits/streambuf.tcc (streambuf::xsgetn): Aaaaaah. Fix final
- overflow condition bits.
-
-1999-07-14 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/std_sstream.h (stringbuf::_M_init_stringbuf): Set
- _M_buf_size to initial _M_string.size(), even though for
- ostringstreams it is pretty pointless. It's necessary for
- istringstreams.
- (stringbuf::str()): Adjust.
- (stringbuf::str()): Adjust, call _M_init_stringbuf.
- * bits/streambuf.tcc (streambuf::xsgetn): Adjust return value for
- overflow's possible success.
- (streambuf::xsputn): Adjust.
-
- * testsuite/27_io/filebuf.cc: Adjust for the xsgetn re-write from
- yesterday.
- * testsuite/27_io/stringbuf.cc: Tweak.
- * testsuite/21_strings/inserters_extractors.cc (test01): Remove
- notes to myself.
- * testsuite/23_containers/vector_cons.cc: Rename to be consistent
- with other constructor tests to. . .
- * testsuite/23_containers/vector_ctor.cc: New file.
-
-1999-07-14 Alfred Minarik <a8601248@unet.univie.ac.at>
-
- * testsuite/*: Changes to make the testsuit compilable with
- -fhonor-std. Contains direct qualification of library names with
- std::.
-
-1999-07-13 Benjamin Kosnik <bkoz@decepticon.cygnus.com>
-
- * bits/streambuf.tcc: Tweaks.
- (streambuf::xsputn): Optimize, fix for sstreams.
- (streambuf::xsgetn): Same.
- * bits/sstream.tcc (stringbuf::overflow): Adjust _M_buf_size
- correctly, handle overflow/reallocate conditions correctly.
- * bits/std_sstream.h: Fix typo.
- _M_init_stringbuf(): Fix _M_buf_size initialization.
- (stringbuf::str()): Construct return string if output has occurred.
-
- * bits/basic_string.h: Fix typo from yesterday's patch.
-
-1999-07-12 Ryszard Kabatek <kabatek@chemie.uni-halle.de>
-
- * bits/string.tcc: _M_mutate - clear _M_state again.
- * bits/basic_string.h: In the three functions that return
- an iterator set _M_state to -1 before return.
- Also optimized two cases of operator+.
-
-1999-07-12 Phil Edwards <pedwards@ball.com>
-
- * docs/index.html: Expand egcs-1.1.2 notes/links.
- * docs/faq/index.html: And here. Add links to LWG issues-list.
- * docs/faq/index.txt: Regenerate. (lynx rocks)
- * docs/21_strings/howto.html: Fix notes on case conversion.
- * docs/21_strings/stringtok_h.txt: Goodly spelling...
- * docs/23_containers/howto.html: Stub for bitmasks.
- * docs/27_io/howto.html: Add section on buffering, stub binary.
-
-1999-07-12 Nathan Myers <ncm@cantrip.org>
-
- * stl/bits/stl_tree.h (__black_count): Optimize.
-
-1999-07-09 Vadim Egorov <egorovv@1c.ru>
-
- * src/basic_file.cc: Cleanup in __basic_file destructor.
-
-1999-07-08 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/std_streambuf.h: Changes. . .
- * bits/streambuf.tcc: Merge xsputn from filebuf into xsputn in
- basic_streambuf, to be used for both filebufs and streambufs.
- * bits/std_fstream.h (_M_init_filebuf): New function.
- Take out specialized xsputn, put into basic_streambuf.
- * bits/fstream.tcc: Define, call from both ctors.
- * bits/std_sstream.h (_M_init_stringbuf): New function.
- * bits/sstream.tcc: Tweak.
-
- * docs/27_io/iostreams_hierarchy.pdf: New file.
-
- * docs/17_intro/CHECKLIST (basic_string<char>): Validation and
- acceptance. Wooo-hoo!
-
- * bits/char_traits.h: Change int_type for char_traits general
- template, so that 21_strings/capacity.cc will compile.
- * testsuite/21_strings/capacity.cc: Add operators.
-
- * bits/string.tcc (string::compare): Clean up, re-implement.
- * testsuite/21_strings/compare.cc: Tweak.
-
- * bits/string.tcc (string:_M_mutate): Keep leaked value in
- _M_state, which means that whenever begin() or end() has been
- called, the string is unshareable, period. By doing this, insert
- and erase member functions that return iterators can remain
- footloose and fancy free.
- * testsuite/21_strings/invariants.cc: Update.
-
- * bits/basic_string.h (string::append): Fix self-referential
- problems, ie when "this" is also an argument to a member function.
- * bits/string.tcc: Tweak, same.
- * testsuite/21_strings/append.cc: New file.
-
-1999-07-07 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/char_traits.h: Tweaks.
- * bits/basic_string.h: Tweak.
- * bits/fstream.tcc: Remove warning for _M_buf_size assignment.
-
-1999-07-06 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/std_streambuf.h: Absorb/acquire data members previously
- working in basic_filebuf.
- * bits/streambuf.tcc: Tweaks.
- * bits/fstream.tcc: Adjust.
- * bits/std_fstream.h: Move and rename the following functions:
- _M_set_ideterminate, _M_is_indeterminate, _M_set_determinate are
- now declared and defined in the base class, basic_streambuf. Oh
- fuck it, move data members _M_buf, and _M_buf_size into
- basic_streambuf as well.
-
- * bits/ostream.tcc: Tweak.
- * bits/locale_facets.tcc: Fix typo in comments.
-
- * testsuite/21_strings/inserters_extractors.cc (test01): Change
- state from good to not good, as eof() is set.
-
-1999-07-05 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/char_traits.h (char_traits::compare). Fix.
-
- * config.guess, config.sub: Update.
-
-1999-07-02 Ryszard Kabatek <kabatek@chemie.uni-halle.de>
-
- * bits/string.tcc: Check the __res_arg for a length error.
-
-1999-07-01 Benjamin Kosnik <bkoz@nabi.net>
-
- * bits/std_streambuf.h: Tweaks. Need to move _M_is_indeterminate
- and related functions into basic_streambuf, from basic_filebuf to
- take care of ostringstreams and empty strings. So that's groovy,
- or will be groovy.
- * bits/std_istream.h: Tweaks.
- * bits/istream.tcc: Implement ws, getline, operator>> for string.
- * bits/std_ostream.h: And here.
- * bits/ostream.tcc: Same.
- * src/misc-inst.cc: Add instantiations for ws.
-
- * src/string-inst.cc: Add instantiations for inserters and
- extractors (operators << and >>, getline).
-
- * testsuite/21_strings/inserters_extractors.cc: Amazingly enough,
- a testcase for getline and operators << and >>. Ostream tests are
- failing right now, but istream tests should work. . .
-
- * bits/string.tcc: Change _S_max_size, as GNU malloc won't budge.
- * bits/std_sstream.h: Revert.
-
- * testsuite/17_intro: header_[iosfwd, ios, iostream, iomanip,
- istream, ostream, streambuf, fstream, sstream].cc: New files.
-
-1999-06-30 Ryszard Kabatek <kabatek@chemie.uni-halle.de>
-
- * bits/std_sstream.h (stringbuf::sync): Don't use string::begin()
- and string::end().
-
- * bits/basic_string.h (basic_string<>::_S_copy_chars): Add
- specializations for _CharT*, iterator and const_iterator.
- * src/string-inst.cc: Remove explicit instantiation, as
- now explicitly specialized.
-
- * bits/basic_string.h: Add a size_type parameter to _M_clone with
- a default value set to 0.
- * bits/string.tcc: In _M_clone by the call of _S_create add the
- value of the new parameter to _M_length. In reserve check
- _M_state and use _M_clone instead of _M_mutate.
-
-1999-06-30 Benjamin Kosnik <bkoz@happy.cygnus.com>
-
- * bits/basic_string.h: Fix _S_max_size.
- * bits/string.tcc: Add def here.
- * testsuite/21_strings/insert.cc: Fix.
-
- * bits/sbuf_iter.h: Remove detritus.
- * testsuite/24_iterators/istreambuf_iterator.cc: Add tests.
-
- * src/locale-inst.cc: Elaborate iterator/locale instantiations
- to resolve alpha-osf4 build problems.
-
-1999-06-29 Benjamin Kosnik <bkoz@happy.cygnus.com>
-
- * bits/string.tcc: Fix signed/unsigned issues in compares.
- * stl/bits/stl_deque.h: And here.
- * stl/bits/stl_string_fwd.h: Remove __get_c_string.
-
-1999-06-29 Ryszard Kabatek <kabatek@chemie.uni-halle.de>
-
- * bits/string.tcc: New implementation and interface of _M_mutate.
- Adapt the change in all functions that call _M_mutate.
- * bits/basic_string.h: And here.
-
-1999-06-29 Benjamin Kosnik <bkoz@happy.cygnus.com>
-
- * testsuite/21_strings/capacity.cc (test01): Fix.
-
-1999-06-29 Phil Edwards <pedwards@ball.com>
-
- * mknumeric_limits: Exit script if gen-num-limits isn't built.
-
-1999-06-29 Andreas Gruenbacher <agruenba@pent224.infosys.tuwien.ac.at>
-
- * stl/bits/stl_vector.h: Fix.
- * testsuite/23_containers/vector_cons.cc: Add.
-
-1999-06-29 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * mknumeric_limits (LDFLAGS): fix.
-
-1999-06-29 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * mknumeric_limits (LDFLAGS): set it according to the system.
-
- * math/mathconf.h (NAN): Check whether host is running under
- Cygwin and make the appropriate definition.
- * math/complex-stub.h (nan): protect declaration.
-
-1999-06-28 Benjamin Kosnik <bkoz@haight.constant.com>
-
- * bits/sbuf_iter.h: Rename internal data structure to prevent
- confusion between basic_ios and istreambuf_iterators internal
- basic_streambuf data member.
- * testsuite/24_iterators/istreambuf_iterator.cc: New file.
-
- * bits/basic_string.h: Remove conditionals, add input_iterator
- version of S_construct again.
- * bits/string.tcc: Same.
- * src/string-inst.cc: And add explicit instantiation here.
-
- * src/gen-c++config.cc (_GNU_SOURCE): Take out both _GNU_SOURCE
- and __USE_GNU macro defines, as single __USE_GNU use leading to
- confusion on glibc2.1 systems (ie, RedHat 6.0).
-
- * src/Makefile.am (headers): Add std_utility to installed headers.
-
-1999-06-25 John Potter <jpotter@eagle.lhup.edu>
-
- * stl/bits/stl_tree.h (insert_unique): Revert, just fix insert_equal.
-
-1999-06-25 Gilles Zunino <Gilles.Zunino@hei.fr>
-
- * mknumeric_limits (LDFLAGS): Swap -lc and -lgcc.
-
-1999-06-24 Benjamin Kosnik <bkoz@tintin.cygnus.com>
-
- * src/gen-c++config.cc (_GLIBCPP_*): Change all
- macros to include _GLIBCPP as a distinct namespace.
- * bits/*: And here.
- * src/*: And here.
-
- * stl/bits/std_stdexcept.h: Forward-declare __Named_exception ctor.
- * bits/basic_string.h: Remove __get_c_string.
- * src/stdexcept.cc: Define ctor here.
- * bits/ios_base.h: And fix ios_base::failure as well.
- * src/ios.cc: Define here.
-
- * bits/std_streambuf.h: Add a private copy ctor and assignment
- operator wrapped in _G_RESOLVE_LIB_DEFECTS.
- * bits/ios_base.h: And here too.
-
- * bits/basic_string.h: Tweak.
- * testsuite/21_strings/nonmember.cc: Add operator+ tests.
-
- * src/valarray.cc: Rename to. . .
- * src/valarray-inst.cc: This.
- * src/Makefile.am (sources): Change here.
- * src/Makefile.in: Regenerated.
-
-1999-06-24 Vadim Egorov <egorovv@1c.ru>
-
- * bits/string.tcc(basic_string<>::_Rep::_S_create): Fixed
- allocated size
-
-1999-06-24 Benjamin Kosnik <bkoz@tintin.cygnus.com>
- Tom Tromey <tromey@cygnus.com>
-
- * configure.in (use_glibc2): Eek, correct for non-glibc systems.
- Use AM_CONDITIONAL to get us out of this jam. .
- * libio/Makefile.am: Same.
- * */Makefile: Regenerated.
-
-1999-06-24 Benjamin Kosnik <bkoz@tintin.cygnus.com>
- John Potter <jpotter@eagle.lhup.edu>
-
- * stl/bits/stl_tree.h (insert_equal): Fix.
- * testsuite/23_containers/multiset.cc: New file.
-
-1999-06-23 Benjamin Kosnik <bkoz@cygnus.com>
-
- * configure.in (test for glibc2): Correct AC_TRY_COMPILE so that
- this works correctly on glibc-2 systems. This should allow
- simplified linking on these systems, and successful linking on Red
- Hat 6.0 systems.
- * configure, Makefile: Regenerate.
-
- * bits/std_cwctype.h: Add missing 'w' to _S_iswpunct_helper name.
-
- * testsuite/ext: New directory.
- * testsuite/ext/headers.cc: New file.
-
-1999-06-23 Vadim Egorov <egorovv@1c.ru>
-
- * stl/ext/hash_set: include missing headers
- * stl/ext/hash_map: Same
- * stl/ext/slist: Same
-
-1999-06-17 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * bits/std_cmath.h: comment out modf. Kills build on hpux10.20
-
-1999-06-15 Benjamin Kosnik <bkoz@cygnus.com>
-
- * src/Makefile.am (sources): Regenerate.
- * mkcheck: Add TESTS_FILE as a way of controlling what testcases
- are run.
-
-1999-06-14 Benjamin Kosnik <bkoz@cygnus.com>
-
- * src/string-inst.cc: Change _S_construct signature, to
- track requested allocation size versus valid input iterator range.
- * bits/basic_string.h: Here too.
- * bits/string.tcc: And here.
-
-1999-06-12 Benjamin Kosnik <bkoz@cygnus.com>
-
- * mkcheck (LOG_FILE): Correctly append errors.
-
- * stl/bits/stl_iterator.h: Revert previous, delirious, change.
-
- * bits/basic_string.h: Change _Rep::_M_data to _Rep::_M_refdata,
- to clarify differences between basic_string::_M_data() calls and
- _Rep::_M_data() calls.
- * bits/std_string.h: Fix.
- Put in check for out_of_range in substr.
- * bits/string.tcc: Fix for _S_find.
-
- * testsuite/21_strings/compare.cc: Add tests.
- * testsuite/21_strings/find.cc: New file.
- * testsuite/21_strings/substr: New file.
- * testsuite/21_strings/replace.cc: New file.
-
-1999-06-11 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * bits/valarray_array.h: __restrict__ify pointers.
-
- * bits/std_valarray.h: Tweak.
- (valarray<T>::cshift, valarray<T>::shift): use __builtin_alloca.
-
- * bits/gslice_array.h: Tweak. Reflect changes in bits/gslice.h
-
- * bits/gslice.h: Tweak.
- (class gslice::_Indexer): new class.
- (gslice::gslice(const gslice&)): implement copy-ctor to support
- ref-counted index.
- (gslice::operator=(const gslice&)): support ref-counted index.
- (gslice::_M_convert_to_index): delete.
-
- * src/valarray.cc: New file.
- (__gslice_to_index): turn a gslice into a valarray<size_t>
- (ctor gslice::_Indexer::_Indexer): implement.
-
- * src/Makefile.am (sources): add valarray.cc
- * src/Makefile.in: regenerate.
-
-1999-06-08 Benjamin Kosnik <bkoz@cygnus.com>
-
- * stl/bits/stl_iterator.h (__normal_iterator::const_iterator
- ctor): Put in a const_cast.
-
- * testsuite/21_strings/invariants.cc: New file.
-
- * testsuite/21_strings/insert.cc: Add exception handling bits.
- * testsuite/21_strings/ctor_copy_dtor.cc: Same.
-
- * src/wstring-inst.cc: Add c++config.h include.
-
- * bits/basic_string.h: Fix const operator[] for size == pos.
- Add _M_leak for rbegin, non-const.
- Add _M_leak for rend, non-const.
- Make member function at standards conformant.
- Add _S_terminal to _Rep for operator[] const, add this into
- c_str() as well.
- * bits/string.tcc: Add static member definition here,
- temporarily.
-
- * testsuite/21_strings/element_access.cc: Add tests.
-
-1999-06-08 Vadim Egorov <egorovv@1c.ru>
-
- * bits/fstream.tcc (_M_really_overflow): Fixed size of
- conversion buffer.
-
-1999-06-08 Phil Edwards <pedwards@ball.com>
-
- * bits/fstream.tcc (basic_filebuf::xsputn): Fix off-by-one count
- caused when __testinit is true.
- * bits/ostream.tcc (basic_ostream::op<<(streambuf*)): Write buffer
- using rdbuf()->sputn rather than _M_fnumput->put.
-
-1999-06-08 Benjamin Kosnik <bkoz@tintin.cygnus.com>
-
- * testsuite/23_containers/bitset_ctor.cc: New file.
- * stl/bits/std_bitset.h (__BITSET_WORDS): Fix integration bug.
-
-1999-06-08 Phil Edwards <pedwards@ball.com>
-
- * bits/fstream.tcc (basic_filebuf::underflow): Fix, rename local vars.
-
-1999-06-07 Benjamin Kosnik <bkoz@tintin.cygnus.com>
-
- * testsuite/21_strings/element_access.cc: Finish off these tests.
- * testsuite/21_strings/insert.cc (test01): Uncomment.
- * testsuite/21_strings/ctor_copy_dtor.cc (test01): Finish off ctors.
- * bits/basic_string.h: Tweak, okay, fix for real this time.
- * bits/string.tcc: Same.
- * bits/char_traits.h: Tweak.
-
-1999-06-07 Benjamin Kosnik <bkoz@tintin.cygnus.com>
-
- * bits/std_cmath.h: Example of how to use the generated macro.
- * acconfig.h: Add macro for sinf here.
- * configure.in (LIBS): Add test for builtin math function sinf.
- * configure: Regenerated.
-
- * bits/basic_string.h: Fix _S_max_size.
-
-1999-06-06 Benjamin Kosnik <bkoz@tintin.cygnus.com>
-
- * bits/basic_string.h: Fixes for out-of-memory segv for large strings.
- Remove _S_construct signature for forward_iterator_tag and
- input_iterator_tag.
- Clean _M_fold.
- * src/string-inst.cc: Same, tweaks.
- * bits/string.tcc: Same, tweaks.
-
- * testsuite/21_strings/ctor_copy_dtor.cc: Add/clarify tests.
- * mkcheck (LOG_FILE): Fix filebuf-[2,3].tst checks.
- * mknumeric_limits (LD_FLAGS): Add -nodefaultlibs -lc -lgcc as per
- Gaby.
-
- * src/locale.cc: Final separation for char/wchar_t bits.
-
-1999-06-05 Phil Edwards <pedwards@ball.com>
-
- * docs/index.html: Added link to book upon request'n'agreement.
- * docs/23_containers/wrappers_h.txt: Added.
- * docs/{23_containers,27_io}/howto.html: Added sections.
-
- * bits/std_fstream.h: Tweak.
-
-1999-06-05 Benjamin Kosnik <bkoz@tintin.cygnus.com>
-
- * src/ios.cc: Same here.
- * bits/std_iosfwd.h: More wchar_t defines.
-
- * bits/basic_string.h: Tweaks.
- * bits/string.tcc: Tweak. Fix _S_construct to check for max_size
- when doing error checking, as per LWG defect #83.
-
- * src/gen-c++config.cc: Fix comment.
-
- * testsuite/21_strings/ctor_copy_dtor.cc: New file, checks ctors,
- assignments, dtors.
- * testsuite/21_strings/element_access.cc: New file, checks for
- operator[], at(...).
- * testsuite/21_strings/insert.cc: New file, tests string::insert.
- * testsuite/21_strings/char_traits.cc: New file, tests
- for char_traits<char>.
-
- * bits/utility.h: Remove, again.
- * src/Makefile.am (std_headers): Remove utility.h.
- * src/Makefile.in (std_headers): Regenerate.
-
- Alfred Minarik <a8601248@unet.univie.ac.at>
- * bits/basic_string.h: Move __out_of_range and __length_error into
- namespace std.
-
-1999-06-05 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * testsuite/26_numerics/modf_float.cc: New file.
-
- * bits/std_cmath.h (modf(float, float*)): Fix signature. Correct
- typo: use ::modff, not ::modf.
-
-1999-06-03 Vadim Egorov <egorovv@1c.ru>
-
- * bits/string.tcc (basic_string::_M_mutate): Fixed memory
- allocation error
- * testsuite/21_strings/capacity.cc (test01): Test.
-
-1999-06-03 Phil Edwards <pedwards@ball.com>
-
- * bits/fstream.tcc: Re-order inits to stop warnings. Comment/move
- unused variables to within #if 0 blocks to do the same.
- * bits/std_fstream.h: Fix typos (one prevents compilation).
-
-1999-06-03 Benjamin Kosnik <bkoz@pacifica.cygnus.com>
-
- * src/wstring-inst.cc: Fix.
-
-1999-06-02 Benjamin Kosnik <bkoz@madcow.cygnus.com>
-
- * bits/char_traits.h: Add _G_USE_WCHAR_T macro guards.
- * stl/bits/stl_string_fwd.h: Same.
- * bits/locale_facets.h: Same.
- * bits/locale_facets.tcc: Same.
- * src/wstring-inst.cc: And here.
-
- * src/gen-c++config.cc: Comment _G_USE_WCHAR_T. Leading to
- problems on HPUX 10.20.
- * your-build-directory-here/bits/c++config.h: Just kidding, do it
- here as a temporary hack till the compiler/host problems get
- worked out.
-
- * bits/locale_facets.tcc (num_get::do_get): Change from ifdef
- HAVE_STRTOLD to HAVE_STRTOLD && !(__hpux). Apparently, problems
- converting "long double" to struct long_double. Probably should be
- done with one macro (HAVE_STRTOLD) at configure time.
-
- * bits/std_cmath.h: Comment out pow(double, int) definition as
- gives re-declaration under hpux10.20. Revert previous change, as
- kills linux/x86, solaris 2.7, hpux builds. These should be done
- using autoconf, see std_cctype.h and the solutions started in
- configure.in (see config.h for the generated file.)
-
- * mknumeric_limits (LDFLAGS): Remove '-nodefaultlibs -lc', as
- -nodefaultlibs prevents linking under HPUX 10.20 as __main is not
- defined.
-
- * docs/index.html: Add some useful links.
- * docs/17_intro/contribute.html: Fix broken links.
-
-1999-06-02 Benjamin Kosnik <bkoz@rhino.cygnus.com>
-
- * mkcheck (LOG_FILE): Add !/bin/bash instead of cygnus-style
- paths. The rest of the world should be able to run this script
- now.
-
- * src/Makefile.am ($(generated_headers)): Remove comment.
- * Makefile*: Regenerate.
-
- * bits/std_locale.h: Remove detritus.
- * bits/localefwd.h: Add <cctype> include to undefine the isspace
- macro.
-
-1999-06-01 Benjamin Kosnik <bkoz@tintin.cygnus.com>
-
- * src/gen-c++config.cc: New file. Making c++config.h at configure
- time by catting this file (nee bits/config.h) with the build
- directories config.h. This is not a complete or perfect solution
- but is better than what was in place previously.
- * bits/c++config.h: Rename/move to above.
- * src/Makefile.am (headers): Remove c++config.h.
- (myinstallheaders). Add.
- * Makefile*: Regenerated.
-
- * bits/std_cwchar.h: Add include of c++config.h for HAVE_*
- definitions, so that wmemcmp, wcslen, wmemchr, etc are properly
- declared only if not present in the host's wchar.h.
-
- * bits/locale_facets.tcc (std): Change _G_USE_STRTO* to HAVE_STRTO*.
-
- * bits/std_cmath.h: Define out, for the moment. Linux has no
- __buitin_fsqrtl? Probably need some kind of configure trickery
- here as well.
-
- * src/Makefile.*: Regenerate.
- * bits/c++config.h: Add config.h include.
-
- * bits/std_cwchar.h: Remove remaining #error guard.
-
- * acconfig.h: Add bits for HAVE_LC_MESSAGES.
-
- * configure.in (LIBS): Replace previous effort for mbstate_t and
- strtold/strtof with this implementation.
-
-1999 06-01 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * bits/std_cmath.h: Tweak. Add more functions. Use __builtin_xxx
- whenever possible.
-
-1999-05-28 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/locale_facets.tcc (std): Eek: this left in. Autoconf bits
- for determining mbstate_t differences across various hosts not
- finished.
-
-1999-05-26 Benjamin Kosnik <bkoz@nabi.net>
-
- * bits/locale_facets.tcc: Change to ifdef.
-
- * bits/std_sstream.h (stringbuf::setbuf): Remove dynamic_cast.
- * bits/std_fstream.h (filebuf::setbuf): Same.
-
- * bits/std_istream.h: Add ws declaration.
- * bits/istream.tcc: Stub out definition.
-
- * docs/index.html: Fix broken link for design.txt.
-
- * configure.in: Test for mbstate_t. If wchar.h doesn't have it,
- then set _G_NEED_MBSTATE_T.
- * configure: Regenerate.
- * bits/c++config.h: Move mbstate_t define.
- * bits/std_cwchar.h: To here.
-
-1999-05-25 Ryszard Kabatek <kabatek@chemie.uni-halle.de>
-
- * bits/std_sstream.h:
- basic_stringbuf<>::basic_stringbuf: fix.
- basic_stringbuf<>::setbuf:
- remove the temporary __string_type object,
- remove the unnecessary dynymic_cast in the return value,
- change the type of the returned value from __streambuf_type*
- to basic_stringbuf<_CharT, _Traits, _Alloc>*.
-
-1999-05-25 Phil Edwards <pedwards@ball.com>
-
- * bits/std_streambuf.h (streambuf::setbuf): Always return streambuf*.
-
-1999-04-25 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * bits/std_cmath.h: Tweak. Add float versions of the math functions
- in <math.h>. <cmath> still incomplete and incorrekt.
-
-1999-05-24 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * mknumeric_limits (LDFLAGS): set appropriate link flags.
-
-1999-05-23 Phil Edwards <pedwards@ball.com>
-
- * docs/17_intro/howto.html: Added links to text docs,
- e.g., BUGS.
- * docs/21_strings/howto.html: Updated sections and links.
- * docs/21_strings/{gotw29a.txt,stringtok_h.txt}: Added.
- * docs/faq/index.html: Updated what-works for sixth
- snapshot. Also a number of "internal" links have been
- fixed, now that the web pages are the docs directory...
- * docs/faq/index.txt: Regenerated.
-
-1999-05-21 Benjamin Kosnik <bkoz@tintin.cygnus.com>
-
- * bits/basic_string.h: Add Nathan's documentation on the string class.
-
- * testsuite/27_io/ios_members_static.cc: New file, for testing
- ios_base::sync_with_stdio.
-
-1999-05-21 Benjamin Kosnik <bkoz@tintin.cygnus.com>
-
- * bits/std_locale.h: Simplify includes.
- * bits/loccore.h: Delete.
- * bits/localefwd.h: Renamed, trimmed.
- * bits/locfacets.h: Delete.
- * bits/locale_facets.h: Rename, expanded.
- * bits/loccore.tcc: Deleted.
- * bits/locfacets.tcc: Deleted.
- * bits/locale_facets.tcc: Resultant merge.
- * bits/std_fstream.h: Modify include.
- * bits/ostream.tcc: Same.
- * bits/istream.tcc: Same.
-
- * src/locale-inst.cc: And here.
- * src/locale.cc: Ditto.
- * src/Makefile.am: Updated.
- * src/Makefile.in: Rengenerated.
-
- * bits/std_istream.h: Move istream::sentry ctor definition.
- * bits/istream.tcc: Move istream::sentry ctor here.
- Add more detailed locale include here for ctype member functions.
- * bits/ostream.tcc (std): And here.
-
- * bits/sbuf_iter.h: Include std_streambuf.h
-
- * bits/locfacets.h: Start separating this into a localeimp.h file.
- * bits/loccore.h: Start separating this into a localefwd.h file.
- Add std_climits for CHAR_BIT.
-
- * bits/ios_base.h (ios_base::sync_with_stdio): Stub in.
-
- * bits/char_traits.h: Tweak.
-
- * bits/ios_base.h: Remove INT_MAX, use 1<<16.
-
- * bits/std_ostream.h: Remove c++config.h include.
- * bits/std_istream.h: Same.
- * bits/std_streambuf.h: Same.
- * bits/std_fstream.h: Same.
- * bits/std_sstream.h: And here.
-
- * bits/std_iosfwd.h: Add _G_RESOLVE_LIB_DEFECTS here for streampos.
- * bits/char_traits.h: Add include of std_cwchar.h for mbstate_t.
- * bits/fpos.h: Tweak, format.
-
- * std/ciso646: New file.
- * bits/std_ciso646.h: New file.
- * src/Makefile.am (std_headers): Add ciso646.
- (headers): Add bits/std_ciso646.h.
- * src/Makefile.in: Regenerate.
- * testsuite/17_intro/header_ciso646.cc: New file, disable
- equivalance tests.
-
- * bits/fpos.h: Remove libio.h include.
- * bits/basic_file.h: And here.
- * bits/std_ios.h: Put here.
-
- * src/ios.cc: Simplify includes, tweak.
- * bits/std_ios.h: Simplify include order.
- * bits/ios_base.h: Modify ios_base::failure.
-
- * stl/bits/std_numeric.h: Change include from stl_iterator to
- std_iterator.
-
-1999-05-19 Benjamin Kosnik <bkoz@tintin.cygnus.com>
-
- * std/iostream: Remove static member __ioint.
- * bits/std_iostream.h: Put here.
-
- * stl/bits/std_numeric.h: Remove unneccessary std_iostream.h include.
- * stl/bits/stl_algobase.h: Same.
- * testsuite/27_io/iostream_objects.cc: Regression tests.
- * testsuite/27_io/hello.cc: Remove, subset of above.
-
-1999-05-19 Phil Edwards <pedwards@ball.com>
-
- * docs/index.html: Tweak, update.
-
-1999-05-18 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * docs/17_intro/RELEASE-NOTES: remove outdated
- documentation about numeric_limits. Correct CXXINCLUDE setting
- documentation.
-
-1999-05-18 Phil Edwards <pedwards@ball.com>
-
- * docs/{17_intro,18_support,19_diagnostics,20_util,21_strings,
- 22_locale,23_containers,24_iterators,25_algorithms,26_numerics,
- 27_io}/howto.html: Created, with some initial entries.
- * docs/faq/index.html: Fixed some links.
- * docs/faq/index.txt: Regenerated.
-
-1999-05-18 Benjamin Kosnik <bkoz@tintin.cygnus.com>
-
- * bits/c++config.h (__GLIBCPP__): Set version to 19990518.
-
- * docs/17_intro/RELEASE-NOTES: Update.
- * docs/index.html: Correct link to mailing list help page, update News.
- * docs/faq/index.html: Change fifth to sixth for snapshot.
-
- * src/Makefile.am (myinstallheaders): Bring over Gaby's changes to
- install $(top_builddir)/bits/std_limits.h into
- $(myincludepfx)/bits. This was mistakenly omitted from yesterday's
- Makefile.am changes.
- * *Makefile*: Regenerate using automake.
-
- * mkcheck (LOG_FILE): Fix filebuf directory oddness.
- * testsuite/27_io/filebuf.cc: Same.
-
-1999-05-18 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * docs/17_intro/CHECKLIST: update.
- * docs/17_intro/TODO: update.
-
-1999-05-17 Phil Edwards <pedwards@ball.com>
-
- * docs/{17_intro,18_support,19_diagnostics,20_util,21_strings,
- 22_locale,23_containers,24_iterators,25_algorithms,26_numerics,
- 27_io}/howto.html: Created, with some initial entries.
- * docs/faq/index.html: Fixed some links.
- * docs/faq/index.txt: Regenerated.
-
-1999-05-17 Benjamin Kosnik <bkoz@unhappy.cygnus.com>
-
- * src/Makefile.am (myinstallheaders): Missed removing missing.h.
- * Makefile.in*: Regenerate.
-
-1999-05-17 Benjamin Kosnik <bkoz@happy.cygnus.com>
-
- * bits/std_streambuf.h: Same.
-
- * bits/loccore.h (_Bad_use_facet): Remove bits warned about.
- * bits/locfacets.h (std): Same.
- * bits/sstream.tcc: Same.
- * testsuite/27_io/stringstream.cc: Tweak.
-
- * testsuite/27_io/filebuf.cc: Adjust.
- * testsuite/21_strings/capacity.cc (test01): Add more
- string::reserve tests.
-
- * bits/c++config.h: Remove broken CCTYPE.
- * bits/std_cctype.h: Tweak, remove de-macroization, enable
- sequestered topper implementation.
- * bits/std_cwctype.h: Same.
-
- * bits/missing.h: Remove.
- * bits/std_locale.h: Remove missing.h include.
-
- * stl/bits/std_bitset.h (bitset::bitset(string): Tweak to compile.
-
- * src/Makefile.am (headers): Add bits/std_cwctype.h.
- INCLUDES: Add top_builddir.
- * src/Makefile.in: Regenerate.
-
- * Makefile.am: Add check and check-install as new targets.
- * testsuite/make_check_libfree++: Move to. . .
- * mkcheck: Here.
- * configure.in: Tweak versions.
- * mknumeric_limits: Set paths correctly.
-
-1999-05-17 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * src/Makefile.in (myinstallheaders): add rule to install
- std_limits.h.
-
- * bits/slice.h (class slice): don't const-qualify data members
- since the copy and assignment operator is implicitly used. The
- valarray specification is definitively a bad one.
-
- * Makefile.in (generate-limits-sources): fix typo.
-
- * docs/text/TODO: update.
- * docs/text/CHECKLIST: update.
-
- * bits/gslice.h (gslice): fix bugglet.
- (gslice::gslice): set _M_index_size to 0 whenever given lengths
- (lj) of size zero.
-
- * src/Makefile.am (libstdc___la_SOURCES): add gen-num-limits.
- * src/Makefile.in (libstdc___la_SOURCES): keep in sync.
- [Note: **/Makefile.in should be generated from the corresponding
- Makefile.am. The current situation is a litte chaotic. ]
-
-1999-05-16 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * mknumeric_limits: tweak.
-
- * Makefile.in (all): add target generate-limits-sources.
- (generate-limits-sources): make a directory bits/ in top_builddir
- where the generated std_limits.h is put; generate limitsMEMBERs.cc
- directly under $(top_builddir)/src. Remains to put the appropriate
- rule for installing std_limits.h.
-
- * src/Makefile.in (headers): remove bits/std_limits.h to this list.
- (INCLUDES): add -I$(top_builddir) for bits/std_limits.h which is
- now generated at build-time in the build directory
- (libstdc___la_SOURCES): remove limitsMEMBERS.cc form this list
- * src/Makefile.am: reflect changes in src/Makefile.in
-
-1999-05-12 Phil Edwards <pedwards@ball.com>
-
- * docs/faq/index.html: Add more entries (5.4,5.5), finish
- all but one empty entry. Add links for HOWTOs, but no files yet.
- (Corrected HOWTO links are for bkoz's new scheme.)
- * docs/faq/index.txt: Regenerated.
-
-1999-05-12 Benjamin Kosnik <bkoz@happy.cygnus.com>
-
- * testsuite/17_intro/headers.cc: New file.
- * stl/bits/std_queue.h: Change stl_bvector.h include path.
- * bits/std_cwctype.h: New file.
-
- * testsuite/27_io/filebuf.cc: Need to tweak directory structure.
-
-1999-05-11 Benjamin Kosnik <bkoz@loony.cygnus.com>
-
- * stl/bits/stl_config.h (__USE_MALLOC): Change underlying allocator.
- Check __USE_MALLOC before defining specializations containing
- __default_alloc_template.
- * src/stl-inst.cc: Here too.
-
- * bits/basic_string.h: Change.
-
- * testsuite/make_check_libfree++: More tweaks.
- * testsuite/21/capacity.cc: New file.
-
- * src/string.cc: Rename to be consistent with other inst files.
- Rename to string-inst.cc.
- * src/string*.cc: Change include.
- * src/wstring.cc: Rename to wstring-inst.cc.
- * src/wstring*.cc: Ditto.
- * src/Makefile.in: Also here.
- * src/Makefile.am: Ditto.
-
- * src/traits.cc: Remove.
- * src/wtraits.cc: Same.
-
- Try a new way of organizing documentation, one with synchronicity
- between testsuites and docs subdirectories, and see who yelps.
- * docs/html: Remove, use chapter and subject specific directories
- instead of forcing things immediately into format of
- documentation.
- * docs/text: Same.
- * docs/image: Same.
- * docs/faq/text, docs/faq/html: Remove, put in the docs/faq
- directory and sort by filename and extension.
- * docs/17_intro, 18_support, 19_diagnostics, 20_util, 21_strings,
- 22_locale, 23_containers, 24_iterators, 25_algorithms,
- 26_numerics, 27_io: Add.
- * docs/17_intro/*: Populate with all the text files. . .
- * docs/index.html: Construct.
-
- * testsuite/*: Update with same names as the docs subdir.
- * testsuite/results: Where to stash conformance results for the
- different snapshots, so that progress/size/speed issues can be
- tracked over time.
-
-1999-05-10 Benjamin Kosnik <bkoz@loony.cygnus.com>
-
- * src/string.cc: Add _S_copy_chars instantiation, as well as
- string::binary operators !=, ==, etc.
-
- * src/Makefile.am (CXXFLAGS): Remove -fvtable-thunks.
- * src/Makefile.in (CXXFLAGS): Same here.
- * testsuite/make_check_libfree++ (CXX_FLAG): And here.
-
-1999-05-07 Benjamin Kosnik <bkoz@cygnus.com>
-
- * src/string.cc: Add missing member functions to instantiation list.
-
-1999-05-07 Benjamin Kosnik <bkoz@cygnus.com>
-
- * src/misc-inst.cc: Remove unused string instantiations.
-
- * bits/string.tcc: Tweak, fix.
- * bits/basic_string.h: Format. Fix reported error with c_str().
-
- * testsuite/make_check_libfree++: Tweak for shared builds.
- * testsuite/21/operations.cc: New file for testing c_str() etc.
-
-1999-05-06 Benjamin Kosnik <bkoz@cygnus.com>
- Ryszard Kabatek <kabatek@chemie.uni-halle.de>
-
- * stl/bits/stl_vector.h: Fix the code of vector<> for usage with
- an iterator class. Delineate pointer versus iterator differences
- in implementation.
- * 23/vector_capacity.cc: New file, tests for above.
-
-1999-05-06 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * mknumeric_limits: Fix typo. 'unsigned lont' should read
- 'unsigned long'.
- * src/Makefile.am (libstdc___la_SOURCES): add limitsMEMBERS.cc,
- generated by mknumeric_limits to the list. Now std_limits.h is
- basically working.
- * src/Makefile.in (generate-numeric-limits): new target to handle
- automatic generation of bits/std_limits.h and src/limitsMEMBERS.cc.
- (all): add target generate-numeric-limits.
- (libstdc___la_OBJECTS): add limitsMEMBERS.lo
- (libstdc___la_SOURCES): add limitsMEMBERS.cc
-
-1999-05-05 Benjamin Kosnik <bkoz@cygnus.com>
-
- Irix build issues.
- * bits/c++config.h (_G_USE_CTYPE_ISBIT): Defines new macro for
- mask values in ctype_base. Move hacks for _ISBit to locfacets.h.
- * bits/locfacts.h: Here.
-
-1999-05-05 Benjamin Kosnik <bkoz@cygnus.com>
- Ulrich Drepper <drepper@cygnus.com>
-
- Solaris build issues.
- * bits/c++config.h: Define new macros, _G_USE_STRTOF and
- _G_USE_STRTOLD.
-
- * bits/locfacets.tcc (num_get::do_get): Tweak long double and
- float overloads to use the above macros. Account for the lack of
- strtold on some systems, and revert back to using sscanf.
-
-1999-05-04 Ryszard Kabatek <kabatek@chemie.uni-halle.de>
-
- * bits/locfacets.tcc (num_get::do_get): Check the errno variable.
- Use strtoul/strtoull for unsigned types. Check the ranges for
- short/unsigned short and if necessary for int/unsigned int.
-
-1999-05-04 Benjamin Kosnik <bkoz@cygnus.com>
-
- * src/gen-num-limits.cc (round_style): Need to use mknumericlimits
- to generate bits/std_limits.h now, as the SGI std_limits.h is
- being depricated. Not done, but should be done immediately: need
- to make sure this script is run as part of the configuration
- process, because without it "make" in a configured build directory
- will fail. Also tweaked: added a space for float_round_style, and
- used static_cast of zero to default-initialize, which should be ok
- according to the standard. (see 8.5 p5 and 20.1.3).
- * mknumeric_limits (OUT_C): Need this for x86 long
- double extensions.
-
- * bits/basic_file.h: Include libio.h, not libioP.h.
- * src/basic_file.cc: And add libioP.h include here, so that
- _IO_init, et. al are well-declared.
-
- * testsuite/make_check_libfree++ (LIB_PATH): Test installed
- headers, not source directory headers.
-
- * src/Makefile.am (headers): Add stl_range_errors.h, also adjust
- for ext/*. Also add basic_file.h.
- * src/Makefile.in (headers): Same.
-
- * bits/std_string.h: Reduce dependencies for faster
- pre-processing. Move istream and ostream specific defines into
- istream.tcc and ostream.tcc respectively.
- * bits/string.tcc: And here.
- * bits/basic_string.h: Move getline inline out-of-line, and to
- istream.tcc.
- * bits/istream.tcc: Move string::getline and operator>> here.
- * bits/ostream.tcc: And here too.
-
- * bits/utility.h: Remove, as clashes with a standard header. Put
- __OUTOFRANGE and __LENGTHERROR macros into string.tcc for the time
- being, until this can be combined with SGI's approach.
- * bits/string.tcc: Add macros, as above.
- * bits/loccore.h: Add _Count_ones defines.
- * bits/std_string.h: And here too.
- * bits/std_locale.h: And here.
- * bits/std_ios.h: Take out include here.
- * src/Makefile.am (headers): Remove utility.h
- * src/Makefile.in (headers): Remove utility.h
-
- * stl/bits/*: Update to SGI STL 3.20.
- * stl/ext/pthread_alloc: Delete this file.
-
-1999-05-04 Phil Edwards <pedwards@ball.com>
-
- * docs/faq/html/index.html: Add more entries
- * docs/faq/html/index.txt: regenerated.
-
-1999-05-04 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * src/gen-num-limits.cc (DO_DEFINE_MIN_MAX): fix typo.
-
-1999-04-29 Benjamin Kosnik <bkoz@haight.cygnus.com>
-
- * bits/locfacets.tcc (num_get::do_get): Re-implement, with input
- from Ulrich and Nathan. Remove extraneous string class usage,
- tweak, clean, simplify and consolidate with a eye towards removing
- duplcate code. Use strto[l, ll, f, d, ld] instead of sscanf.
- Not done: dealing with leading zeros, wchar_t work.
- * bits/locfacets.h: And here too.
-
- * doc: Remove.
-
-1999-04-29 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * docs/: add a FAQ.
- * docs/faq/: New directory.
- * docs/faq/html/: Likewise.
- * docs/faq/text/: Likewise.
- * docs/faq/html/index.html: New file.
- * docs/faq/html/index.txt: Likewise. Generated from
- docs/faq/html/index.html by lynx.
-
-1999-04-28 Benjamin Kosnik <bkoz@happy.cygnus.com>
- Ryszard Kabatek and Branko Cibej
-
- * bits/locfacets.tcc: Modify.
-
-1999-04-27 Benjamin Kosnik <bkoz@happy.cygnus.com>
-
- * bits/sbuf_iter.h: Clean, fix istreambuf_iterator, make
- conformant to 14882, wrap non-standard extensions with
- _G_RESOLVE_LIB_DEFECTS, remove detritus and cruft, rennovate.
- * bits/locfacets.tcc (num_get::do_get(bool)): Return correct iterator.
-
- * testsuite/27/istringstream_formatted.cc: Add tests.
-
- * bits/locfacets.h: Remove cruft from _Format_cache, continue
- commenting, simplify.
- * bits/locfacets.tcc: Same.
-
- 1999-04-27 Ryszard Kabatek <kabatek@chemie.uni-halle.de>
- * bits/locfacets.tcc (num_get::do_get):
- Fix the sscanf format parameter
- for long long 'll' (as in C9X) instead of 'l'.
- Fix the order of sscanf format parameters: "%dl" --> "%ld".
- Change the type of the local variable '__conv' from 'string'
- to 'const char*' and adapt the change.
-
-1999-04-26 Benjamin Kosnik <bkoz@happy.cygnus.com>
-
- * bits/locfacets.h: Document _Format_cache, and name data members
- after the corresponding functions in numpunct. For instance:
- _M_grsep -> _M_thousands_sep, and _M_decsep -> _M_decimal_point.
- Break apart _M_boolnames{2] into _M_truename and _M_falsename.
- * bits/locfacets.tcc: Same.
-
- * bits/locfacets.h (num_get::_M_extract): Don't allow groupings to
- stop parsing--store for later analysis.
- * testsuite/27/istringstream_formatted.cc: Add cases.
-
-1999-04-25 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * bits/valarray_meta.h: tweak.
- (_UnFunBase, _BinFunBase, _BinFunBase1, _BinFunBase2, _BinBase1,
- _BinFunBase2): rename typedef-name _Tp to _Vt to keep the compiler
- happy -- boggus warning.
- * bits/std_valarray.h: Fix.
- (valarray<T>::shift): Fix. Update comment.
- (valarray<T>::cshift): Fix.
-
-1999-04-23 Benjamin Kosnik <bkoz@cygnus.com>
-
- * testsuite/27filebuf-2.txt: Delete.
- * testsuite/27/filebuf.cc: Put output files directly into the
- correct subdirectory (27).
-
- Alexandre Petit-Bianco <apbianco@cygnus.com>
- * testsuite/make_check_libfree++: Check generated (*.txt) file
- against stored results file (*.tst).
-
-1999-04-22 Benjamin Kosnik <bkoz@nabi.net>
-
- * bits/locfacets.tcc: Fix.
-
- * bits/fstream.tcc (filebuf::seekoff): Output current out pointer.
- (filebuf::overflow): Simplify.
- (filebuf::xsputn): Correctly handle indeterminate state.
-
- * testsuite/27/istringstream_formatted.cc: Tweak.
- * testsuite/27/filebuf.cc: Tweak.
- * testsuite/27/filebuf-3.tst: Correct: this is the canonical
- results file, please use this in the future to guarantee filebuf
- positioning accuracy.
- * testsuite/27/filebuf-2.tst: Same.
-
-1999-04-21 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/fstream.tcc (filebuf::xsputn): Add.
- * bits/std_fstream.h: Declare.
-
- * src/basic_file.cc (__basic_file::open): Add O_CREAT to open
- calls using ios_base::trunc.
-
- * bits/sstream.tcc (streambuf::overflow): Fix crasher.
-
- * testsuite/make_check_libfree++ (LOG_FILE): Ugh. Another fix.
- * testsuite/27/27stringstream.cc: Same.
- * testsuite/27/27stringbuf.cc: More tweaks.
- * testsuite/27/27filebuf-2.txt: Remove.
-
- * testsuite/27/27filebuf-1.tst: Append, to force byte size over
- BUFSIZE so that overflows/underflow can be tested with default
- buffer setting.
- * testsuite/27/27filebuf-1.tst: Add.
-
- * testsuite/*/*: Remove pre-pended chapter names, as they
- duplicate the chapter info contained in the enclosing directory
- anyway.
-
-1999-04-20 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/streambuf.tcc (streambuf::xsputn): Re-implement to conform
- to sputc conditions.
-
- * bits/ios_base.h: Define here.
- * src/ios.cc (ios_base::_M_clear): Remove hack.
- * bits/basic_ios.h: Fix rdstate().
-
- * bits/sstream.tcc (streambuf::seekoff): Fix.
- * bits/fstream.tcc (filebuf::seekoff): Tweak comments.
-
- * testsuite/make_check_libfree++ (LOG_FILE): More c-c-c-changes.
- * testsuite/24/24iterator.cc: Add/Fixes for DEBUG_ASSERT.
- * testsuite/27/27stringstream.cc: Same.
- * testsuite/27/27stringbuf.cc: Same.
- * testsuite/27/27istringstream_formatted.cc: Same.
- * testsuite/27/27filebuf.cc: Same.
-
- * bits/locfacets.h: Remove specializations for messages<char> and
- messages<wchar_t> ctors. Same for moneypunct. Not required, not used.
- * src/locale.cc: Remove definitions for above.
- * src/misc-inst.cc: Revert, take out iomanip.h include.
- * bits/std_iomanip.h: Tweak, format.
-
-1999-04-19 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/loccore.h: Format, move inline.
- * bits/locfacets.tcc: Same.
- * bits/locfacets.h: Same.
-
- Ulrich Drepper <drepper@cygnus.com>
- * aclocal.m4: Re-generate.
- * configure, configure.in: Same.
- * m4/lc_messages.m4: New file.
-
-1999-04-18 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/std_ostream.h: Fix typedef for wchar_t instantiations.
- * bits/sstream.tcc: Tweak.
-
- * std/iostream: Put __ioinit inside macro guards.
-
- * src/stlinst.cc: Delete and move to . . .
- * src/stl-inst.cc: New file, plus wrapping in namespace std.
- * src/Makefile.in: Change.
- * src/Makefile.am: Same.
- * src/misc-inst.cc: Add istringstream/ostringstream instantiations.
-
- * testsuite/make_check_libfree++: Efficiently format for minimal
- space. Enforce stricter execution tests by enabling
- -DDEBUG_ASSERT.
-
-1999-04-16 Benjamin Kosnik <bkoz@cygnus.com>
-
- * docs/text/RELEASE-NOTES: Fix include typo.
-
- * src/Makefile.am (headers): Add istream.tcc.
- * src/Makefile.in (headers): Add istream.tcc.
-
- * ltconfig, ltmain.sh, libtool: Update to libtool-1.2g.
-
-1999-04-16 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/locfacets.tcc (num_get::do_get(long)): Finish roughing in.
- * bits/locfacets.h (num_get::_M_extract): New functin:
- consolidate logic for do_get(...) members.
-
- * bits/sbuf_iter.h (istreambuf_iterator::operator++()): Fix.
- * testsuite/27/27istringstream_formatted.cc: Add.
-
-1999-04-16 Martin v. Loewis <martin@mira.isdn.cs.tu-berlin.de>
-
- * src/basic_file.cc (__basic_file::open): Fix thinko in
- _G_HAVE_IO_FILE_OPEN bits.
- * bits/std_istream.h (sentry::sentry(istream, bool)): Fix isspace bug.
- * bits/std_cmath.h: Add stdlib.h include for ldiv_t.
- * src/complex.cc (FCT): Qualify all functions with global namespace.
- * src/locale.cc: Don't qualify memcpy and setlocale.
- * src/stdexcept.cc (__out_of_range): Qualify out_of_range with std::.
- (__length_error): Likewise, for length_error.
- * src/stlinst.cc: Qualify instantiations with std::.
-
-1999-04-15 Benjamin Kosnik <bkoz@cygnus.com>
-
- * C++STYLE: Add ChangeLog guidelines for member functions.
-
- * doc/* : Delete.
- * BADNAMES, BUGS, C++STYLE, CHECKLIST, COPYING,
- DESIGN, HEADER_POLICY, PROBLEMS, RELEASE-NOTES, TODO: Moved into
- docs/text and made less strident.
-
- * bits/fstream.tcc: Change non-standard ctor to match Sun's sematics.
- * bits/std_fstream.h: Same.
- * src/ios.cc: Same.
-
- * bits/locfacets.h: Touch.
-
-1999-04-15 Ulrich Drepper <drepper@cygnus.com>
-
- * math/cexp.c (cexp): Use NAN instead of nan("").
- Reported by joel reed <joelreed@yahoo.com>.
-
- * libio/libioP.h: Define _IO_seek_fpos_t and _IO_seek_off_t based on
- _G_IO_IO_FILE_VERSION. Use these types in the prototypes.
- * libio/fileops.c: Use _IO_seek_fpos_t and _IO_seek_off_t types
- instead of #if cascades.
- * libio/genops.c: Likewise.
- * libio/ioseekoff.c: Likewise.
- * libio/ioseekpos.c: Likewise.
- * libio/strops.c: Likewise.
- Patch by Chip Salzenberg <chip@perlsupport.com>.
-
-1999-04-15 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * docs: New directory.
- * docs/html: Likewise.
- * docs/text: Likewise.
- * docs/image: Likewise.
-
- * bits/std_cmath.h: Add new functions.
- (abs): overload for long and double.
- (div): overload for long.
-
- * bits/valarray_array.h: Fix.
- * bits/gslice.h: Adjust friend.
- * bits/slice_array.h: likewise.
- * bits/valarray_meta.h: likewise.
-
-1999-04-13 Benjamin Kosnik <bkoz@tintin.cygnus.com>
-
- * bits/locfacets.h: More changes, for num_get for insertion
- operators for integral types. Comment fields in _Format_cache.
- * bits/locfacets.tcc: And here too: add preliminary long version.
- * testsuite/27/27istringstream_formatted.cc: Add cases.
-
-1999-04-13 Mark Elbrecht <snowball3@usa.net>
-
- * configure.in: Add locale.h to AC_CHECK_HEADERS argument. Call
- AC_LC_MESSAGES macro.
- * aclocal.m4 (AC_LC_MESSAGES): New. Determines if a target
- supports LC_MESSAGES.
- * config.h.in: Add entry for HAVE_LC_MESSAGES.
- * src/locale.cc (locale::_S_normalize_category): Use the
- HAVE_LC_MESSAGES macro to check for LC_MESSAGES support instead of
- _G_NO_CLOCALE_HAS_MESSAGES.
- * aclocal.m4 (AM_PROG_LD): For DOS style paths, simplify test to
- '?:' from '?:\\' so any path beginning with a drive name matches.
-
-1999-04-12 Mark Elbrecht <snowball3@usa.net>
-
- * src/basic_file.cc(sys_open) [O_BINARY]: Declare __testb.
-
-1999-04-12 Benjamin Kosnik <bkoz@tintin.cygnus.com>
-
- * bits/locfacets.h: Tweak.
- * bits/locfacets.tcc(do_get): Clean/fix bool method.
-
- * testsuite/21/21nonmember.cc: Same.
- * testsuite/21/21compare.cc: Fix license.
- * testsuite/27/27istringstream_formatted.cc: New file.
-
-1999-04-12 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * bits/valarray_meta.h: _BinFunBase1, _BinFunBase2, _BinBase1,
- _BinBase2: new template classes; put in there to work around a
- compiler limitation. The whole valarray architecture is now
- working.
-
-1999-04-08 Benjamin Kosnik <bkoz@haight.constant.com>
-
- * bits/locfacets.tcc: Fix, format.
- * bits/locfacets.h: Fix.
- * src/locale.cc: Same, plus format.
-
- * bits/basic_string.h: Re-add definition here.
- * src/string.cc: Take out.
-
-1999-04-08 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * bits/std_valarray.h: tweak.
- * bits/valarray_array.h tweak. use _Expr.
- * bits/slice_array.h: likewise.
- * bits/gslice_array.h: likewise.
- * bits/mask_array.h: likewise.
- * bits/indirect_array.h: likewise.
- * bits/valarray_meta.h: tweak.
- _UnFunBase, _UnFunClos, _BinFunBase, _FunBase, _ValFunClos,
- _RefFunClos, _UnBase, _UnClos, _BinBase, _BinClos, _SClos, _GClos,
- _IClos: new template classes.
- _Meta: renamed to _Expr. Made template with args.
- _Constant: made template with two args.
-
-1999-04-05 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * bits/valarray_array.h: tweak.
-
-1999-04-06 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/basic_string.h: Whoops--fix blip.
-
-1999-04-06 Benjamin Kosnik <bkoz@cygnus.com>
-
- Update to SGI STL 3.13
- * bits/basic_string.h: Add __get_c_string definition.
- * stl/bits/stl_range_errors.h: New file.
- * stl/bits/std_bvector.h: Same.
- * stl/bits/*: Update.
-
-1999-04-04 1999 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * bits/slice_array.h: tweak.
- * bits/gslice_array.h: tweak.
- * bits/mask_array.h: tweak.
- * bits/indirect_array.h: tweak.
- * bits/valarray_array.h: tweak.
- (__valarray_copy): replace copy with memcpy.
- * bits/std_valarray.h: use __valarray_copy whenever possible.
- use __valarray_fill instead of fill.
-
-1999-04-02 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * src/gen-num-limits.cc: new file
- * mknumeric_limits: Ditto.
-
-1999-03-30 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/locfacets.tcc: Do a stub version of num_get for short, int,
- and long types.
- * bits/locfacets.h: Add num_get::get methods overloaded for int
- and short, to resolve ambiguous overloads in istream insertion
- operators.
-
-1999-03-30 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/std_istream.h: Fix.
- * bits/istream.tcc: Fix.
-
-1999-03-30 Philip Martin <pm@corris.dircon.co.uk>
-
- * testsuite/24/24iterator.cc: fix ++/-- tests
-
-1999-03-29 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/std_ostream.h: Looks like this, actually: Fix up eh-isms.
- * bits/ostream.tcc: Same.
-
- * bits/std_istream.h: Bring over ostream changes, implement member
- functions. Baseline.
- * bits/istream.tcc: New file.
-
-1999-03-26 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * bits/gslice.h (class gslice): fix friends template.
-
-1999-03-23 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/std_ostream.h: Fix sentry objects, implement seekp, tellp,
- delete cruft, etc.
- * bits/ostream.tcc: Same.
-
- * bits/std_istream.h: Minor tweaks.
-
-1999-03-18 Benjamin Kosnik <bkoz@cygnus.com>
-
- * src/locale-inst.cc: Remove duplicate instantiations.
- * bits/locfacets.tcc: Tweak definitions of static member.
-
-1999-03-18 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/std_fstream.h: Format: prepend "__" in front of
- non-standard typedefs.
- * bits/fstream.tcc: Match.
- * bits/std_streambuf.h: Format: prepend "__" in front of
- non-standard typedefs.
-
- * bits/sstream.tcc: Match.
- * bits/std_istream.h: Format.
- * src/locale-inst.cc: Add num_get instantiations.
-
- * bits/std_sstream.h: Fix crash in stringstreams. Remove member
- _M_sb, a basic_stringbuf object, and use the basic_ios pointer
- _M_streambuf instead. Make initializations sane. Fix
- allocation/deallocation of _M_streambuf.
- * bits/std_ostream.h: Fix initialization code.
- (ctor): Eliminate redundant this->init(), let base class initialize.
- (default ctor): New. Assume base classes already initialzed.
- * bits/std_istream.h: Parallel work to ostream.
- (ctor): Eliminate redundant this->init(), let base class initialize.
- (default ctor): New. Assume base classes already initialzed.
- Fix initialization of basic_iostream.
-
- * bits/std_fstream.h: While we're at it, make initializations sane
- here too. Now matches sstream.h.
-
- * bits/string.tcc: Fix crash in basic_string::compare.
- * bits/basic_string.h: And here.
- * bits/c++config.h: Add comment about _G_USE_EXCEPTIONS.
-
- * testsuite/make_check_libfree++: Check shared as well.
- * testsuite/27/27stringstream.cc: Add bits.
- * testsuite/27/27boolfmt.cc: Add bits.
- * testsuite/27/27octfmt.cc: Add bits.
-
-1999-03-17 Benjamin Kosnik <bkoz@happy.cygnus.com>
-
- * configure.in (USE_LONG_DOUBLE): signbitl link error.
-
- * bits/locfacets.h: Fix errors that cause build problems
- with current egcs (template parameters have class scope).
- * bits/locfacets.tcc: Same.
- * src/locale-inst.cc: Same, clean.
- * src/misc-inst.cc: Same, clean.
-
-1999-03-17 Ryszard Kabatek <kabatek@chemie.uni-halle.de>
-
- * stl/bits/std_memory.h: Modify auto_ptr::reset to reflect the
- standard. Re-apply this previous patch.
-
-1999-03-17 Philip Martin <pm@corris.dircon.co.uk>
-
- * bits/basic_string.h: Use __normal_iterator<> for iterators.
- * bits/std_sstream.h: Support __normal_iterator<> iterators.
- * bits/string.tcc: Ditto.
- * src/misc-inst.cc: Ditto.
- * src/locale-inst.cc: Ditto.
- * stl/bits/stl_iterator.h: Add __normal_iterator<>.
- * stl/bits/stl_vector.h: Use __normal_iterator<> for iterators.
- * testsuite/24/24iterator.cc: Add test cases for basic_string and
- vector iterators.
-
-1999-03-16 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/locfacets.tcc: Remove macro hack.
- * bits/locfacets.h: Tweaks.
- * src/misc-inst.cc: Weed out locale-related instantiations.
- * src/locale-inst.cc: Same.
-
- * RELEASE-NOTES: Make more changes.
- * bits/c++config.h: Bump version number.
-
- * testsuite/make_check_libfree++: Collect diagnostics.
-
- * bits/std_ostream.h: Fix ostream initialization/destruction
- problem, related to dtor cleanup and new cached facets, agggggggh.
- * bits/ostream.tcc: Tweak.
- * bits/locfacets.h: Remove all friends of iostream classes.
- * bits/ios_base.h: Same.
- * bits/streambuf.tcc: Tweak.
- * bits/std_streambuf.h: Tweak.
- * bits/std_fstream.h: Tweak.
- * bits/fstream.tcc: Tweak.
- * src/stdstreams.cc: Tweak.
- * src/ios.cc: Close streams.
-
- * math/Makefile.in: Add missing files for shared link errors.
- * math/Makefile.am: Same.
-
-1999-03-15 Benjamin Kosnik <bkoz@cygnus.com>
-
- * src/locale-inst.cc: More wchar_t instantiations.
- * src/misc-inst.cc: Missed a few bits.
- * testsuite/make_check_libfree++: Add static and shared runs.
- * src/ios.cc: Add clarity to ios_base::Init::~Init().
-
-1999-03-15 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/std_ostream.h: Format, expunge, simplify. Add cached
- facets. Resolve link errors.
- * bits/ostream.tcc: Same.
- * src/misc-inst.cc: Add ostream, wostream instantiations.
- * src/Makefile.am: Add missing bits for stdstreams.cc.
- * src/Makefile.in: Same.
- * bits/std_iosfwd.h: Format.
- * bits/locfacets.h (num_put): Add basic_ostream as a friend to
- num_put so that cached _M_fnumput pointer can be deleted in
- basic_ostream's dtor. Now everybody plays nice.
-
-1999-03-12 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
- * bits/gslice.h (class gslice): Make friends valarray,
- gslice_array and _GliceExpression.
-
-1999-03-11 Benjamin Kosnik <bkoz@cygnus.com>
-
- * RELEASE-NOTES: Update.
- * src/ios.cc: Use do proper init.
- * bits/std_streambuf.h: Tweak.
- * bits/std_iostream.h: Take out static member.
- * std/iostream: Put here.
- * bits/std_ostream.h: Non-default ctor shouldn't smash _M_streambuf.
- * bits/std_istream.h: Ditto.
- * bits/basic_ios.h: Format.
- * bits/ostream.tcc(write): Fix.
- * bits/fstream.tcc: Fix stdstreams ctor to do a proper
- initialization of the fstream class.
- * src/stdstreams.cc: I'm baaaaaaaack.
-
-1999-03-10 Benjamin Kosnik <bkoz@rhino.cygnus.com>
-
- * bits/ios_base.h: Correct comments. Add ios_base::init()
- functionality. Format, tweak, expunge, clean, bathe, and hang to dry.
- * src/misc-inst.cc: Add instantiations here.
- * src/ios.cc: Clean.
- * bits/std_iostream.h: Add wrappers, global ios_base::Init object.
- * src/stdstreams.cc: Delete this file, as now unnecessary.
- * bits/fstream.tcc: Add missing initialization bits for ctor.
- * src/Makefile.am (libstdc___la_SOURCES): Delete here as well.
- * src/Makefile.in (libstdc___la_OBJECTS): And here.
-
- * bits/streambuf.tcc: Tweak.
- * bits/sstream.tcc: Here too.
-
- * bits/fstream.tcc: And change definition as well.
- * bits/std_fstream.h: Change ctor.
- * src/basic_file.cc (sys_open): Add call that opens a specific fileno.
- * bits/basic_file.h: Add declarations.
-
- * testsuite/27/27hello.cc: New file.
-
- * bits/std_ostream.h: Move flush() inline.
- * bits/ostream.tcc: From here.
-
- * bits/char_traits.h: Add include of fpos.h for streamoff/streampos.
- * bits/std_ios.h: Change include libio to only when necessary.
- * bits/fpos.h: Like here.
- * ios_base.h: And here.
-
- * bits/locfacets.h: Change _Iostate to _Ios_Iostate.
- * bits/locfacets.tcc: Same.
- * bits/std_locale.h: Include std_ios.h not std_iosfwd.h.
- * bits/std_iosfwd.h: Move _Ios_Iostate to ios_base.h
-
-1999-03-09 Benjamin Kosnik <bkoz@rhino.cygnus.com>
-
- * bits/basic_ios.h: Change _M_ctype to _M_fctype.
-
- * bits/std_streambuf.h: Clean, tweak.
- * bits/std_fstream.h: Same.
- * bits/std_sstream.h: Same.
- * bits/streambuf.tcc: Move most member functions out-of-line.
- * bits/fstream.tcc: Same.
- * bits/streambuf.tcc: Same.
-
- * bits/basic_file.h(filepos_cur): Set correctly.
- (filepos_beg): Same.
- (seekpos): Change to __c_streampos.
- * src/basic_file.cc (std): Change to __c_streampos.
-
- * testsuite/27/27filebuf.cc: Round one is finished.
- * testsuite/27/27filebuf-2.tst: New file, final output should match.
- * testsuite/27/27filebuf-3.tst: Same.
-
-1999-03-08 Benjamin Kosnik <bkoz@rhino.cygnus.com>
-
- * bits/basic_file.h: Fix typo, add comments about what to expect
- from the various member functions in __basic_file.
-
- * bits/std_fstream.h: Re-do sync/underflow to work
- together. Change from sys_read to xsgetn and from sys_write to
- xsputn. As it should have been from the beginning. . .
-
-1999-03-06 Benjamin Kosnik <bkoz@haight.constant.com>
-
- * bits/c++config.h (__GLIBCPP__): Add versioning macro.
-
- * bits/basic_file.h(file_beg): New function.
- (file_cur): Ditto.
-
- * testsuite/27/27filebuf.cc: Test in, out, in | out.
- * bits/std_fstream.h: More _M_mode refinements.
- (synch): Add bits for out mode only.
- * bits/std_streambuf.h(xsputn): Correct for filebufs.
- * bits/std_sstream.h: Ditto.
-
-1999-03-03 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/std_fstream.h: Fix _M_mode AND with ios_base::openmode.
- * testsuite/27/27filebuf.cc: Modify.
- * bits/c++config.h: Fix.
-
-1999-03-02 Benjamin Kosnik <bkoz@tintin.cygnus.com>
-
- * bits/c++config.h: New macro, _G_RESOLVE_LIB_DEFECTS, used to put
- code in place that diverges from the final standard, but has been
- brought up on the library mailing list.
-
- * bits/std_fstream.h(underflow): Position all three internal
- buffer pointers at the same initial position. Re-implement with
- basic_filebuf abstraction.
- (overflow): Ditto.
- (seekoff): Ditto.
- (seekpos): Ditto.
- * bits/std_sstream.h: Move _M_mode down into base class
- basic_streambuf.
- * bits/sstream.tcc: Ditto.
- * bits/std_streambuf.h: Ditto.
-
- * testsuite/27/27filebuf.cc: Tweak.
-
-1999-02-27 Benjamin Kosnik <bkoz@slap-happy.cygnus.com>
-
- * bits/std_sstream.h: Ditto.
- * bits/std_fstream.h: Fix blip.
-
-1999-02-26 Benjamin Kosnik <bkoz@happy.cygnus.com>
-
- * C++STYLE: Add cases.
- * bits/std_fstream.h: Format.
- * bits/std_streambuf.h: Ditto.
- * bits/std_sstream.h: Ditto.
-
- * src/basic_file.cc(sys_seek): Fix stack delirium, by keeping
- return type for _IO_file_seek and __basic_file::seek the same size.
- * bits/basic_file.h: Ditto.
-
-1999-02-26 Benjamin Kosnik <bkoz@happy.cygnus.com>
-
- * bits/fstream.tcc: Add include guards.
- * src/misc-inst.cc: Add instantiations for shared libes.
- * src/locale-inst.cc: Add instantiaions for use_facet.
- * bits/loccore.h: Remove specialization foward decls for
- use_facet<ctype>: perhaps add the whole lot of them later on.
- * bits/std_fstream.h: Fix.
- * bits/locfacets.h: Ditto.
- * src/stdstreams.cc: Disable wide streams for now.
-
- * src/Makefile.am (CXXFLAGS): Change up.
- * src/Makefile.in (CXXFLAGS): Ditto.
-
-1999-02-25 Benjamin Kosnik <bkoz@happy.cygnus.com>
-
- * src/basic_file.cc: Change to ios_base::seekdir from int.
- * bits/basic_file.h: Ditto.
- * bits/locfacets.h : Fix blip with new guard macros.
-
-1999-02-25 Benjamin Kosnik <bkoz@cygnus.com>
-
- * stl/bits/stl_config.h (__STL_USE_STD_ALLOCATORS): Minor tweaking.
- * bits/c++config.h: Clean. Remove _G_NO_STREAMBUF_ITERATORS and
- _G_USE_NAMESPACE.
- * amm1/locale: Remove unused defines.
- * generic/locale: Ditto.
- * src/ios.cc: Ditto.
- * src/locale.cc: Ditto.
- * src/locale-inst.cc: Ditto.
- * src/localename.cc: Ditto.
- * src/stdstreams.cc: And here.
-
- * bits/c++config.h (_G_USE_WCHAR_T): Fix.
- * bits/loccore.h: Simplify, clean, add wchar_t guards.
- * bits/loccore.tcc: Ditto.
- * bits/locfacets.h: Ditto.
- * src/locale-inst.cc: Ditto.
- * bits/locfacets.tcc: Add do_put long long here.
-
-1999-02-24 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/std_streambuf.h: Add cached ctype facet, _M_ctype.
- * bits/basic_ios.h: Clean. Replace _M_strbuf with
- _M_streambuf. Use cached _M_cvt in basic_streambuf.
- * bits/std_istream.h: Replace _M_strbuf with _M_streambuf.
- * bits/std_fstream.h: Tweak.
-
- * bits/char_traits.h: Remove fpos definitions from here. . .
- * bits/fpos.h: New file, put them here. Eventually, this may allow
- the severing of char_traits and fpos dependencies.
- * src/Makefile.in: Add fpos.h.
- * src/Makefile.am: Ditto.
- * bits/std_string.h: Add fpos.h include here.
- * bits/std_ios.h: And here.
-
- * bits/std_streambuf.h: Change _M_init to _M_initialized.
- * bits/ios_base.h: Remove cstdio include.
- * bits/std_ios.h: ... Place here.
-
-1999-02-23 Benjamin Kosnik <bkoz@loony.cygnus.com>
-
- * src/Makefile.in (CXXFLAGS): Re-add -fvtable-thunks.
- * src/Makefile.am (CXXFLAGS): Re-add -fvtable-thunks.
-
- * bits/basic_file.h: Comment, adjust arguments.
- * src/basic_file.cc: Ditto.
-
- * bits/std_fstream.h(seekoff): Error is of fpos type, not integral
- type: check and convert accordingly. Re-interpet "resultant stream
- position" to indicate external byte sequence location, not internal
- buffer info.
-
-1999-02-22 Benjamin Kosnik <bkoz@loony.cygnus.com>
-
- * mkcshadow: And change copyright here.
- * src/Makefile.am (CXXFLAGS): Add -g -O2. Add new header
- dependencies for stl_pthread_alloc.h, pthread_allocimpl.h,
- stl_thread.h, and stl_iterator_base.h.
- * src/Makefile.in (CXXFLAGS): Ditto.
- * stl/backward/pthread_alloc.h: Remove.
-
-1999-02-19 Benjamin Kosnik <bkoz@loony.cygnus.com>
-
- * bits/std_streambuf.h (sungetc): Use standard defs for putback
- position.
- * bits/std_fstream.h (pbackfail): Correct.
- (sungetc): Test.
- (seekoff): Implement.
- (seekpos): Re-do.
- * testsuite/27/27filebuf.cc: Add test cases.
-
-1999-02-18 Benjamin Kosnik <bkoz@loony.cygnus.com>
-
- * bits/std_fstream.h: Go with basic_file's interfaces for dealing
- with the external buffers, and stop mucking around with setting
- and re-setting the external buf's pointers. Aka, clarity and
- simplicity rule the day.
- * src/locale.cc: Use memcpy in codecvt::do_in and codecvt::do_out.
- Remove partial result and support code.
-
-1999-02-18 Ulrich Drepper <drepper@cygnus.com>
-
- * configure.in: Add hypot, hypotf, atan2f, expf, and copysignf to
- list of function which have to be replaced.
- Remove expf from list of functions to test for.
- Define USE_LONG_DOUBLE in case the libm has partial support for long
- doubles.
- * Makefile.in: Regenerated.
- * config.h.in: Likewise.
- * configure: Likewise.
- * libio/Makefile.am (LIBIO_SRCS): Add missing backslash.
- * libio/Makefile.in: Regenerated.
- * src/Makefile.in: Regenerated.
- * string/Makefile.in: Regenerated.
- * math/Makefile.am (EXTRA_DIST): Add hypot.c, hypotf.c, hypotl.c,
- atan2f.c, expf.c, and $(EXTRA_yes).
- (EXTRA_yes): Add signbitl.c mycabsl.c.
- (libmath_la_LIBADD): Add $(EXTRA_$(USE_LONG_DOUBLE)).
- (libmath_la_SOURCES): remove long double versions.
- * math/Makefile.in: Regnerated.
- * math/atan2f.c: New file.
- * math/copysignf.c: New file.
- * math/expf.c: New file.
- * math/hypot.c: New file.
- * math/hypotf.c: New file.
- * math/hypotl.c: New file.
- * math/cargf.c: Use correct function and macro names.
- * math/ccos.c: Likewise.
- * math/ccosh.c: Likewise.
- * math/ccoshf.c: Likewise.
- * math/ccoshl.c: Likewise.
- * math/cexp.c: Likewise.
- * math/cexpf.c: Likewise.
- * math/cexpl.c: Likewise.
- * math/clog.c: Likewise.
- * math/clog10.c: Likewise.
- * math/clog10f.c: Likewise.
- * math/clog10l.c: Likewise.
- * math/clogf.c: Likewise.
- * math/clogl.c: Likewise.
- * math/copysignf.c: Likewise.
- * math/csin.c: Likewise.
- * math/csinf.c: Likewise.
- * math/csinh.c: Likewise.
- * math/csinhf.c: Likewise.
- * math/csinhl.c: Likewise.
- * math/csinl.c: Likewise.
- * math/csqrt.c: Likewise.
- * math/csqrtf.c: Likewise.
- * math/csqrtl.c: Likewise.
- * math/ctan.c: Likewise.
- * math/ctanf.c: Likewise.
- * math/ctanh.c: Likewise.
- * math/ctanhf.c: Likewise.
- * math/ctanhl.c: Likewise.
- * math/ctanl.c: Likewise.
-
-1999-02-17 Benjamin Kosnik <bkoz@cygnus.com>
-
- * testsuite/27/27filebuf.cc: Add cases.
- * testsuite/27/27filebuf-1.txt: Remove inadvertent garbage.
- * bits/std_streambuf.h: Simplify, always have one return statement.
- * bits/std_fstream.h: Tweak comments in underflow.
-
-1999-02-17 Ulrich Drepper <drepper@cygnus.com>
-
- * ltmain.sh: Update from libtool 1.2d and fix Solaris problems.
- * ltconfig: Likewise.
-
-1999-02-16 Christophe Pierret <cpierret@businessobjects.com>
-
- * src/locale.cc: Fix assert.
-
-1999-02-16 Benjamin Kosnik <bkoz@cygnus.com>
-
- FIXME: Still need some kind of solution for undefined math symbols.
- * src/Makefile.in (locale-inst.lo): Compile with
- -fimplicit-templates to fix Solaris link problem.
- * src/Makefile.am: Ditto.
- * libio/Makefile.in: Add stdfiles.c so that _IO_list_all is defined.
- * libio/Makefile.am: Ditto.
- * src/locale.cc: Provide some kind of def for _S_tolower.
- * bits/locfacets.h: Fix declarations of ctype<wchar_t> to
- match ctype<char> for _S_tolower, _S_toupper, _S_table.
-
-1999-02-10 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/loccore.tcc: Move member-template ctor inline...
- * bits/loccore.h: ...here.
- * src/locale-inst.cc: Add instantiation here.
-
- * testsuite/27/27stringstream.cc: Tweak.
-
- * bits/ostream.tcc: Include sbuf_iter.h.
-
- * bits/ostream.tcc: Convert *this to ostreambuf_iterator before
- passing to num_put, as num_put's first argument is an interator,
- not basic_ostream.
-
- * testsuite/make_check_libfree++: New file, runs through the
- existing test files in the testsuite directory and makes sure
- they link.
-
-1999-02-10 Brendan Kehoe <brendan@cygnus.com>
-
- * testsuite/21/21compare.cc: Fix typo.
- * src/locale.cc (ctype<wchar_t>::_S_{toupper,tolower,table}):
- Don't try to provide non-linux versions, since it's impossible to
- initialize their const references with the integer 0, no matter
- how we try to cast it.
-
-1999-02-10 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/std_locale.h: Move std_vector.h dependency.
- * bits/std_ios.h: ...from here.
- * bits/std_string.h: ...and here.
- * src/locale.cc: ..to here.
- * bits/loccore.h: Ditto, add vector forward declaration,
- make locale::_Impl data members pointers not containers.
- * bits/loccore.tcc: Move out-of-line for now.
- * bits/locfacets.h: Move vector dependency from here...
- * bits/locfacets.tcc: ...to here.
- * src/localename.cc: ..and here.
- * src/locale-inst.cc: Add include of locfacets.tcc here.
-
- * stl/bits/stl_string_fwd.h: Make __get_c_string non-static.
- * bits/basic_string.h: Can't use sizeof on an incomplete type.
- * bits/string.tcc: Tweak.
- * src/string.cc: And add __get_c_string def here.
-
- * bits/std_fstream.h: Yeah, comment the fill_n idea out as impractical.
-
- * src/stlinst.cc: Add include of stl_config.h.
-
-1999-02-09 Benjamin Kosnik <bkoz@cygnus.com>
-
- * stl/bits/std_bitset.h: Update to SGI STL 3.12.
- * stl/bits/stl_config.h: Tweak, update.
- * stl/bits/std_stdexcept.h: Ditto, change stl_exception to
- std_exception.
- * stl/bits/std_memory.h: Reconstructed auto_ptr, Ditto.
- * stl/bits/std_functional.h: Ditto.
-
- * stl/bits/stl_string.h: New file, SGI's string
- implementation. For reference only, corresponding to string in
- 3.12 source.
- * stl/bits/stl_char_traits.h: As above.
-
- * stl/bits/pthread_allocimpl.h: New file corresponding to
- pthread_alloc.
- * stl/bits/stl_pthread_alloc.h: New file corresponding to
- pthread_alloc.h
- * stl/bits/stl_threads.h: New file.
-
- Note that SGI STL 3.12's file iterator.h is not used.
- * stl/bits/std_iterator.h: Ditto.
- * stl/bits/stl_iterator.h: Drop in replace.
- * stl/bits/stl_iterator_base.h: New file, drop in replace.
-
- * stl/bits/stl_queue.h, stl_rope.h, stl_set.h, stl_stack.h,
- stl_string_fwd.h, stl_tempbuf.h, stl_tree.h, stl_vector.h,
- stl_pair.h, stl_multimap.h, stl_multiset.h, stl_list.h,
- stl_hashtable.h, stl_hash_set.h, stl_hash_map.h, stl_function.h,
- stl_deque.h, stl_alloc.h, stl_algo.h, stl_algobase.h, ropeimpl.h:
- Drop-in replace (ie, stop changing __SGI_STL_* to _CPP_BITS_* for
- preprocessor guards, but fixup include paths and names according
- to new directory layout).
-
-1999-02-05 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/std_fstream.h: Remove _M_open data member.
- * bits/fstream.tcc: Ditto.
-
- * src/locale.cc: Tweak.
-
- * bits/std_sstream.h: Simplify.
-
- * bits/std_streambuf.h: Simplify.
- (sputc): Use correct definition of "write area."
-
- * bits/std_fstream.h: Fix uflow.
- * src/basic_file.cc: Tweak.
- * testsuite/27/27filebuf.cc: Add tests.
- * testsuite/27/27filebuf-3.txt: Rename to *-2.txt.
-
-1999-02-02 Ryszard Kabatek <kabatek@chemie.uni-halle.de>
-
- * bits/ios_base.h: Make protected.
-
-1999-02-01 Ryszard Kabatek <kabatek@chemie.uni-halle.de>
-
- * bits/ios_base.h: Changes in the class ios_base:
- Rename _M_exceptions member to _M_exceptions_data.
- Make the member functions rdstate(), clear(), exceptions()
- and exceptions(iostate) protected and add the "_M_" prefix.
- * src/ios.cc: Ditto.
- * bits/basic_ios.h: Adapt the changes from ios_base.
-
-1999-01-29 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/std_fstream.h: Remove _M_flags, _M_equilibrate as unnecessary.
- * bits/fstream.tcc: Ditto.
-
- * bits/std_fstream.h (underflow): Resize deallocates memory and
- resets pointers in the internal cache according to new _M_buf. . dooh!
- * src/locale.cc: Mas changes with codecvt::do_in, do_out.
-
-1999-01-29 Ryszard Kabatek <kabatek@chemie.uni-halle.de>
-
- * stl/bits/std_memory.h: Modify auto_ptr::reset to reflect the
- standard.
-
-1999-01-28 Benjamin Kosnik <bkoz@cygnus.com>
-
- * src/locale.cc (codecvt::do_in): Finer-grained tuning to take
- into account partial returns.
- (codecvt::do_out): Likewise.
-
- * bits/char_traits.h: Change streamsize to be a signed type, as
- required by 27.4.1 Types p 2. (Changing to _IO_ssize_t.)
- * bits/std_streambuf.h: Make
- in_avail() and showmanyc() have streamsize as return types, so
- that showmanyc()'s return of eof won't underflow in_avail's return
- value and give a bogus result.
- * src/misc-inst.cc: And more changes. . .
-
- * bits/std_streambuf.h (basic_streambuf): Add _M_buf_unified to keep
- track of joint in/out pointers into the internal buffer.
- (sbumpc): Add check for _M_buf_unified.
- (sputbackc): Ditto.
- (sungetc): Ditto.
-
- * testsuite/27/27filebuf.cc: Add cases.
- * testsuite/27/27stringbuf.cc: Add showmanyc case.
-
- * bits/std_fstream.h (close): Fix logic error.
- (open): Initialize internal pointers based on _M_buf and _M_buf_size.
- (showmanyc): Add underflow component, to match the standard.
-
- * bits/fstream.tcc: Ditto.
-
-1999-01-27 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/basic_file.h: Match vtables w/ _IO_FILE_plus.
- * src/basic_file.cc: Ditto.
- * src/Makefile.in: Add -fvtable-thunks to CXXFLAGS: preferred
- format for dealing with _IO_file in libio.
-
-1999-01-27 Ulrich Drepper <drepper@cygnus.com>
-
- * src/basic_file.cc: Include fcntl.h.
-
-1999-01-27 Benjamin Kosnik <bkoz@cygnus.com>
-
- * libio/Makefile.in: Add fileops.lo, genops.lo to objects to debug
- libio calls.
- * bits/std_streambuf.h: Redefine read posion.
-
- * bits/std_fstream.h: Temporary hack to get vtables working again.
- * bits/basic_file.h: Revert.
- * src/basic_file.cc: Ditto.
- * testsuite/27/27filebuf.cc: Tweak.
-
-1999-01-26 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/basic_file.h: Add showmanyc, underflow. .
- * src/basic_file.cc: Ditto.
-
- * bits/std_fstream.h (showmanyc): Add bits to ping libio to see if more
- chars can be read.
-
- * testsuite/27/27filebuf.cc: Add testcases.
- * src/basic_file.cc: Add O_CREAT to open calls with
- ios_base::trunc as part of the open mode.
-
-1999-01-26 Ryszard Kabatek <kabatek@chemie.uni-halle.de>
-
- * bits/basic_ios.h: fix basic_ios::exceptions(iostate)
-
-1999-01-25 Benjamin Kosnik <bkoz@nabi.net>
-
- * src/ios.cc (clear): Correct typo.
- * bits/ios_base.h: Tweak spacing.
-
-1999-01-25 Ryszard Kabatek <kabatek@chemie.uni-halle.de>
-
- * bits/basic_ios.h: fix basic_ios::fail()
-
-1999-01-25 Benjamin Kosnik <bkoz@loony.cygnus.com>
-
- * bits/basic_file.h: Include libioP.h from libio instead of here.
- * bits/iolibio.h: Remove.
- * bits/libio.h: Remove.
-
-1999-01-22 Benjamin Kosnik <bkoz@lunatic.cygnus.com>
-
- * bits/std_fstream.h: Tweak cvt-> in call for newer egcs compilers.
-
-1999-01-22 Ulrich Drepper <drepper@cygnus.com>
-
- * Makefile.am (SUBDIRS): Add libio.
- * configure.in: Add rule to test for glibc2.
-
- * src/Makefile.am (INCLUDES): Add -I to libio subdir.
- (libstdc___la_LIBADD): Add libio.la.
-
-1999-01-21 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/basic_file.h: Make new abstraction for underlying C library
- FILE, named __basic_file.
- * src/basic_file.cc: New file.
- * bits/os_raw.h: Delete.
- * src/os_raw.cc: Delete.
- * src/Makefile.in: Tweak.
- * src/Makefile.am: Tweak.
- * bits/iolibio.h: Add this here, for the time being.
- * bits/libioP.h: Ditto.
-
- * bits/ios_base.h: Delete unused defines.
- * src/locale.cc (codecvt<char, char, mbstate_t>::do_in): Use
- strcpy to copy between the two buffers.
-
- * testsuite/27/27stringbuf.cc: Change license, fix in_avail tests.
- * testsuite/27/27filebuf.cc: New file.
- * testsuite/27/27filebuf-1.txt: Data file for above test.
- * testsuite/27/27filebuf-2.txt: Ditto.
-
- * bits/std_streambuf.h (uflow): Re-implement default.
- * bits/std_fstream.h: Set _M_buf_size based on cstdio's BUFSIZ.
- Re-implement virtual functions.
- * bits/fstream.tcc: Delete unused mf's.
-
-1998-12-31 Benjamin Kosnik <bkoz@lunatic.cygnus.com>
-
- * bits/fstream.tcc: Add fstream ctor for cin/cout/etc.
- * bits/std_fstream.h: Ditto.
- * src/stdstreams.cc: Ditto.
-
- * math/cpowl.c: Fix header typo with last change.
-
-1998-12-31 Benjamin Kosnik <bkoz@loony.cygnus.com>
-
- * COPYING: New file (GPL v 2).
- * LICENSE.STD: Remove.
- * ./*: Change license.
-
-1998-12-30 Benjamin Kosnik <bkoz@haight.constant.com>
-
- * bits/std_streambuf.h (std): Remove static on _M_init.
- * bits/streambuf.tcc (std): Ditto.
-
- * bits/std_fstream.h: Add changes as discussed with Nathan, including
- state_type and codecvt_type members, the allocation of an internal
- buffer, the streamlined codecvt calls, etc.
-
-1998-12-21 Benjamin Kosnik <bkoz@haight.constant.com>
-
- * bits/std_sstream.h: Tweak.
- * bits/fstream.tcc: Remove unused stubs.
- * bits/std_fstream.h: Tweak.
-
-1998-12-17 Benjamin Kosnik <bkoz@tintin.cygnus.com>
-
- * bits/std_streambuf.h: Move _IO_file_flags into basic_filebuf.
- Remove unused _IO_* members, possibly put into filebuf, which may
- need them.
- * bits/std_fstream.h: Add _M_flag.
- * bits/sbuf_iter.h: Tweak.
-
- * bits/std_cstdio.h: Add SEEK_SET, SEEK_END, SEEK_CUR.
- * bits/ios_base.h: Use.
-
- * src/stdstreams.cc: Modify to reflect standard ctors for
- filebuf.
- * src/misc-inst.cc: Ditto.
-
- * bits/os_raw.h: Wrap in std namespace. Model parameters on
- underlying C library calls instead of the underlying unix
- filesystem.
- * src/os_raw.cc (_S_os_open): Use fopen, and compute a mode
- string as per p.659.
- (_S_os_close): Model on fopen.
- (_S_os_read): Model on fread.
- (_S_os_write): Model on fwrite.
- (_S_os_seek): Model on fseek.
-
- * bits/ios_base.h: Tweak.
- * bits/std_iosfwd.h: Wrap libio.h include with extern "C".
- * bits/std_sstream.h: Tweak.
- * bits/sstream.tcc: Remove old, uncalled code.
- * bits/std_fstream.h: Major reconstruction.
- * bits/fstream.tcc: Disable for the time being.
-
-1998-12-11 Benjamin Kosnik <bkoz@haight.constant.com>
-
- * bits/basic_string.h: Fix insert method.
- * stl/bits/stl_iterator.h: Remove previous hack.
- * bits/std_streambuf.h (sbumpc): Correct increment/return oddness.
- * bits/std_sstream.h: Fix more regressions.
- * testsuite/27/27stringbuf.C: Add (almost) complete tests.
-
-1998-12-09 Benjamin Kosnik <bkoz@loony.cygnus.com>
-
- * bits/basic_string.h: Tweak.
-
- * stl/bits/stl_iterator.h: Specialize iterator_traits for int so
- that string::append can be instantiated. HACK--checkin
- basic_string::iterator class.
-
-1998-12-07 Benjamin Kosnik <bkoz@haight.constant.com>
-
- * bits/std_sstream.h: Tweak.
- * bits/sstream.tcc: Tweak ctors.
-
- FIXME invalid friend defs. . WHERE ARE THEY??
-
- * bits/sbuf_iter.h (istreambuf_iterator::equal): Change to new
- names for basic_streambuf data members.
-
- * bits/std_streambuf.h: Add getloc() initialization bits.
- basic_streambuf(): Initialize with global locale data.
- imbue(): Set _M_init.
-
- * bits/std_streambuf.h(seekoff, seekpos): Complete with invalid
- stream pos == pos_type(off_type(-1)).
- in_avail(): Complete default implementation.
- snextc, sbumpc, sputbackc, sungetc, sputc, setg, xsputn,
- underflow, uflow, xsgetn, showmany, sync: Ditto.
-
- * bits/std_streambuf.h: _M_snextc_helper(): Remove.
-
- * bits/streambuf.tcc (sputbackc): Temporarily remove, need to
- re-populate with in-line member functions that are too big. Add
- initialization for _M_init.
-
-1998-12-03 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/sstream.tcc: Convert _Allocator to _Alloc. Add typedefs
- for basic_string and basic_streambuf. Scope _IO_buf_* pointers to
- streambuf_type.
-
- * src/stdstreams.cc (std): Disable wchar_t instantiations.
-
- * bits/c++config.h (_G_DEPRICATED): Add.
- (_G_USE_WCHAR_T): Add.
- * bits/std_streambuf.h: Radical reconstruction of basic_streambuf.
- Take out _Streambuf_base. Put _IO_FILE data member in basic_filebuf.
- * bits/streambuf.tcc (sputbackc): Remove ctor anti-def, Tweak.
- * bits/std_fstream.h: Add comment for implementation.
- * src/streambuf.cc: Remove.
- * src/Makefile.in: Remove streambuf.lo.
- * src/misc-inst.cc: Tweak.
-
-1998-12-02 Benjamin Kosnik <bkoz@cygnus.com>
-
- * bits/std_sstream.h: Add const_cast to rdbuf returns.
- * testsuite/27stringstream.C: Modify.
-
-1998-11-25 Benjamin Kosnik <bkoz@haight.constant.com>
-
- * src/Makefile.in (libstdc___la_OBJECTS): Add streambuf.lo.
- (libstdc___la_SOURCES): Ditto.
-
- * bits/streambuf.tcc: Tweak.
-
- * src/streambuf.cc: New file, add out-of-line definitions for
- _Streambuf_base.
-
- * src/misc-inst.cc: Remove _Streambuf_base instantiations.
- Comment out wchar_t versions of the buffer instantiations, for now.
-
- * bits/std_streambuf.h: Wrap libio.h include with extern "C".
- Remove template wrapper around _Streambuf_base.
- Move IO_* data members into _Streambuf_base.
- Move _Streambuf_base members into streambuf.tcc.
-
- * bits/c++config.h (_G_USE_LIBIO): Enable.
-
-1998-11-02 Nathan Myers <ncm@cantrip.org>
-
- * CHECKLIST: downgrade iterator implementations
- * DESIGN: fill out notes about unimplemented features
-
-1998-10-31 Nathan Myers <ncm@cantrip.org>
-
- * CHECKLIST: itemized list of all interfaces, and status of each.
-
-1998-10-30 Nathan Myers <ncm@cantrip.org>
-
- * RELEASE-NOTES: add notes about optional includes, linking, running
- * src/Makefile.am: handle header installs properly
- * src/Makefile.in: regenerate from new src/Makefile.am
-
-1998-10-30 Benjamin Kosnik <bkoz@loony.cygnus.com>
-
- * bits/basic_string.h: Revert npos pending ciso646.
- * src/Makefile.am: Revert CXX flags for now.
- * src/Makefile.in: Ditto.
-
-1998-10-30 Brendan Kehoe <brendan@cygnus.com>
-
- * bits/std_sstream.h: Re-order ctors to put base before member
- inits.
-
-1998-10-30 Ryszard Kabatek <kabatek@chemie.uni-halle.de>
-
- * stl/bits/std_memory.h: Fix typo.
-
-1998-10-30 Nathan Myers <ncm@cantrip.org>
-
- * src/string[A-Z]+.cc: change back to include "string.cc".
- * src/Makefile.am: revert filename changes. We need a different
- way to keep filenames in std/ from confusing Make.
- * bits/basic_string.h: define _S_max_size right, return it from
- string::max_size(); churn definition of npos again.
- * bits/string.tcc: fix _S_frob_size to avoid uint overflow.
- * bits/ios.cc: remove #ifdef on ios_base locale member initialization
- * BUGS: clear cruft.
- * C++STYLE: Touchup for release.
- * CHECKLIST: Touchup for release.
- * DESIGN: New file.
- * LICENSE.STD: Add requirement to retain copyrights and to provide
- the license with any copies.
- * README: Update for release.
- * TODO: Minor touchup for release.
- * RELEASE-NOTES: prepare for release
-
-1998-10-29 Ulrich Drepper <drepper@cygnus.com>
-
- * src/string[A-Z]+.cc: Include stdstring.cc, not string.cc.
-
- * src/Makefile.am (CXXFLAGS): Define _GNU_SOURCE.
-
- * src/Makefile.am (CXXLINK): New variable. Make sure we don't use
- CXX to generate the shared object.
-
- * src/Makefile.am (headers): Remove duplicated char_traits.h.
-
-1998-10-29 Brendan Kehoe <brendan@cygnus.com>
-
- * bits/basic_string.h (basic_string<>::max_size): Subtract 1, not
- 2, from npos, solving infinite loop problems.
-
-1998-10-29 18:41 Ulrich Drepper <drepper@cygnus.com>
-
- * src/Makefile.am: Add rules to install headers.
-
-1998-10-29 Nathan Myers <ncm@cantrip.org>
-
- * bits/std_ostream.h: Remove #ifdef on operator<< for long double
- * bits/ostream.tcc: Remove #ifdef on operator<< for long double
- * shadow/libio.h:
- * shadow/unistd.h:
- * shadow/bits/wrap_libio.h:
- * shadow/bits/wrap_unistd.h: New files.
-
-1998-10-29 Brendan Kehoe <brendan@cygnus.com>
-
- * bits/ostream.tcc (operator<<): Wrap with #ifdef
- _G_HAVE_LONG_DOUBLE_IO, to match bits/std_ostream.h.
-
-1998-10-29 Ulrich Drepper <drepper@cygnus.com>
-
- * src/Makefile.am: Add temporarily rules to make sure misc-inst.cc
- is not compiled with -fno-implicit-templates in effect.
-
- * src/Makefile.am (EXTRA_SOURCES): Add string.cc and wstring.cc here.
- (libstdc___la_SOURCES): Add all the string*.cc and wstring*.cc files.
- * src/stringADDCS.cc: Wrapper around string.cc to define individual
- function.
- * src/stringADDPS.cc: Likewise.
- * src/stringADDSC.cc: Likewise.
- * src/stringADDSP.cc: Likewise.
- * src/stringADDSS.cc: Likewise.
- * src/stringBIST.cc: Likewise.
- * src/stringBOST.cc: Likewise.
- * src/stringCHTR.cc: Likewise.
- * src/stringEQPS.cc: Likewise.
- * src/stringEQSP.cc: Likewise.
- * src/stringEQSS.cc: Likewise.
- * src/stringEXTRA.cc: Likewise.
- * src/stringGEPS.cc: Likewise.
- * src/stringGESP.cc: Likewise.
- * src/stringGESS.cc: Likewise.
- * src/stringGETLI.cc: Likewise.
- * src/stringGTPS.cc: Likewise.
- * src/stringGTSP.cc: Likewise.
- * src/stringGTSS.cc: Likewise.
- * src/stringINSER.cc: Likewise.
- * src/stringLEPS.cc: Likewise.
- * src/stringLESP.cc: Likewise.
- * src/stringLESS.cc: Likewise.
- * src/stringLTPS.cc: Likewise.
- * src/stringLTSP.cc: Likewise.
- * src/stringLTSS.cc: Likewise.
- * src/stringMAIN.cc: Likewise.
- * src/stringNEPS.cc: Likewise.
- * src/stringNESP.cc: Likewise.
- * src/stringNESS.cc: Likewise.
- * src/stringSCOPY.cc: Likewise.
- * src/wstringADDCS.cc: Wrapper around wstring.cc to define individual
- functions.
- * src/wstringADDPS.cc: Likewise.
- * src/wstringADDSC.cc: Likewise.
- * src/wstringADDSP.cc: Likewise.
- * src/wstringADDSS.cc: Likewise.
- * src/wstringBIST.cc: Likewise.
- * src/wstringBOST.cc: Likewise.
- * src/wstringCHTR.cc: Likewise.
- * src/wstringEQPS.cc: Likewise.
- * src/wstringEQSP.cc: Likewise.
- * src/wstringEQSS.cc: Likewise.
- * src/wstringEXTRA.cc: Likewise.
- * src/wstringGEPS.cc: Likewise.
- * src/wstringGESP.cc: Likewise.
- * src/wstringGESS.cc: Likewise.
- * src/wstringGETLI.cc: Likewise.
- * src/wstringGTPS.cc: Likewise.
- * src/wstringGTSP.cc: Likewise.
- * src/wstringGTSS.cc: Likewise.
- * src/wstringINSER.cc: Likewise.
- * src/wstringLEPS.cc: Likewise.
- * src/wstringLESP.cc: Likewise.
- * src/wstringLESS.cc: Likewise.
- * src/wstringLTPS.cc: Likewise.
- * src/wstringLTSP.cc: Likewise.
- * src/wstringLTSS.cc: Likewise.
- * src/wstringMAIN.cc: Likewise.
- * src/wstringNEPS.cc: Likewise.
- * src/wstringNESP.cc: Likewise.
- * src/wstringNESS.cc: Likewise.
- * src/wstringSCOPY.cc: Likewise.
- * src/string.cc: Remove now unneeded #defines now.
-
-1998-10-29 Nathan Myers <ncm@cantrip.org>
-
- * bits/locfacets.tcc: Define num_put::put(... const void*), improve
- integer formatting.
- * bits/ostream.tcc: Delete cruft, rewrite various op<< as members,
- add definitions for double, long double, const void*.
- * bits/std_ostream.h: Move op<<'s back into class ostream,
- define some in-line.
- * bits/string.tcc: fix unnecessary-copying bug in op[], typos in
- string construction from input iterators that Brendan reported.
-
-
-1998-10-28 Brendan Kehoe <brendan@cygnus.com>
-
- * stl/bits/stl_pair.h (op!=, op>, p<=, op>=): Add missing definitions.
-
- * bits/valarray_meta.h (class _Constant): Move declaration to the
- top, so the rest of the file can grok it.
- (_ApplyBinaryFunction::operator[]): Add missing parenthesis.
-
- * bits/std_sstream.h (basic_ostringstream::str): Fix typo of extra
- semicolon.
- (basic_stringstream::str, both instances): Likewise.
-
-1998-10-28 Nathan Myers <ncm@cantrip.org>
-
- * bits/locfacets.h: fix num_put<>::falsename()
- * bits/locfacets.tcc: fix _Format_cache<>::_M_populate bool name init
- * testsuite/27/27octfmt.C, testsuite/27/27octfmt.C: new tests
- * bits/locfacets.tcc: touch up _S_group_digits.
- * src/misc-inst.cc: adjust _S_group_digits insts to match.
-
-1998-10-27 Nathan Myers <ncm@cantrip.org>
-
- * stl/bits/stl_config.h: Turn off long long support, for now.
- * src/locale-inst.cc: Instantiate num_put<> only for
- ostreambuf_iterator, num_get only for istreambuf_iterator.
- * src/misc-inst.cc: Delete duplicate locale-related instantiations,
- add lots of new instantiations for num_put support function templates;
- remove junk about __match_parallel for ostreambuf_iterator.
-
-1998-10-27 Nathan Myers <ncm@cantrip.org>
-
- * bits/locfacets.tcc: Make num_put's digit grouping work.
- * bits/string.tcc: More uglification.
- * src/ios.cc: initialize format cache right
-
-1998-10-26 Nathan Myers <ncm@cantrip.org>
-
- * bits/basic_string.h: Uglify more names.
- * bits/fstream.tcc: Rewrite some filebut output handling.
- * bits/ios_base.h: Cosmetic.
- * bits/locfacets.h: Changes to _Format_cache for support of num_put.
- Also, specialize its default ctor for optimal default case.
- #ifdef out "long long" prototypes for now.
- * bits/locfacets.tcc: Do complete, optimized num_put<>::do_put
- implementation for integer types. (Still needs optimized
- std::copy() applied to ostreambuf_iterator to be optimal.)
- * bits/ostream.tcc: Write operator<< for long, bool types.
- Make other operators<< non-members, per spec. (Many still
- not implemented.) Identify those that fail to create a sentry.
- * bits/sbuf_iter: Cosmetic.
- * bits/std_fstream.h: Add some filebuf members.
- * bits/std_locale.h: Include <limits> for use in bits/locfacets.h
- * bits/std_ostream.h: Make member operators<< global, per spec.
- (Should do the same in std_istream.h.)
- * bits/std_string.h: Include <limits> for use in bits/locfacets.h
- * bits/string.tcc: Uglify names
- * shadow/bits/std_cstdlib.h: Optimize std::div and std::ldiv.
- * src/ios.cc: Specialize _Format_cache<> for char and wchar_t,
- for optimal default behavior.
-
-1998-10-26 Benjamin Kosnik <bkoz@loony.cygnus.com>
-
- * src/Makefile.in (libstdc___la_SOURCES): Add misc-inst.cc again.
-
-1998-10-21 Nathan Myers <ncm@cantrip.org>
-
- * src/locale.cc: make ctype operations actually work for glibc
- * CHECKLIST: add a comprehensive (i.e. huge) implementation
- checklist of stdlib facilities. Not filled in yet.
-
-1998-10-20 Nathan Myers <ncm@cantrip.org>
-
- * bits/string.tcc: fix patching NULs on string ends.
-
-1998-10-19 Nathan Myers <ncm@cantrip.org>
-
- * bits/std_iosfwd.h: eliminate "basic_" prefix on streambuf
- iterator forward declarations
- * bits/sbuf_iter.h: eliminate default template argument definitions
- on streambuf iterators (rely on <iosfwd> decls).
- * TODO: add note about lazy facet construction
- * bits/basic_ios.h: hit operator void* again. This should be the
- last time we need to touch it.
- * bits/basic_ios.h: copyfmt now returns *this.
- * bits/basic_string.h: fix npos again. npos cannot be defined as zero.
- * bits/basic_string.h: put back overloaded constructors; adjust
- behavior for default allocator on copy constructor.
- * bits/char_traits.h: make not_eof return correct type.
- * bits/loccore.h: remove call to bits/std_stdexcept.h; subincludes
- cannot be in non-standard headers or we get include loops (bad)
- * bits/loccore.h: delete ifdef'd out workarounds for old compiler bugs.
- * bits/loccore.h: add apparatus to support lazy construction of
- facets.
- * bits/locfacets.tcc: Uglify names in __match_parallel decl.
- * bits/std_ios.h: add include of <typeinfo> to get bad_cast for
- locale use_facet<> failure.
- * bits/std_locale.h: same.
- * bits/std_string.h: same.
- * bits/std_stdexcept.h: change exception member __msg from a
- reference to a regular object.
- * bits/string.tcc: add pasting a NUL on the end of strings after
- each operation. We had already left room for it, but previously
- plugged it only on a call to c_str(), but the WG changed the
- requirement when I wasn't looking. (Can't leave them alone for
- a second without they break something else.)
- * bits/valarray_meta.h: add Gaby's changes from 981018.
- * src/locale.cc: add new type _Bad_use_facet to be thrown on
- failure of use_facet<>().
- * src/stdexcept.cc: remove pragma, remove bkoz's #if 0,
- comment out leftover member definitions
-
-1998-10-16 Ulrich Drepper <drepper@cygnus.com>
-
- * string/Makefile.am: Revert last change.
- * math/Makefile.am: Likewise.
-
-1998-10-15 Benjamin Kosnik <bkoz@haight.constant.com>
-
- * bits/std_sstream.h: Fix typo.
-
-1998-10-15 Benjamin Kosnik <bkoz@haight.constant.com>
-
- * src/Makefile.am (libstdc___la_SOURCES): Add misc-inst.cc.
-
- * bits/std_sstream.h: Add typedefs, member definitions. Clean.
- * bits/std_stdexcept.h: Remove.
-
-1998-10-15 Benjamin Kosnik <bkoz@haight.constant.com>
-
- * src/misc-inst.cc: Tweak again.
-
- * bits/std_sstream.h: Move out-of-line definitions to sstream.tcc.
- * bits/sstream.tcc: New file.
-
-1998-10-15 Ulrich Drepper <drepper@cygnus.com>
-
- * configure.in: Test for machine/param.h, sys/machine.h and fp.h.
- Don't run AC_C_BIGENDIAN if machine/param.h or sys/machine.h are
- available.
-
- * math/mathconf.h: Include sys/machine.h, machine/param.h and fp.h
- if available.
- (INFINITE_P): Use IS_INF macro if available.
-
-1998-10-15 Ulrich Drepper <drepper@cygnus.com>
-
- * math/Makefile.am (EXTRA_LTLIBRARIES): Renamed from
- noinst_LTLIBRARIES.
- * string/Makefile.am: Likewise.
-
-1998-10-15 Ulrich Drepper <drepper@cygnus.com>
-
- * configure.in (AC_CHECK_FUNCS): Add finite, qfinite, fpclass, and
- qfpclass.
- (AC_CHECK_HEADERS): Add machine/endian.h. If no header specifying
- endianess is available run AC_C_BIGENDIAN.
-
- * math/clog10l.c: Add ugly hack around bug in Irix 6.2 header until
- fixincludes is fixed.
- * math/clogl.c: Likewise.
- * math/csqrtl.c: Likewise.
- * math/mycabsl.c: Likewise.
-
- * math/mathconf.h: Include machine/endian.h if possible. If no
- header describing endianess is available rely on WORDS_BIGENDIAN
- macro.
- (FINITE_P, FINITEF_P, FINITEL_P): Use finite functino if available.
- (INFINITE_P, INFINITEF_P, INFINITEL_P): Use fpclass function if
- available.
-
- * src/complex.cc (polar): Don't use sincos on OSF machines.
-
-1998-10-09 Benjamin Kosnik <bkoz@loony.cygnus.com>
-
- * src/locale-inst.cc: Don't instantiate time_get for
- ostreambuf_iterators as time_get::do_get_weekday and
- time_get::do_get_monthname use __match_parallel, which is illegal
- for ostreambuf_iterators to use, as they don't have operator== or
- operator!=.
- * bits/std_stdexcept.h: Add dtor definitions.
- Use stl/bits/std_stdexcept.h instead of this file?
- * bits/sbuf_iter.h : Tweak.
- * src/misc-inst.cc: Tweak.
-
-1998-10-09 Benjamin Kosnik <bkoz@haight.constant.com>
-
- * bits/std_stdexcept.h: New file.
- * src/stdexcept.cc: Define the following:
- logic_error::what()
- runtime_error::what()
-
- * src/misc-inst.cc: New file.
- * src/Makefile.in (libstdc___la_SOURCES): Add misc-inst.cc.
- (libstdc___la_OBJECTS): Add misc-inst.lo.
-
- * bits/basic_string.h: Disable non-standard ctor declarations.
- * bits/string.tcc: Disable definitions as well.
- * src/string.cc: Disable <ios> dependencies.
- * bits/sbuf_iter.h (std): Add default to template parameter for
- ostreambuf_iterator and istreambuf_iterator.
- * bits/std_iosfwd.h: Change istreambuf_iterator to
- basic_istreambuf_iterator. Likewise for ostreambuf.
- * bits/locfacets.tcc (__match_parallel): Fix typo.
- * src/ios.cc (imbue): Remove the _G_HAVE_LOCALE guards around
- ios_base::imbue.
- * bits/std_streambuf.h: Define _Streambuf_base::getloc().
- * bits/std_istream.h: Define the following:
- get (basic_streambuf<char_type,_Traits>& __sb, char_type __delim)
- get (char_type* __s, streamsize __n, char_type __delim);
- getline (char_type* __s, streamsize __n, char_type __delim)
- * bits/loccore.h : FIXME friend template code for use_facet.
- Add std_stdexcept.h include so that range_error will be defined.
- Add explicit conversion to string for range_error throws. (HACK?)
-
-1998-10-8 Ulrich Drepper <drepepr@cygnus.com>
-
- * configure.in: Check for sincos, sincosf, and sincosl.
- * src/complex.cc (polar): Use sincos if available.
-
- * bits/c++config.h: Fix hack to get LONG_LONG* definitions on Linux.
- * stl/bits/std_limits.h: Include bits/c++config.h. HACK!!!
-
- * math/clog10.c: Fix typo (FP_INIFITE_P -> INFINITE_P).
-
- * math/cpow.c: Use c_log, not clog.
- * math/cpowf.c: Likewise.
- * math/cpowl.c: Likewise.
-
- * math/cexp.c: Remove unused fpclassify calls. Use FINITE_P instead
- of isfinite call.
-
- * math/mathconf.h (FINITE_P, FINITEF_P, FINITEL_P): Define using
- isfinite macro if it is available.
- (INFINITE_P, INFINITEF_P, INFINITEL_P): Define using isinf macro.
-
- * math/ccosf.c: Use appropriate test macros for this type.
- * math/ccoshf.c: Likewise.
- * math/ccoshl.c: Likewise.
- * math/ccosl.c: Likewise.
- * math/cexpf.c: Likewise.
- * math/cexpl.c: Likewise.
- * math/clog10f.c: Likewise.
- * math/clog10l.c: Likewise.
- * math/clogf.c: Likewise.
- * math/clogl.c: Likewise.
- * math/csinf.c: Likewise.
- * math/csinhf.c: Likewise.
- * math/csinhl.c: Likewise.
- * math/csinl.c: Likewise.
- * math/csqrtf.c: Likewise.
- * math/csqrtl.c: Likewise.
- * math/ctanf.c: Likewise.
- * math/ctanhf.c: Likewise.
- * math/ctanhl.c: Likewise.
- * math/ctanl.c: Likewise.
-
-1998-10-06 Benjamin Kosnik <bkoz@bliss.nabi.net>
-
- * bits/basic_ios.h: Fix previous change.
-
-1998-10-06 Benjamin Kosnik <bkoz@bliss.nabi.net>
-
- * bits/basic_ios.h: Add const_cast<basic_ios&>
- (operator void*): As per 5.2.9 p 2, make sure static_cast is
- well-formed.
- * bits/char_traits.h: No _CharT for specialization, change to 0.
- * bits/basic_string.h: As per 9.4.2 p4, initialize with
- constant-initializer.
- * bits/locfacets.tcc: Add template parameter to initialization list.
-
-1998-10-02 Benjamin Kosnik <bkoz@loony.cygnus.com>
-
- * bits/basic_string.h: Should just be <, not <=.
-
-1998-10-01 Benjamin Kosnik <bkoz@bliss.nabi.net>
-
- * bits/string.tcc (compare): Fix for strings that are similar, but
- not the same length.
-
-1998-09-04 Brendan Kehoe <brendan@cygnus.com>
-
- * bits/c++config.h: For __linux__, define _GNU_SOURCE. This is
- required for us to get LONG_LONG_{MIN,MAX} out of gcc's limits.h.
- We can't check for __GLIBC__ here, since this header can be read
- before any system one (that would lead to features.h) being used.
-
- * stl/bits/stl_config.h (__STL_LONG_LONG): Re-enabled
-
- * stl/bits/std_limits.h [__STL_LONG_LONG]: Fix usage to use
- LONG_LONG_MIN, LONG_LONG_MAX, and ULONG_LONG_MAX.
-
- * stl/bits/stl_config.h: Don't do __STL_LONG_LONG, it uses
- LONGLONG_{MIN,MAX} which I can't find the origin of.
-
-1998-09-03 Brendan Kehoe <brendan@cygnus.com>
-
- * stl/bits/stl_iterator.h: Add extern decl of cin for now; where
- should this come from, if not iostream.h?
- (class istream_iterator): Make the new operator!= a friend also.
-
- * stl/bits/stl_config.h: Define __STL_HAS_WCHAR_T,
- __STL_MEMBER_TEMPLATE_CLASSES, and __STL_LONG_LONG. Don't include
- _G_config.h like the egcs one does.
-
-1998-09-01 Brendan Kehoe <brendan@cygnus.com>
-
- * bits/string.tcc: Call `_M_destroy' instead of `destroy'.
-
- * bits/valarray_meta.h: Throughout, rename _Expr typedefs to be
- _Expr1 (or _Expr_def if it's taken), and change definitions.
- Avoids redecl of the template parm.
-
- * bits/string.tcc (basic_string copy ctor): Fix typo in declaration.
- (operator>>): Initialize __ERROR with ios_base::goodbit, not 0.
-
- * bits/std_streambuf.h (_POSIX_SOURCE): Only define if it's not
- already done.
-
- * src/locale-inst.cc: New file, **TOTAL HACK**. There has GOT to
- be a better way to do this.
-
- * src/stlinst.cc: New file.
-
- * BUGS: New file, with various discovered bugs that need to be
- fixed.
-
- * Makefile.in, math/Makefile.in, string/Makefile.in,
- src/Makefile.in: Reran automake.
-
- Workarounds, these may not all be the final fixes:
-
- * bits/basic_ios.h (class basic_ios): Make _M_strbuf be protected,
- not private, for basic_istream::get() in std_istream.h to be able
- to use it.
- (basic_ios::operator void*): Don't use static_cast for the false
- case.
- (basic_ios::copyfmt): Fix `rhs.except' to be `rhs.exceptions ()'.
- This appears to have been in sep94, but didn't get corrected
- afterwards.
-
- * bits/basic_string.h (npos): Don't init here.
- * bits/string.tcc: Instead, do initialization here, to -1 instead
- of the size_type destructor.
-
- * src/traits.cc, src/wtraits.cc: New files.
- * bits/char_traits.h: For char_traits<char> and
- char_traits<wchar_t>, declare static, but define over in the src
- files.
-
- * bits/gslice.h: Comment out forward decls of _Array, valarray,
- gslice_array, and _GsliceExpression.
-
- * bits/std_cstdio.h [__sparc__ && __svr4__]: #undef all of
- clearerr, feof, ferror, getc, getchar, putc, putchar, stdin,
- stdout, and stderr. Note we do get unresolved refs to stdin, but
- that'll get fixed by the "true" solution.
-
- * bits/std_ios.h: Include <bits/std_streambuf.h> to get the
- definition of basic_streambuf.h, which is used in basic_ios.h to
- call pubimbue.
-
- * bits/std_streambuf.h: Don't include libio.h for now.
- (class basic_streambuf): Define missing methods pubimbue and
- getloc.
-
- * src/Makefile.am (libstdc___la_SOURCES): Add stdexcept.cc,
- ios.cc, os_raw.cc, stdstreams.cc, locale.cc, localename.cc,
- locale-inst.cc, stlinst.cc, traits.cc, wtraits.cc.
-
- * src/ios.cc: Instantiate basic_ios<char> and basic_ios<wchar_t>.
-
- * src/locale.cc: Come up with munged versions of _S_toupper,
- _S_tolower, and _S_table instead of the glibc-specific ones, so
- they're at least defined, if not necessarily usable. The glibc
- ones on any other system will yield unresolved refs to
- __ctype_{b,toupper,tolower}.
-
- * src/string.cc: Define all of ADDCS, ADDPS, et al. Add
- basic_ios, basic_istream, basic_ostream. Don't do char_traits
- anymore cuz of the explicit specialization in char_traits.h.
- Also add _S_string_copy, but this doesn't fix it -- cf the BUGS
- file for the details.
-
- * stl/bits/stl_algobase.h (equal): Fix to do `! (x==y)'.
- * stl/bits/stl_iterator.h (__distance): Likewise.
-
- * stl/bits/stl_iterator.h: As with 8/18 set, define missing op!=,
- op>, op<=, and op>= for reverse_iterator. Also add op!= for
- istream_iterator.
-
-1998-08-26 Brendan Kehoe <brendan@cygnus.com>
-
- * bits/string.tcc (basic_string::compare (const char*)): Fix to
- return 0, not 1.
-
-1998-08-25 Brendan Kehoe <brendan@cygnus.com>
-
- This should really be fixed with __asm__ directives renaming the
- symbol, but keeping the function.
- * math/clogf.c (c_logf): Renamed from `clogf'.
- * math/clogl.c (c_logl): Renamed from `clogl'.
- * math/complex-stub.h (c_logf, c_logl): Change decls.
-
- * bits/locfacets.h (class _Numeric_get): For friend decls, rename
- _CharT and _InIter parms, since they duplicate the enclosing ones.
-
-1998-08-19 Brendan Kehoe <brendan@cygnus.com>
-
- Deal with conflict of the iostreams `clog' and our internal
- complex number `clog'.
- * src/complex.cc: Call `c_log' instead of `clog'.
- * math/clog.c (c_log):: Renamed from clog.
- * math/complex-stub.h (c_log): Renamed from clog decl.
-
- * bits/locfacets.h (class _Numeric_get): Tweak fwd decls of the
- get/put classes.
- (num_put::put): #if 0 long long version, since we don't declare or
- define the long long version of do_put.
-
-1998-08-18 Nathan Myers <ncm@cantrip.org>
-
- * bits/basic_string.h: add basic_string<>::push_back(), fix return
- type of get_allocator (thanks to Ryszard Kabatek).
- * bits/char_traits.h: make init order of fpos<> members
- match decl order.
- * bits/ios_base.h: fix decls of ios_base bitmask & enum types, add
- flags _S_fd_in etc. for special filebuf ctor.
- * bits/locfacets.h: make _Numeric_get and _Format_cache public
- to work around problems in friend declarations.
- * bits/locfacets.tcc: qualify _S_get_cache in num_get<>::get(..bool&),
- fix random type errors & typos
- * bits/std_fstream.h: major refitting to bypass libio (for now),
- instrument to use bits/fstream.tcc template definitions
- * bits/std_iosfwd.h: mess with wrappers
- * bits/std_istream.h: remove meaningless comment
- * bits/std_ostream.h: instrument to work with ostream.tcc.
- * bits/std_streambuf.h: instrument to work with streambuf.tcc
- * bits/fstream.tcc: template defs for <fstream>
- * bits/ostream.tcc: template defs for <ostream>
- * bits/streambuf.tcc: template defs for <streambuf>
- * bits/os_raw.h: thin OS interface wrapper, to bypass libio (for now).
- * Delete .cc files, replace with bits/*.tcc
- src/fstream.cc
- src/istream.cc
- src/ostream.cc
- src/streambuf.cc
- * Add files:
- src/os_raw.cc: thin interface to OS, to bypass libio (for now).
- src/stdstreams.cc: cout, cin, etc. definitions
- (these still need work: must be init'd before user statics.)
-
-
-1998-08-18 Brendan Kehoe <brendan@cygnus.com>
-
- Sent to SGI before checkin:
- * stl/bits/stl_vector.h (operator!=, operator>, operator<=,
- operator>=): Define.
- * stl/bits/stl_bvector.h (vector<bool>::flip): Define method.
- * stl/bits/stl_deque.h (operator!=, operator>, operator<=,
- operator>=): Define.
- (operator==, operator<): Add inline.
- * stl/bits/stl_map.h (operator!=, operator<, operator<=,
- operator>=): Define.
- * stl/bits/stl_multimap.h (operator!=, operator<, operator<=,
- operator>=): Define.
- * stl/bits/stl_list.h (operator!=, operator<, operator<=,
- operator>=): Define.
- * stl/bits/stl_set.h (operator!=, operator<, operator<=,
- operator>=): Define.
- * stl/bits/stl_multiset.h (operator!=, operator<, operator<=,
- operator>=): Define.
-
- * bits/std_valarray.h (_Shift_left, _Shift_right): Inherit from
- unary_function.
-
-1998-08-15 Nathan Myers <ncm@cantrip.org>
-
- * bits/ios_base.h: change nominal bitmask and enum types to real enums
- * bits/locfacets.h: make _Format_cache bool names usable by num_get
- * bits/locfacets.tcc: make num_get<>::get(... bool&) use _Format_cache
- * bits/std_fstream.h: minor cleanups: ctors delegate to open()
- * bits/std_iosfwd.h: more bitmask changes, for ios_base::iostate
- * bits/std_sstream.h: formatting cleanups
-
-1998-08-14 Nathan Myers <ncm@cantrip.org>
-
- * bits/locfacets.tcc: implement num_get<>::do_get(..., bool&)
- * bits/locfacets.tcc: implement time_get<>::do_get_weekday
- * bits/locfacets.tcc: implement time_get<>::do_get_monthname
- * bits/locfacets.h: fix missing argument in do_get_monthname
- (this is a bug in the standard, ref. 36 in my list.)
- * bits/locfacets.h: make month and day name caches mutable
- * bits/locfacets.tcc: various typos in get() functions
- * bits/sbuf_iter.h: fix omission in istreambuf_iterator::op++().
- * bits/std_streambuf.h: fix typo in sgetn (Brendan)
-
-1998-08-12 Nathan Myers <ncm@cantrip.org>
- * move streambuf iterators to bits/sbuf_iter.h
- * optimize streambuf iterators
- * begin generalizing streambuf
- * begin implementing num_get<>::get (starting with bool)
- * patch stl/bits/stl_config.h so that relops operators are
- contained properly, out of the way.
-
-1998-07-24 Nathan Myers <ncm@cantrip.org>
- * Fold in SGI 3.11 changes (uglified names, some algorithm
- improvements, very minor bug fixes.)
- * Uglify names elsewhere to match (s/_T/_Tp/).
- * Begin work on optimized streambuf
- * Put complex.cc in namespace std:: (thanks Martin)
-
-1998-07-17 Nathan Myers <ncm@cantrip.org>
-
- * bits/char_traits.h: add _Char_traits_match template.
- * bits/string.tcc: fix bugs in various find_last* members.
- * bits/basic_string.h: redeclare member _S_find.
- * stl/bits/stl_iterator.h: change member names in nonstandard
- templates bidirectional_reverse_iterator and
- random_access_reverse_iterator to match expected changes
- in upstream source.
- * src/string.cc: fix definitions of stream operators.
-
-1998-07-14 16:06 Ulrich Drepper <drepper@cygnus.com>
-
- * Makefile.am (SUBDIRS): Add string.
-
- * configure.in: Test for long double functions separately. Test for
- ISO C 89 float functions. Test for endian.h and sys/isa_defs.h.
- Generate string/Makefile.
-
- * bits/c++config.h: Define mbstate_t for Solaris.
-
- * bits/char_traits.h: Remove unused #if.
-
- * bits/std_cwchar.h: Declare wide char string functions.
-
- * m4/stringfcts.m4: New file.
-
- * math/complex-stub.h: Declare nan.
- * math/nan.c: New file.
-
- * math/mathconf.h: Hack around missing endian.h file.
- Handle missing NAN definition.
- Handle missing float math functions.
-
- * src/Makefile.am (libstdc___la_LIBADD): Add libstring.la.
- (libstdc___la_LDFLAGS): Set version information.
-
- * src/complexl.cc: Don't compile any code if no long double functions
- are available.
-
- * string/Makefile.am: New file.
- * string/dummy.c: New file.
- * string/wmemchr.c: New file.
- * string/wmemcmp.c: New file.
- * string/wmemcpy.c: New file.
- * string/wmemmove.c: New file.
- * string/wmemset.c: New file.
-
-1998-07-14 10:45 Ulrich Drepper <drepper@cygnus.com>
-
- * configure.in: Make it work.
- * install-sh: New file.
- * missing: New file.
- * mkinstalldirs: New file.
- * m4/mathfcts.m4: New file.
- * math/Makefile.am: New file.
-
- * bits/std_complex.h (conj): Mark specializations as inline.
-
- * math/carg.c: New file.
- * math/cargf.c: New file.
- * math/cargl.c: New file.
- * math/mycabs.c: New file.
- * math/mycabsf.c: New file.
- * math/mycabsl.c: New file.
- * math/signbit.c: New file.
- * math/signbitf.c: New file.
- * math/signbitl.c: New file.
-
- * math/ccos.c: Avoid ISO C 9x functionality.
- * math/ccosf.c: Likewise.
- * math/ccosh.c: Likewise.
- * math/ccoshf.c: Likewise.
- * math/ccoshl.c: Likewise.
- * math/ccosl.c: Likewise.
- * math/cexp.c: Likewise.
- * math/cexpf.c: Likewise.
- * math/cexpl.c: Likewise.
- * math/clog.c: Likewise.
- * math/clog10.c: Likewise.
- * math/clog10f.c: Likewise.
- * math/clog10l.c: Likewise.
- * math/clogf.c: Likewise.
- * math/clogl.c: Likewise.
- * math/cpow.c: Likewise.
- * math/cpowf.c: Likewise.
- * math/cpowl.c: Likewise.
- * math/csin.c: Likewise.
- * math/csinf.c: Likewise.
- * math/csinh.c: Likewise.
- * math/csinhf.c: Likewise.
- * math/csinhl.c: Likewise.
- * math/csinl.c: Likewise.
- * math/csqrt.c: Likewise.
- * math/csqrtf.c: Likewise.
- * math/csqrtl.c: Likewise.
- * math/ctan.c: Likewise.
- * math/ctanf.c: Likewise.
- * math/ctanh.c: Likewise.
- * math/ctanhf.c: Likewise.
- * math/ctanhl.c: Likewise.
- * math/ctanl.c: Likewise.
-
- * math/complex-stub.h: New file.
-
- * math/mathconf.h: New file.
-
- * src/Makefile.am: New file.
-
- * src/complex.cc: Use mathconf.h instead of complex.h.
- Don't use cabs, always use __mycabs.
-
-1998-02-13 Brendan Kehoe <brendan@cygnus.com>
-
- * iterator (class reverse_iterator): Do some tweaks to be in sync
- w/ the FDIS.
diff --git a/libstdc++-v3/Makefile.in b/libstdc++-v3/Makefile.in
index 7f4e5691a3d..43d80236a21 100644
--- a/libstdc++-v3/Makefile.in
+++ b/libstdc++-v3/Makefile.in
@@ -45,7 +45,8 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/../config.guess \
$(top_srcdir)/scripts/testsuite_flags.in ChangeLog
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/../config/no-executables.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/../config/lead-dot.m4 \
+ $(top_srcdir)/../config/no-executables.m4 \
$(top_srcdir)/../libtool.m4 $(top_srcdir)/crossconfig.m4 \
$(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/configure.ac
diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4
index 757a0e8aed1..1cf013e38c0 100644
--- a/libstdc++-v3/acinclude.m4
+++ b/libstdc++-v3/acinclude.m4
@@ -797,14 +797,10 @@ AC_DEFUN([GLIBCXX_ENABLE_C99], [
in <cmath> in namespace std.])
fi
- # Check for the existence of <complex.h> complex functions.
+ # Check for the existence of <complex.h> complex math functions.
# This is necessary even though libstdc++ uses the builtin versions
# of these functions, because if the builtin cannot be used, a reference
# to the library function is emitted.
- # In addition, need to explicitly specify "C" compilation for this
- # one, or else the backwards C++ <complex.h> include will be selected.
- save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -x c"
AC_CHECK_HEADERS(complex.h, ac_has_complex_h=yes, ac_has_complex_h=no)
ac_c99_complex=no;
if test x"$ac_has_complex_h" = x"yes"; then
@@ -816,6 +812,7 @@ AC_DEFUN([GLIBCXX_ENABLE_C99], [
ccosf(tmpf);
ccoshf(tmpf);
cexpf(tmpf);
+ clogf(tmpf);
csinf(tmpf);
csinhf(tmpf);
csqrtf(tmpf);
@@ -828,6 +825,7 @@ AC_DEFUN([GLIBCXX_ENABLE_C99], [
ccos(tmpd);
ccosh(tmpd);
cexp(tmpd);
+ clog(tmpd);
csin(tmpd);
csinh(tmpd);
csqrt(tmpd);
@@ -840,6 +838,7 @@ AC_DEFUN([GLIBCXX_ENABLE_C99], [
ccosl(tmpld);
ccoshl(tmpld);
cexpl(tmpld);
+ clogl(tmpld);
csinl(tmpld);
csinhl(tmpld);
csqrtl(tmpld);
@@ -848,7 +847,6 @@ AC_DEFUN([GLIBCXX_ENABLE_C99], [
cpowl(tmpld, tmpld);
],[ac_c99_complex=yes], [ac_c99_complex=no])
fi
- CXXFLAGS="$save_CXXFLAGS"
AC_MSG_RESULT($ac_c99_complex)
if test x"$ac_c99_complex" = x"yes"; then
AC_DEFINE(_GLIBCXX_USE_C99_COMPLEX, 1,
@@ -879,12 +877,14 @@ AC_DEFUN([GLIBCXX_ENABLE_C99], [
AC_MSG_CHECKING([for ISO C99 support in <stdlib.h>])
AC_CACHE_VAL(ac_c99_stdlib, [
AC_TRY_COMPILE([#include <stdlib.h>],
- [char* tmp;
- strtof("gnu", &tmp);
+ [char* tmp;
+ strtof("gnu", &tmp);
strtold("gnu", &tmp);
- llabs(10);
- lldiv(10,1);
- atoll("10");
+ strtoll("gnu", &tmp, 10);
+ strtoull("gnu", &tmp, 10);
+ llabs(10);
+ lldiv(10,1);
+ atoll("10");
_Exit(0);
lldiv_t mydivt;],[ac_c99_stdlib=yes], [ac_c99_stdlib=no])
])
diff --git a/libstdc++-v3/aclocal.m4 b/libstdc++-v3/aclocal.m4
index 7dda07cdfd0..9c72982dce1 100644
--- a/libstdc++-v3/aclocal.m4
+++ b/libstdc++-v3/aclocal.m4
@@ -300,39 +300,6 @@ AC_DEFUN([AM_PROG_INSTALL_SH],
install_sh=${install_sh-"$am_aux_dir/install-sh"}
AC_SUBST(install_sh)])
-# -*- Autoconf -*-
-# Copyright (C) 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 1
-
-# Check whether the underlying file-system supports filenames
-# with a leading dot. For instance MS-DOS doesn't.
-AC_DEFUN([AM_SET_LEADING_DOT],
-[rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-AC_SUBST([am__leading_dot])])
-
# Add --enable-maintainer-mode option to configure.
# From Jim Meyering
@@ -817,6 +784,7 @@ AC_SUBST([am__tar])
AC_SUBST([am__untar])
]) # _AM_PROG_TAR
+m4_include([../config/lead-dot.m4])
m4_include([../config/no-executables.m4])
m4_include([../libtool.m4])
m4_include([crossconfig.m4])
diff --git a/libstdc++-v3/config/abi/powerpc64-linux-gnu/32/baseline_symbols.txt b/libstdc++-v3/config/abi/powerpc64-linux-gnu/32/baseline_symbols.txt
new file mode 100644
index 00000000000..f93151155c6
--- /dev/null
+++ b/libstdc++-v3/config/abi/powerpc64-linux-gnu/32/baseline_symbols.txt
@@ -0,0 +1,3083 @@
+FUNC:_ZN10__cxxabiv116__enum_type_infoD0Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv116__enum_type_infoD1Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv116__enum_type_infoD2Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv117__array_type_infoD0Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv117__array_type_infoD1Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv117__array_type_infoD2Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv117__class_type_infoD0Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv117__class_type_infoD1Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv117__class_type_infoD2Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv117__pbase_type_infoD0Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv117__pbase_type_infoD1Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv117__pbase_type_infoD2Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv119__pointer_type_infoD0Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv119__pointer_type_infoD1Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv119__pointer_type_infoD2Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv120__function_type_infoD0Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv120__function_type_infoD1Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv120__function_type_infoD2Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv120__si_class_type_infoD0Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv120__si_class_type_infoD1Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv120__si_class_type_infoD2Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv121__vmi_class_type_infoD0Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv121__vmi_class_type_infoD1Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv121__vmi_class_type_infoD2Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv123__fundamental_type_infoD0Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv123__fundamental_type_infoD1Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv123__fundamental_type_infoD2Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv129__pointer_to_member_type_infoD0Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv129__pointer_to_member_type_infoD1Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv129__pointer_to_member_type_infoD2Ev@@CXXABI_1.3
+FUNC:_ZN10__gnu_norm15_List_node_base4hookEPS0_@@GLIBCXX_3.4
+FUNC:_ZN10__gnu_norm15_List_node_base4swapERS0_S1_@@GLIBCXX_3.4
+FUNC:_ZN10__gnu_norm15_List_node_base6unhookEv@@GLIBCXX_3.4
+FUNC:_ZN10__gnu_norm15_List_node_base7reverseEv@@GLIBCXX_3.4
+FUNC:_ZN10__gnu_norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4
+FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4
+FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv@@GLIBCXX_3.4
+FUNC:_ZN11__gnu_debug19_Safe_sequence_base13_M_detach_allEv@@GLIBCXX_3.4
+FUNC:_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4
+FUNC:_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4
+FUNC:_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_@@GLIBCXX_3.4
+FUNC:_ZN9__gnu_cxx12__atomic_addEPVii@@GLIBCXX_3.4
+FUNC:_ZN9__gnu_cxx18__exchange_and_addEPVii@@GLIBCXX_3.4
+FUNC:_ZN9__gnu_cxx27__verbose_terminate_handlerEv@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PKvRNS0_15__upcast_resultE@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PPv@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv117__class_type_info12__do_dyncastEiNS0_10__sub_kindEPKS0_PKvS3_S5_RNS0_16__dyncast_resultE@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv117__class_type_info20__do_find_public_srcEiPKvPKS0_S2_@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv117__pbase_type_info10__do_catchEPKSt9type_infoPPvj@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv117__pbase_type_info15__pointer_catchEPKS0_PPvj@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv119__pointer_type_info14__is_pointer_pEv@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv119__pointer_type_info15__pointer_catchEPKNS_17__pbase_type_infoEPPvj@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv120__function_type_info15__is_function_pEv@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv120__si_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv121__vmi_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv121__vmi_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv121__vmi_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv129__pointer_to_member_type_info15__pointer_catchEPKNS_17__pbase_type_infoEPPvj@@CXXABI_1.3
+FUNC:_ZNK11__gnu_debug16_Error_formatter10_M_messageENS_13_Debug_msg_idE@@GLIBCXX_3.4
+FUNC:_ZNK11__gnu_debug16_Error_formatter10_Parameter14_M_print_fieldEPKS0_PKc@@GLIBCXX_3.4
+FUNC:_ZNK11__gnu_debug16_Error_formatter10_Parameter20_M_print_descriptionEPKS0_@@GLIBCXX_3.4
+FUNC:_ZNK11__gnu_debug16_Error_formatter13_M_print_wordEPKc@@GLIBCXX_3.4
+FUNC:_ZNK11__gnu_debug16_Error_formatter15_M_print_stringEPKc@@GLIBCXX_3.4
+FUNC:_ZNK11__gnu_debug16_Error_formatter8_M_errorEv@@GLIBCXX_3.4
+FUNC:_ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv@@GLIBCXX_3.4
+FUNC:_ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwjj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_j@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEwj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwjj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofERKS2_j@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEwj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13get_allocatorEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwjj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofERKS2_j@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEwj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwjj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofERKS2_j@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEwj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE2atEj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE3endEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_leakedEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_sharedEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4copyEPwjj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4dataEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwjj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findERKS2_j@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEwj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4rendEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4sizeEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5c_strEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5emptyEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwjj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindERKS2_j@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEwj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6_M_repEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6lengthEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6substrEjj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_dataEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_iendEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEPKw@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareERKS2_@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjPKw@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjPKwj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjRKS2_@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjRKS2_jj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M_checkEjPKc@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M_limitEjj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEj@@GLIBCXX_3.4
+FUNC:_ZNKSi6gcountEv@@GLIBCXX_3.4
+FUNC:_ZNKSi6sentrycvbEv@@GLIBCXX_3.4
+FUNC:_ZNKSo6sentrycvbEv@@GLIBCXX_3.4
+FUNC:_ZNKSs12find_last_ofEPKcj@@GLIBCXX_3.4
+FUNC:_ZNKSs12find_last_ofEPKcjj@@GLIBCXX_3.4
+FUNC:_ZNKSs12find_last_ofERKSsj@@GLIBCXX_3.4
+FUNC:_ZNKSs12find_last_ofEcj@@GLIBCXX_3.4
+FUNC:_ZNKSs13find_first_ofEPKcj@@GLIBCXX_3.4
+FUNC:_ZNKSs13find_first_ofEPKcjj@@GLIBCXX_3.4
+FUNC:_ZNKSs13find_first_ofERKSsj@@GLIBCXX_3.4
+FUNC:_ZNKSs13find_first_ofEcj@@GLIBCXX_3.4
+FUNC:_ZNKSs13get_allocatorEv@@GLIBCXX_3.4
+FUNC:_ZNKSs16find_last_not_ofEPKcj@@GLIBCXX_3.4
+FUNC:_ZNKSs16find_last_not_ofEPKcjj@@GLIBCXX_3.4
+FUNC:_ZNKSs16find_last_not_ofERKSsj@@GLIBCXX_3.4
+FUNC:_ZNKSs16find_last_not_ofEcj@@GLIBCXX_3.4
+FUNC:_ZNKSs17find_first_not_ofEPKcj@@GLIBCXX_3.4
+FUNC:_ZNKSs17find_first_not_ofEPKcjj@@GLIBCXX_3.4
+FUNC:_ZNKSs17find_first_not_ofERKSsj@@GLIBCXX_3.4
+FUNC:_ZNKSs17find_first_not_ofEcj@@GLIBCXX_3.4
+FUNC:_ZNKSs2atEj@@GLIBCXX_3.4
+FUNC:_ZNKSs3endEv@@GLIBCXX_3.4
+FUNC:_ZNKSs4_Rep12_M_is_leakedEv@@GLIBCXX_3.4
+FUNC:_ZNKSs4_Rep12_M_is_sharedEv@@GLIBCXX_3.4
+FUNC:_ZNKSs4copyEPcjj@@GLIBCXX_3.4
+FUNC:_ZNKSs4dataEv@@GLIBCXX_3.4
+FUNC:_ZNKSs4findEPKcj@@GLIBCXX_3.4
+FUNC:_ZNKSs4findEPKcjj@@GLIBCXX_3.4
+FUNC:_ZNKSs4findERKSsj@@GLIBCXX_3.4
+FUNC:_ZNKSs4findEcj@@GLIBCXX_3.4
+FUNC:_ZNKSs4rendEv@@GLIBCXX_3.4
+FUNC:_ZNKSs4sizeEv@@GLIBCXX_3.4
+FUNC:_ZNKSs5beginEv@@GLIBCXX_3.4
+FUNC:_ZNKSs5c_strEv@@GLIBCXX_3.4
+FUNC:_ZNKSs5emptyEv@@GLIBCXX_3.4
+FUNC:_ZNKSs5rfindEPKcj@@GLIBCXX_3.4
+FUNC:_ZNKSs5rfindEPKcjj@@GLIBCXX_3.4
+FUNC:_ZNKSs5rfindERKSsj@@GLIBCXX_3.4
+FUNC:_ZNKSs5rfindEcj@@GLIBCXX_3.4
+FUNC:_ZNKSs6_M_repEv@@GLIBCXX_3.4
+FUNC:_ZNKSs6lengthEv@@GLIBCXX_3.4
+FUNC:_ZNKSs6rbeginEv@@GLIBCXX_3.4
+FUNC:_ZNKSs6substrEjj@@GLIBCXX_3.4
+FUNC:_ZNKSs7_M_dataEv@@GLIBCXX_3.4
+FUNC:_ZNKSs7_M_iendEv@@GLIBCXX_3.4
+FUNC:_ZNKSs7compareEPKc@@GLIBCXX_3.4
+FUNC:_ZNKSs7compareERKSs@@GLIBCXX_3.4
+FUNC:_ZNKSs7compareEjjPKc@@GLIBCXX_3.4
+FUNC:_ZNKSs7compareEjjPKcj@@GLIBCXX_3.4
+FUNC:_ZNKSs7compareEjjRKSs@@GLIBCXX_3.4
+FUNC:_ZNKSs7compareEjjRKSsjj@@GLIBCXX_3.4
+FUNC:_ZNKSs8_M_checkEjPKc@@GLIBCXX_3.4
+FUNC:_ZNKSs8_M_limitEjj@@GLIBCXX_3.4
+FUNC:_ZNKSs8capacityEv@@GLIBCXX_3.4
+FUNC:_ZNKSs8max_sizeEv@@GLIBCXX_3.4
+FUNC:_ZNKSs9_M_ibeginEv@@GLIBCXX_3.4
+FUNC:_ZNKSsixEj@@GLIBCXX_3.4
+FUNC:_ZNKSt10istrstream5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE10neg_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE10pos_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE11curr_symbolEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE11do_groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE11frac_digitsEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE13decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE13do_neg_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE13do_pos_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE13negative_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE13positive_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE13thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE14do_curr_symbolEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE14do_frac_digitsEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_negative_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_positive_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE8groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE10neg_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE10pos_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE11curr_symbolEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE11do_groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE11frac_digitsEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE13decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE13do_neg_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE13do_pos_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE13negative_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE13positive_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE13thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE14do_curr_symbolEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE14do_frac_digitsEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_negative_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_positive_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE8groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE10neg_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE10pos_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE11curr_symbolEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE11do_groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE11frac_digitsEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE13decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE13do_neg_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE13do_pos_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE13negative_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE13positive_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE13thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE14do_curr_symbolEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE14do_frac_digitsEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_negative_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_positive_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE8groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE10neg_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE10pos_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE11curr_symbolEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE11do_groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE11frac_digitsEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE13decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE13do_neg_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE13do_pos_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE13negative_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE13positive_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE13thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE14do_curr_symbolEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE14do_frac_digitsEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_negative_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_positive_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE8groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10ostrstream5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10ostrstream6pcountEv@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIcE15_M_am_pm_formatEPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIcE15_M_date_formatsEPPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIcE15_M_time_formatsEPPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIcE19_M_days_abbreviatedEPPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIcE20_M_date_time_formatsEPPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIcE21_M_months_abbreviatedEPPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIcE6_M_putEPcjPKcPK2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIcE7_M_daysEPPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIcE8_M_am_pmEPPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIcE9_M_monthsEPPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIwE15_M_am_pm_formatEPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIwE15_M_date_formatsEPPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIwE15_M_time_formatsEPPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIwE19_M_days_abbreviatedEPPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIwE20_M_date_time_formatsEPPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIwE21_M_months_abbreviatedEPPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIwE6_M_putEPwjPKwPK2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIwE7_M_daysEPPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIwE8_M_am_pmEPPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt11logic_error4whatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCXX_3.4
+FUNC:_ZNKSt12strstreambuf6pcountEv@@GLIBCXX_3.4
+FUNC:_ZNKSt13basic_filebufIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4
+FUNC:_ZNKSt13basic_filebufIwSt11char_traitsIwEE7is_openEv@@GLIBCXX_3.4
+FUNC:_ZNKSt13basic_fstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt13basic_fstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt13basic_istreamIwSt11char_traitsIwEE6gcountEv@@GLIBCXX_3.4
+FUNC:_ZNKSt13basic_istreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCXX_3.4
+FUNC:_ZNKSt13basic_ostreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCXX_3.4
+FUNC:_ZNKSt13runtime_error4whatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt14basic_ifstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt14basic_ofstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt14basic_ofstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5ebackEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5egptrEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5epptrEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5pbaseEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE6getlocEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE4gptrEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE4pptrEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5ebackEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5egptrEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5epptrEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5pbaseEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE6getlocEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4
+FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4
+FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4
+FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4
+FUNC:_ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt19basic_istringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4
+FUNC:_ZNKSt19basic_istringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4
+FUNC:_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4
+FUNC:_ZNKSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIcE10do_tolowerEPcPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIcE10do_tolowerEc@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIcE10do_toupperEPcPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIcE10do_toupperEc@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIcE8do_widenEPKcS2_Pc@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIcE8do_widenEc@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIcE9do_narrowEPKcS2_cPc@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIcE9do_narrowEcc@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE10do_scan_isEtPKwS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE10do_tolowerEPwPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE10do_tolowerEw@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE10do_toupperEPwPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE10do_toupperEw@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE11do_scan_notEtPKwS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE19_M_convert_to_wmaskEt@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE5do_isEPKwS2_Pt@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE5do_isEtw@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE8do_widenEPKcS2_Pw@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE8do_widenEc@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE9do_narrowEPKwS2_cPc@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE9do_narrowEwc@@GLIBCXX_3.4
+FUNC:_ZNKSt6locale2id5_M_idEv@@GLIBCXX_3.4
+FUNC:_ZNKSt6locale4nameEv@@GLIBCXX_3.4
+FUNC:_ZNKSt6localeeqERKS_@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE11do_encodingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE13do_max_lengthEv@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE16do_always_noconvEv@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE5do_inERS0_PKcS4_RS4_PcS6_RS6_@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE6do_outERS0_PKcS4_RS4_PcS6_RS6_@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE9do_lengthERS0_PKcS4_j@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE11do_encodingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE13do_max_lengthEv@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE16do_always_noconvEv@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE5do_inERS0_PKcS4_RS4_PwS6_RS6_@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE6do_outERS0_PKwS4_RS4_PcS6_RS6_@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE9do_lengthERS0_PKcS4_j@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIcE10_M_compareEPKcS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIcE10do_compareEPKcS2_S2_S2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIcE12_M_transformEPcPKcj@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIcE12do_transformEPKcS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIcE4hashEPKcS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIcE7compareEPKcS2_S2_S2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIcE7do_hashEPKcS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIcE9transformEPKcS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIwE10_M_compareEPKwS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIwE10do_compareEPKwS2_S2_S2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIwE12_M_transformEPwPKwj@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIwE12do_transformEPKwS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIwE4hashEPKwS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIwE7compareEPKwS2_S2_S2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIwE7do_hashEPKwS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIwE9transformEPKwS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIjEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIlEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intImEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intItEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIxEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIyEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIjEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIlEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intImEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intItEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIxEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIyEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_group_intEPKcjcRSt8ios_basePcS9_Ri@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIlEES3_S3_RSt8ios_basecT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intImEES3_S3_RSt8ios_basecT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIxEES3_S3_RSt8ios_basecT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIyEES3_S3_RSt8ios_basecT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_group_floatEPKcjcS6_PcS7_Ri@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIdEES3_S3_RSt8ios_baseccT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIeEES3_S3_RSt8ios_baseccT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPKv@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecb@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecd@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basece@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecl@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecm@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecx@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecy@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6_M_padEciRSt8ios_basePcPKcRi@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPKv@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecb@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecd@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basece@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecl@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecm@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecx@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecy@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_group_intEPKcjwRSt8ios_basePwS9_Ri@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIlEES3_S3_RSt8ios_basewT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intImEES3_S3_RSt8ios_basewT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIxEES3_S3_RSt8ios_basewT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIyEES3_S3_RSt8ios_basewT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_group_floatEPKcjwPKwPwS9_Ri@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE15_M_insert_floatIdEES3_S3_RSt8ios_basewcT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE15_M_insert_floatIeEES3_S3_RSt8ios_basewcT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPKv@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewb@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewd@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewe@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewl@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewm@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewx@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewy@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6_M_padEwiRSt8ios_basePwPKwRi@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPKv@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewb@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewd@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewe@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewl@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewm@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewx@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewy@@GLIBCXX_3.4
+FUNC:_ZNKSt8ios_base7failure4whatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIcE18_M_convert_to_charERKSs@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIcE20_M_convert_from_charEPc@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIcE3getEiiiRKSs@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIcE4openERKSsRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIcE4openERKSsRKSt6localePKc@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIcE5closeEi@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIcE6do_getEiiiRKSs@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIcE7do_openERKSsRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIcE8do_closeEi@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIwE18_M_convert_to_charERKSbIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIwE20_M_convert_from_charEPc@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIwE3getEiiiRKSbIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIwE4openERKSsRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIwE4openERKSsRKSt6localePKc@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIwE5closeEi@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIwE6do_getEiiiRKSbIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIwE7do_openERKSsRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIwE8do_closeEi@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIcE11do_groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIcE11do_truenameEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIcE12do_falsenameEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIcE13decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIcE13thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIcE16do_decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIcE16do_thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIcE8groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIcE8truenameEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIcE9falsenameEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIwE11do_groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIwE11do_truenameEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIwE12do_falsenameEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIwE13decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIwE13thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIwE16do_decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIwE16do_thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIwE8groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIwE8truenameEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIwE9falsenameEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10date_orderEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13do_date_orderEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_numES3_S3_RiiijRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE15_M_extract_nameES3_S3_RiPPKcjRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE21_M_extract_via_formatES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10date_orderEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13do_date_orderEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_numES3_S3_RiiijRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE15_M_extract_nameES3_S3_RiPPKwjRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE21_M_extract_via_formatES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmPKcSB_@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmcc@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPK2tmcc@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmPKwSB_@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmcc@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPK2tmcc@@GLIBCXX_3.4
+FUNC:_ZNKSt8valarrayIjE4sizeEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE10exceptionsEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3badEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3tieEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4failEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4fillEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE6narrowEcc@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE7rdstateEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEcvPvEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE10exceptionsEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3badEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3eofEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3tieEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4failEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4fillEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4goodEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE5widenEc@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE6narrowEwc@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE7rdstateEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEcvPvEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEntEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9exception4whatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb0EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb1EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb0EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb1EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSbIwS2_SaIwEE@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSbIwS2_SaIwEE@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basecRKSs@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basece@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basecRKSs@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basece@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb0EEES3_S3_RSt8ios_basecRKSs@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb1EEES3_S3_RSt8ios_basecRKSs@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewe@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewe@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb0EEES3_S3_RSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb1EEES3_S3_RSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCXX_3.4
+FUNC:_ZNKSt9strstream5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9strstream6pcountEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9type_info10__do_catchEPKS_PPvj@@GLIBCXX_3.4
+FUNC:_ZNKSt9type_info11__do_upcastEPKN10__cxxabiv117__class_type_infoEPPv@@GLIBCXX_3.4
+FUNC:_ZNKSt9type_info14__is_pointer_pEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9type_info15__is_function_pEv@@GLIBCXX_3.4
+FUNC:_ZNSaIcEC1ERKS_@@GLIBCXX_3.4
+FUNC:_ZNSaIcEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSaIcEC2ERKS_@@GLIBCXX_3.4
+FUNC:_ZNSaIcEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSaIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSaIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSaIwEC1ERKS_@@GLIBCXX_3.4
+FUNC:_ZNSaIwEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSaIwEC2ERKS_@@GLIBCXX_3.4
+FUNC:_ZNSaIwEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSaIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSaIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC1EPwRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC2EPwRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_M_leak_hardEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_constructEjwRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_empty_repEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIPKwS2_EES8_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIS3_S2_EES6_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwPKwS5_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwS3_S3_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE14_M_replace_auxEjjjw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeEjjPKwj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE2atEj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE3endEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_destroyERKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_disposeERKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refcopyEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refdataEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep12_S_empty_repEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep13_M_set_leakedEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep15_M_set_sharableEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep7_M_grabERKS1_S5_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep8_M_cloneERKS1_j@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep9_S_createEjjRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4rendEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4swapERS2_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5clearEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS2_EE@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEjj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEPKw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEPKwj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_jj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEjw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEPKw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEPKwj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_jj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEjw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEjw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjPKw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjPKwj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjRKS2_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjRKS2_jj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjjw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6resizeEj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6resizeEjw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_dataEPw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_leakEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_NS4_IPKwS2_EES9_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwS8_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_RKS2_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_S5_S5_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_S6_S6_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_jw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjPKw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjPKwj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjRKS2_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjRKS2_jj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjjw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7reserveEj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9_M_mutateEjjj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9push_backEw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwjRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jjRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EjwRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jjRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EjwRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEPKw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEixEj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLEPKw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLEw@@GLIBCXX_3.4
+FUNC:_ZNSdC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+FUNC:_ZNSdC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSdC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+FUNC:_ZNSdC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSdD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSdD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSdD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSi3getEPci@@GLIBCXX_3.4
+FUNC:_ZNSi3getEPcic@@GLIBCXX_3.4
+FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEEc@@GLIBCXX_3.4
+FUNC:_ZNSi3getERc@@GLIBCXX_3.4
+FUNC:_ZNSi3getEv@@GLIBCXX_3.4
+FUNC:_ZNSi4peekEv@@GLIBCXX_3.4
+FUNC:_ZNSi4readEPci@@GLIBCXX_3.4
+FUNC:_ZNSi4syncEv@@GLIBCXX_3.4
+FUNC:_ZNSi5seekgESt4fposI11__mbstate_tE@@GLIBCXX_3.4
+FUNC:_ZNSi5seekgExSt12_Ios_Seekdir@@GLIBCXX_3.4
+FUNC:_ZNSi5tellgEv@@GLIBCXX_3.4
+FUNC:_ZNSi5ungetEv@@GLIBCXX_3.4
+FUNC:_ZNSi6ignoreEii@@GLIBCXX_3.4
+FUNC:_ZNSi6sentryC1ERSib@@GLIBCXX_3.4
+FUNC:_ZNSi6sentryC2ERSib@@GLIBCXX_3.4
+FUNC:_ZNSi7getlineEPci@@GLIBCXX_3.4
+FUNC:_ZNSi7getlineEPcic@@GLIBCXX_3.4
+FUNC:_ZNSi7putbackEc@@GLIBCXX_3.4
+FUNC:_ZNSi8readsomeEPci@@GLIBCXX_3.4
+FUNC:_ZNSiC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+FUNC:_ZNSiC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSiC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+FUNC:_ZNSiC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSiD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSiD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSiD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSirsEPFRSiS_E@@GLIBCXX_3.4
+FUNC:_ZNSirsEPFRSt8ios_baseS0_E@@GLIBCXX_3.4
+FUNC:_ZNSirsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E@@GLIBCXX_3.4
+FUNC:_ZNSirsEPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+FUNC:_ZNSirsERPv@@GLIBCXX_3.4
+FUNC:_ZNSirsERb@@GLIBCXX_3.4
+FUNC:_ZNSirsERd@@GLIBCXX_3.4
+FUNC:_ZNSirsERe@@GLIBCXX_3.4
+FUNC:_ZNSirsERf@@GLIBCXX_3.4
+FUNC:_ZNSirsERi@@GLIBCXX_3.4
+FUNC:_ZNSirsERj@@GLIBCXX_3.4
+FUNC:_ZNSirsERl@@GLIBCXX_3.4
+FUNC:_ZNSirsERm@@GLIBCXX_3.4
+FUNC:_ZNSirsERs@@GLIBCXX_3.4
+FUNC:_ZNSirsERt@@GLIBCXX_3.4
+FUNC:_ZNSirsERx@@GLIBCXX_3.4
+FUNC:_ZNSirsERy@@GLIBCXX_3.4
+FUNC:_ZNSo3putEc@@GLIBCXX_3.4
+FUNC:_ZNSo5flushEv@@GLIBCXX_3.4
+FUNC:_ZNSo5seekpESt4fposI11__mbstate_tE@@GLIBCXX_3.4
+FUNC:_ZNSo5seekpExSt12_Ios_Seekdir@@GLIBCXX_3.4
+FUNC:_ZNSo5tellpEv@@GLIBCXX_3.4
+FUNC:_ZNSo5writeEPKci@@GLIBCXX_3.4
+FUNC:_ZNSo6sentryC1ERSo@@GLIBCXX_3.4
+FUNC:_ZNSo6sentryC2ERSo@@GLIBCXX_3.4
+FUNC:_ZNSo6sentryD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSo6sentryD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSo8_M_writeEPKci@@GLIBCXX_3.4
+FUNC:_ZNSoC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+FUNC:_ZNSoC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSoC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+FUNC:_ZNSoC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSoD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSoD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSoD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSolsEPFRSoS_E@@GLIBCXX_3.4
+FUNC:_ZNSolsEPFRSt8ios_baseS0_E@@GLIBCXX_3.4
+FUNC:_ZNSolsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E@@GLIBCXX_3.4
+FUNC:_ZNSolsEPKv@@GLIBCXX_3.4
+FUNC:_ZNSolsEPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+FUNC:_ZNSolsEb@@GLIBCXX_3.4
+FUNC:_ZNSolsEd@@GLIBCXX_3.4
+FUNC:_ZNSolsEe@@GLIBCXX_3.4
+FUNC:_ZNSolsEf@@GLIBCXX_3.4
+FUNC:_ZNSolsEi@@GLIBCXX_3.4
+FUNC:_ZNSolsEj@@GLIBCXX_3.4
+FUNC:_ZNSolsEl@@GLIBCXX_3.4
+FUNC:_ZNSolsEm@@GLIBCXX_3.4
+FUNC:_ZNSolsEs@@GLIBCXX_3.4
+FUNC:_ZNSolsEt@@GLIBCXX_3.4
+FUNC:_ZNSolsEx@@GLIBCXX_3.4
+FUNC:_ZNSolsEy@@GLIBCXX_3.4
+FUNC:_ZNSs12_Alloc_hiderC1EPcRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSs12_Alloc_hiderC2EPcRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSs12_M_leak_hardEv@@GLIBCXX_3.4
+FUNC:_ZNSs12_S_constructEjcRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSs12_S_empty_repEv@@GLIBCXX_3.4
+FUNC:_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIPKcSsEES4_@@GLIBCXX_3.4
+FUNC:_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIS_SsEES2_@@GLIBCXX_3.4
+FUNC:_ZNSs13_S_copy_charsEPcPKcS1_@@GLIBCXX_3.4
+FUNC:_ZNSs13_S_copy_charsEPcS_S_@@GLIBCXX_3.4
+FUNC:_ZNSs14_M_replace_auxEjjjc@@GLIBCXX_3.4
+FUNC:_ZNSs15_M_replace_safeEjjPKcj@@GLIBCXX_3.4
+FUNC:_ZNSs2atEj@@GLIBCXX_3.4
+FUNC:_ZNSs3endEv@@GLIBCXX_3.4
+FUNC:_ZNSs4_Rep10_M_destroyERKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSs4_Rep10_M_disposeERKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSs4_Rep10_M_refcopyEv@@GLIBCXX_3.4
+FUNC:_ZNSs4_Rep10_M_refdataEv@@GLIBCXX_3.4
+FUNC:_ZNSs4_Rep12_S_empty_repEv@@GLIBCXX_3.4
+FUNC:_ZNSs4_Rep13_M_set_leakedEv@@GLIBCXX_3.4
+FUNC:_ZNSs4_Rep15_M_set_sharableEv@@GLIBCXX_3.4
+FUNC:_ZNSs4_Rep7_M_grabERKSaIcES2_@@GLIBCXX_3.4
+FUNC:_ZNSs4_Rep8_M_cloneERKSaIcEj@@GLIBCXX_3.4
+FUNC:_ZNSs4_Rep9_S_createEjjRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSs4rendEv@@GLIBCXX_3.4
+FUNC:_ZNSs4swapERSs@@GLIBCXX_3.4
+FUNC:_ZNSs5beginEv@@GLIBCXX_3.4
+FUNC:_ZNSs5clearEv@@GLIBCXX_3.4
+FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEE@@GLIBCXX_3.4
+FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEES2_@@GLIBCXX_3.4
+FUNC:_ZNSs5eraseEjj@@GLIBCXX_3.4
+FUNC:_ZNSs6appendEPKc@@GLIBCXX_3.4
+FUNC:_ZNSs6appendEPKcj@@GLIBCXX_3.4
+FUNC:_ZNSs6appendERKSs@@GLIBCXX_3.4
+FUNC:_ZNSs6appendERKSsjj@@GLIBCXX_3.4
+FUNC:_ZNSs6appendEjc@@GLIBCXX_3.4
+FUNC:_ZNSs6assignEPKc@@GLIBCXX_3.4
+FUNC:_ZNSs6assignEPKcj@@GLIBCXX_3.4
+FUNC:_ZNSs6assignERKSs@@GLIBCXX_3.4
+FUNC:_ZNSs6assignERKSsjj@@GLIBCXX_3.4
+FUNC:_ZNSs6assignEjc@@GLIBCXX_3.4
+FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEc@@GLIBCXX_3.4
+FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEjc@@GLIBCXX_3.4
+FUNC:_ZNSs6insertEjPKc@@GLIBCXX_3.4
+FUNC:_ZNSs6insertEjPKcj@@GLIBCXX_3.4
+FUNC:_ZNSs6insertEjRKSs@@GLIBCXX_3.4
+FUNC:_ZNSs6insertEjRKSsjj@@GLIBCXX_3.4
+FUNC:_ZNSs6insertEjjc@@GLIBCXX_3.4
+FUNC:_ZNSs6rbeginEv@@GLIBCXX_3.4
+FUNC:_ZNSs6resizeEj@@GLIBCXX_3.4
+FUNC:_ZNSs6resizeEjc@@GLIBCXX_3.4
+FUNC:_ZNSs7_M_dataEPc@@GLIBCXX_3.4
+FUNC:_ZNSs7_M_leakEv@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_NS0_IPKcSsEES5_@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKc@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcS4_@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcj@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_RKSs@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S1_S1_@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S2_S2_@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_jc@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEjjPKc@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEjjPKcj@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEjjRKSs@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEjjRKSsjj@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEjjjc@@GLIBCXX_3.4
+FUNC:_ZNSs7reserveEj@@GLIBCXX_3.4
+FUNC:_ZNSs9_M_mutateEjjj@@GLIBCXX_3.4
+FUNC:_ZNSs9push_backEc@@GLIBCXX_3.4
+FUNC:_ZNSsC1EPKcRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC1EPKcjRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC1ERKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC1ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSsC1ERKSsjj@@GLIBCXX_3.4
+FUNC:_ZNSsC1ERKSsjjRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC1EjcRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2EPKcjRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2ERKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSsC2ERKSsjj@@GLIBCXX_3.4
+FUNC:_ZNSsC2ERKSsjjRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2EjcRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSsD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSsaSEPKc@@GLIBCXX_3.4
+FUNC:_ZNSsaSERKSs@@GLIBCXX_3.4
+FUNC:_ZNSsaSEc@@GLIBCXX_3.4
+FUNC:_ZNSsixEj@@GLIBCXX_3.4
+FUNC:_ZNSspLEPKc@@GLIBCXX_3.4
+FUNC:_ZNSspLERKSs@@GLIBCXX_3.4
+FUNC:_ZNSspLEc@@GLIBCXX_3.4
+FUNC:_ZNSt10__num_base15_S_format_floatERKSt8ios_basePcc@@GLIBCXX_3.4
+FUNC:_ZNSt10bad_typeidD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10bad_typeidD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10bad_typeidD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstream3strEv@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstreamC1EPKc@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstreamC1EPKci@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstreamC1EPc@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstreamC1EPci@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstreamC2EPKc@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstreamC2EPKci@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstreamC2EPc@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstreamC2EPci@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstreamD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstreamD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstreamD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10money_base20_S_construct_patternEccc@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb0EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb0EEC1EP15__locale_structPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb0EEC1EPSt18__moneypunct_cacheIcLb0EEj@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb0EEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb0EEC2EP15__locale_structPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb0EEC2EPSt18__moneypunct_cacheIcLb0EEj@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb0EEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb0EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb0EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb0EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb1EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb1EEC1EP15__locale_structPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb1EEC1EPSt18__moneypunct_cacheIcLb1EEj@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb1EEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb1EEC2EP15__locale_structPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb1EEC2EPSt18__moneypunct_cacheIcLb1EEj@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb1EEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb1EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb1EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb1EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb0EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb0EEC1EP15__locale_structPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb0EEC1EPSt18__moneypunct_cacheIwLb0EEj@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb0EEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb0EEC2EP15__locale_structPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb0EEC2EPSt18__moneypunct_cacheIwLb0EEj@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb0EEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb0EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb0EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb0EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb1EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb1EEC1EP15__locale_structPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb1EEC1EPSt18__moneypunct_cacheIwLb1EEj@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb1EEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb1EEC2EP15__locale_structPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb1EEC2EPSt18__moneypunct_cacheIwLb1EEj@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb1EEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb1EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb1EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb1EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10ostrstream3strEv@@GLIBCXX_3.4
+FUNC:_ZNSt10ostrstream6freezeEb@@GLIBCXX_3.4
+FUNC:_ZNSt10ostrstreamC1EPciSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt10ostrstreamC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10ostrstreamC2EPciSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt10ostrstreamC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10ostrstreamD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10ostrstreamD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10ostrstreamD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIcE23_M_initialize_timepunctEP15__locale_struct@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIcEC1EP15__locale_structPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIcEC1EPSt17__timepunct_cacheIcEj@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIcEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIcEC2EP15__locale_structPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIcEC2EPSt17__timepunct_cacheIcEj@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIcEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIcED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIwE23_M_initialize_timepunctEP15__locale_struct@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIwEC1EP15__locale_structPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIwEC1EPSt17__timepunct_cacheIwEj@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIwEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIwEC2EP15__locale_structPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIwEC2EPSt17__timepunct_cacheIwEj@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIwEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIwED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt11logic_errorC1ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt11logic_errorC2ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt11logic_errorD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt11logic_errorD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt11logic_errorD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt11range_errorC1ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt11range_errorC2ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt11range_errorD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt11range_errorD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcE2fdEv@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcE4openEPKcSt13_Ios_Openmodei@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcE4syncEv@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcE5closeEv@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcE6xsgetnEPci@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcE6xsputnEPKci@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcE7seekoffExSt12_Ios_Seekdir@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcE8sys_openEP8_IO_FILESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcE8sys_openEiSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcE8xsputn_2EPKciS2_i@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcE9showmanycEv@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcEC1EP15pthread_mutex_t@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcEC2EP15pthread_mutex_t@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12ctype_bynameIcEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt12ctype_bynameIcEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt12ctype_bynameIcED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12ctype_bynameIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12ctype_bynameIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12ctype_bynameIwEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt12ctype_bynameIwEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt12ctype_bynameIwED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12ctype_bynameIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12ctype_bynameIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12domain_errorC1ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt12domain_errorC2ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt12domain_errorD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12domain_errorD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12length_errorC1ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt12length_errorC2ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt12length_errorD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12length_errorD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12out_of_rangeC1ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt12out_of_rangeC2ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt12out_of_rangeD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12out_of_rangeD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambuf3strEv@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambuf6freezeEb@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambuf6setbufEPci@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambuf7_M_freeEPc@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambuf7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambuf7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambuf8_M_allocEj@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambuf8_M_setupEPcS0_i@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambuf8overflowEi@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambuf9pbackfailEi@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambuf9underflowEv@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC1EPFPvjEPFvS0_E@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC1EPKai@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC1EPKci@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC1EPKhi@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC1EPaiS0_@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC1EPciS0_@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC1EPhiS0_@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC1Ei@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC2EPFPvjEPFvS0_E@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC2EPKai@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC2EPKci@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC2EPKhi@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC2EPaiS0_@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC2EPciS0_@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC2EPhiS0_@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC2Ei@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13bad_exceptionD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13bad_exceptionD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13bad_exceptionD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE13_M_set_bufferEi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE15_M_create_pbackEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE16_M_destroy_pbackEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE19_M_terminate_outputEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE22_M_convert_to_externalEPci@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE26_M_destroy_internal_bufferEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE27_M_allocate_internal_bufferEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4syncEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5closeEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6setbufEPci@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsgetnEPci@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsputnEPKci@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7_M_seekExSt12_Ios_Seekdir11__mbstate_t@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE8overflowEi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9pbackfailEi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9showmanycEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9underflowEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE13_M_set_bufferEi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE15_M_create_pbackEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE16_M_destroy_pbackEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE19_M_terminate_outputEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE22_M_convert_to_externalEPwi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE26_M_destroy_internal_bufferEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE27_M_allocate_internal_bufferEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4syncEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5closeEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6setbufEPwi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6xsgetnEPwi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6xsputnEPKwi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7_M_seekExSt12_Ios_Seekdir11__mbstate_t@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE8overflowEj@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9pbackfailEj@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9showmanycEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9underflowEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE5closeEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE5closeEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwiw@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERSt15basic_streambufIwS1_Ew@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERw@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4peekEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4readEPwi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4syncEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgESt4fposI11__mbstate_tE@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgExSt12_Ios_Seekdir@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5tellgEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5ungetEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEij@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentryC1ERS2_b@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentryC2ERS2_b@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwiw@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7putbackEw@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE8readsomeEPwi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRS2_S3_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRSt8ios_baseS4_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRSt9basic_iosIwS1_ES5_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERPv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERb@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERd@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERe@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERf@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERj@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERl@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERm@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERs@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERt@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERx@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERy@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE3putEw@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5flushEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpESt4fposI11__mbstate_tE@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpExSt12_Ios_Seekdir@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5tellpEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5writeEPKwi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryC1ERS2_@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryC2ERS2_@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE8_M_writeEPKwi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRS2_S3_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRSt8ios_baseS4_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRSt9basic_iosIwS1_ES5_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPKv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEb@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEd@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEe@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEf@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEj@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEl@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEm@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEs@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEt@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEx@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEy@@GLIBCXX_3.4
+FUNC:_ZNSt13runtime_errorC1ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt13runtime_errorC2ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt13runtime_errorD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13runtime_errorD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13runtime_errorD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE5closeEv@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE5closeEv@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE5closeEv@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14collate_bynameIcEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt14collate_bynameIcEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt14collate_bynameIcED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14collate_bynameIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14collate_bynameIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14collate_bynameIwEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt14collate_bynameIwEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt14collate_bynameIwED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14collate_bynameIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14collate_bynameIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14overflow_errorC1ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt14overflow_errorC2ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt14overflow_errorD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14overflow_errorD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15_List_node_base4hookEPS_@@GLIBCXX_3.4
+FUNC:_ZNSt15_List_node_base4swapERS_S0_@@GLIBCXX_3.4
+FUNC:_ZNSt15_List_node_base6unhookEv@@GLIBCXX_3.4
+FUNC:_ZNSt15_List_node_base7reverseEv@@GLIBCXX_3.4
+FUNC:_ZNSt15_List_node_base8transferEPS_S0_@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setgEPcS3_S3_@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setpEPcS3_@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4syncEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5gbumpEi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5pbumpEi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetcEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetnEPci@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sputcEc@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sputnEPKci@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5uflowEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6sbumpcEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6setbufEPci@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6snextcEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsgetnEPci@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsputnEPKci@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7pubsyncEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7sungetcEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8in_availEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8overflowEi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8pubimbueERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9pbackfailEi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9pubsetbufEPci@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9showmanycEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9sputbackcEc@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9underflowEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC1ERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC2ERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEaSERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setgEPwS3_S3_@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setpEPwS3_@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4syncEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5gbumpEi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5pbumpEi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetcEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetnEPwi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sputcEw@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sputnEPKwi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5uflowEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6sbumpcEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6setbufEPwi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6snextcEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6xsgetnEPwi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6xsputnEPKwi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7pubsyncEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7sungetcEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8in_availEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8overflowEj@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8pubimbueERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pbackfailEj@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pubsetbufEPwi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9showmanycEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9sputbackcEw@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9underflowEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC1ERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC2ERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEaSERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE15_M_update_egptrEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPci@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7_M_syncEPcjj@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9pbackfailEi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9underflowEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE15_M_update_egptrEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE6setbufEPwi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7_M_syncEPwjj@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE8overflowEj@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9pbackfailEj@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9underflowEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15messages_bynameIcEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt15messages_bynameIcEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt15messages_bynameIcED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15messages_bynameIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15messages_bynameIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15messages_bynameIwEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt15messages_bynameIwEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt15messages_bynameIwED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15messages_bynameIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15messages_bynameIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15numpunct_bynameIcEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt15numpunct_bynameIcEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt15numpunct_bynameIcED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15numpunct_bynameIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15numpunct_bynameIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15numpunct_bynameIwEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt15numpunct_bynameIwEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt15numpunct_bynameIwED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15numpunct_bynameIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15numpunct_bynameIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15underflow_errorC1ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt15underflow_errorC2ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt15underflow_errorD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15underflow_errorD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIcE8_M_cacheERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIcEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIcEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIcED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIwE8_M_cacheERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIwEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIwEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIwED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt16invalid_argumentC1ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt16invalid_argumentC2ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt16invalid_argumentD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt16invalid_argumentD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17__timepunct_cacheIcEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt17__timepunct_cacheIcEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt17__timepunct_cacheIcED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17__timepunct_cacheIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17__timepunct_cacheIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17__timepunct_cacheIwEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt17__timepunct_cacheIwEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt17__timepunct_cacheIwED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17__timepunct_cacheIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17__timepunct_cacheIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIcLb0EEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIcLb0EEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIcLb0EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIcLb0EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIcLb0EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIcLb1EEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIcLb1EEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIcLb1EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIcLb1EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIcLb1EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIwLb0EEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIwLb0EEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIwLb0EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIwLb0EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIwLb0EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIwLb1EEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIwLb1EEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIwLb1EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIwLb1EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIwLb1EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb0EE8_M_cacheERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb0EEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb0EEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb0EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb0EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb0EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb1EE8_M_cacheERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb1EEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb1EEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb1EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb1EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb1EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb0EE8_M_cacheERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb0EEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb0EEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb0EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb0EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb0EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb1EE8_M_cacheERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb1EEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb1EEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb1EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb1EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb1EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIcE13classic_tableEv@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIcEC1EP15__locale_structPKtbj@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIcEC1EPKtbj@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIcEC2EP15__locale_structPKtbj@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIcEC2EPKtbj@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIcED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIwE19_M_initialize_ctypeEv@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIwEC1EP15__locale_structj@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIwEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIwEC2EP15__locale_structj@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIwEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIwED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt6gslice8_IndexerC1EjRKSt8valarrayIjES4_@@GLIBCXX_3.4
+FUNC:_ZNSt6gslice8_IndexerC2EjRKSt8valarrayIjES4_@@GLIBCXX_3.4
+FUNC:_ZNSt6locale11_M_coalesceERKS_S1_i@@GLIBCXX_3.4
+FUNC:_ZNSt6locale21_S_normalize_categoryEi@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_Impl16_M_install_facetEPKNS_2idEPKNS_5facetE@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_Impl16_M_replace_facetEPKS0_PKNS_2idE@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_Impl19_M_replace_categoryEPKS0_PKPKNS_2idE@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_Impl21_M_replace_categoriesEPKS0_i@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_ImplC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_ImplC1ERKS0_j@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_ImplC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_ImplC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_ImplC2ERKS0_j@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_ImplC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_ImplD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_ImplD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5facet15_S_get_c_localeEv@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5facet17_S_clone_c_localeERP15__locale_struct@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5facet18_S_create_c_localeERP15__locale_structPKcS2_@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5facet19_S_destroy_c_localeERP15__locale_struct@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5facetD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5facetD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5facetD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt6locale6globalERKS_@@GLIBCXX_3.4
+FUNC:_ZNSt6locale7classicEv@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC1EPKc@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC1EPNS_5_ImplE@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC1ERKS_@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC1ERKS_PKci@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC1ERKS_S1_i@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC2EPKc@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC2EPNS_5_ImplE@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC2ERKS_@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC2ERKS_PKci@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC2ERKS_S1_i@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt6localeD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt6localeD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt6localeaSERKS_@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIcc11__mbstate_tEC1EP15__locale_structj@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIcc11__mbstate_tEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIcc11__mbstate_tEC2EP15__locale_structj@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIcc11__mbstate_tEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIcc11__mbstate_tED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIcc11__mbstate_tED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIcc11__mbstate_tED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIwc11__mbstate_tEC1EP15__locale_structj@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIwc11__mbstate_tEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIwc11__mbstate_tEC2EP15__locale_structj@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIwc11__mbstate_tEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIwc11__mbstate_tED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIwc11__mbstate_tED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIwc11__mbstate_tED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIcEC1EP15__locale_structj@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIcEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIcEC2EP15__locale_structj@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIcEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIcED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIwEC1EP15__locale_structj@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIwEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIwEC2EP15__locale_structj@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIwEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIwED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8bad_castD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8bad_castD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8bad_castD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base13_M_grow_wordsEib@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base15sync_with_stdioEb@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base17register_callbackEPFvNS_5eventERS_iEi@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base4InitC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base4InitC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base4InitD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base5imbueERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base6xallocEv@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base7_M_initEv@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base7failureC1ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base7failureC2ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base7failureD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base7failureD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base7failureD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_baseC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_baseC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_baseD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_baseD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_baseD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIcEC1EP15__locale_structPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIcEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIcEC2EP15__locale_structPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIcEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIcED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIwEC1EP15__locale_structPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIwEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIwEC2EP15__locale_structPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIwEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIwED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIcE22_M_initialize_numpunctEP15__locale_struct@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIcEC1EP15__locale_structj@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIcEC1EPSt16__numpunct_cacheIcEj@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIcEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIcEC2EP15__locale_structj@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIcEC2EPSt16__numpunct_cacheIcEj@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIcEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIcED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIwE22_M_initialize_numpunctEP15__locale_struct@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIwEC1EP15__locale_structj@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIwEC1EPSt16__numpunct_cacheIwEj@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIwEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIwEC2EP15__locale_structj@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIwEC2EPSt16__numpunct_cacheIwEj@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIwEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIwED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8valarrayIjEC1ERKS0_@@GLIBCXX_3.4
+FUNC:_ZNSt8valarrayIjEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8valarrayIjEC2ERKS0_@@GLIBCXX_3.4
+FUNC:_ZNSt8valarrayIjEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8valarrayIjED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8valarrayIjED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8valarrayIjEixEj@@GLIBCXX_3.4
+FUNC:_ZNSt9bad_allocD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9bad_allocD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9bad_allocD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE10exceptionsESt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE11_M_setstateESt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE15_M_cache_localeERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE3tieEPSo@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4fillEc@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5rdbufEPSt15basic_streambufIcS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE7copyfmtERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC1EPSt15basic_streambufIcS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC2EPSt15basic_streambufIcS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE10exceptionsESt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE11_M_setstateESt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE15_M_cache_localeERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE3tieEPSt13basic_ostreamIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4fillEw@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4initEPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5clearESt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5rdbufEPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE7copyfmtERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE8setstateESt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9exceptionD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9exceptionD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9exceptionD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9strstream3strEv@@GLIBCXX_3.4
+FUNC:_ZNSt9strstream6freezeEb@@GLIBCXX_3.4
+FUNC:_ZNSt9strstreamC1EPciSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt9strstreamC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9strstreamC2EPciSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt9strstreamC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9strstreamD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9strstreamD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9strstreamD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9type_infoD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9type_infoD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9type_infoD2Ev@@GLIBCXX_3.4
+FUNC:_ZSt10unexpectedv@@GLIBCXX_3.4
+FUNC:_ZSt13set_terminatePFvvE@@GLIBCXX_3.4
+FUNC:_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct@@GLIBCXX_3.4
+FUNC:_ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct@@GLIBCXX_3.4
+FUNC:_ZSt14__convert_to_vIfEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct@@GLIBCXX_3.4
+FUNC:_ZSt14set_unexpectedPFvvE@@GLIBCXX_3.4
+FUNC:_ZSt15set_new_handlerPFvvE@@GLIBCXX_3.4
+FUNC:_ZSt16__throw_bad_castv@@GLIBCXX_3.4
+FUNC:_ZSt17__throw_bad_allocv@@GLIBCXX_3.4
+FUNC:_ZSt18_Rb_tree_decrementPKSt18_Rb_tree_node_base@@GLIBCXX_3.4
+FUNC:_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base@@GLIBCXX_3.4
+FUNC:_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base@@GLIBCXX_3.4
+FUNC:_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base@@GLIBCXX_3.4
+FUNC:_ZSt18__throw_bad_typeidv@@GLIBCXX_3.4
+FUNC:_ZSt18uncaught_exceptionv@@GLIBCXX_3.4
+FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCXX_3.4
+FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCXX_3.4
+FUNC:_ZSt19__throw_range_errorPKc@@GLIBCXX_3.4
+FUNC:_ZSt20_Rb_tree_black_countPKSt18_Rb_tree_node_baseS1_@@GLIBCXX_3.4
+FUNC:_ZSt20_Rb_tree_rotate_leftPSt18_Rb_tree_node_baseRS0_@@GLIBCXX_3.4
+FUNC:_ZSt20__throw_domain_errorPKc@@GLIBCXX_3.4
+FUNC:_ZSt20__throw_length_errorPKc@@GLIBCXX_3.4
+FUNC:_ZSt20__throw_out_of_rangePKc@@GLIBCXX_3.4
+FUNC:_ZSt21_Rb_tree_rotate_rightPSt18_Rb_tree_node_baseRS0_@@GLIBCXX_3.4
+FUNC:_ZSt21__throw_bad_exceptionv@@GLIBCXX_3.4
+FUNC:_ZSt21__throw_runtime_errorPKc@@GLIBCXX_3.4
+FUNC:_ZSt22__throw_overflow_errorPKc@@GLIBCXX_3.4
+FUNC:_ZSt23__throw_underflow_errorPKc@@GLIBCXX_3.4
+FUNC:_ZSt24__throw_invalid_argumentPKc@@GLIBCXX_3.4
+FUNC:_ZSt28_Rb_tree_rebalance_for_erasePSt18_Rb_tree_node_baseRS_@@GLIBCXX_3.4
+FUNC:_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_@@GLIBCXX_3.4
+FUNC:_ZSt2wsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_@@GLIBCXX_3.4
+FUNC:_ZSt2wsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_@@GLIBCXX_3.4
+FUNC:_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCXX_3.4
+FUNC:_ZSt4endlIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCXX_3.4
+FUNC:_ZSt4endsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCXX_3.4
+FUNC:_ZSt4endsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCXX_3.4
+FUNC:_ZSt5flushIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCXX_3.4
+FUNC:_ZSt5flushIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCXX_3.4
+FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCXX_3.4
+FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_@@GLIBCXX_3.4
+FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCXX_3.4
+FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt10moneypunctIcLb0EEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt10moneypunctIwLb0EEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt11__timepunctIcEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt11__timepunctIwEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt5ctypeIcEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt5ctypeIwEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt7codecvtIcc11__mbstate_tEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt7codecvtIwc11__mbstate_tEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt7collateIcEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt7collateIwEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt8messagesIcEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt8messagesIwEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt8numpunctIcEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt8numpunctIwEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9terminatev@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt10moneypunctIcLb0EEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt10moneypunctIcLb1EEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt10moneypunctIwLb0EEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt10moneypunctIwLb1EEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt11__timepunctIcEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt11__timepunctIwEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt5ctypeIcEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt5ctypeIwEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt7codecvtIcc11__mbstate_tEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt7codecvtIwc11__mbstate_tEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt7collateIcEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt7collateIwEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt8messagesIcEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt8messagesIwEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt8numpunctIcEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt8numpunctIwEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKa@@GLIBCXX_3.4
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@@GLIBCXX_3.4
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKh@@GLIBCXX_3.4
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_a@@GLIBCXX_3.4
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@@GLIBCXX_3.4
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_h@@GLIBCXX_3.4
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags@@GLIBCXX_3.4
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision@@GLIBCXX_3.4
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags@@GLIBCXX_3.4
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St5_Setw@@GLIBCXX_3.4
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_Setbase@@GLIBCXX_3.4
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCXX_3.4
+FUNC:_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E@@GLIBCXX_3.4
+FUNC:_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStlsIdwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStlsIecSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStlsIewSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStlsIfcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStlsIfwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKS3_@@GLIBCXX_3.4
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKc@@GLIBCXX_3.4
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_S3_@@GLIBCXX_3.4
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags@@GLIBCXX_3.4
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision@@GLIBCXX_3.4
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags@@GLIBCXX_3.4
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St5_Setw@@GLIBCXX_3.4
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_Setbase@@GLIBCXX_3.4
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCXX_3.4
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_c@@GLIBCXX_3.4
+FUNC:_ZStlsIwSt11char_traitsIwESaIwEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E@@GLIBCXX_3.4
+FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_@@GLIBCXX_3.4
+FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8_@@GLIBCXX_3.4
+FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ES3_RKS6_@@GLIBCXX_3.4
+FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_EPKS3_RKS6_@@GLIBCXX_3.4
+FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ERKS6_S8_@@GLIBCXX_3.4
+FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ES3_RKS6_@@GLIBCXX_3.4
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Pa@@GLIBCXX_3.4
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ph@@GLIBCXX_3.4
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ra@@GLIBCXX_3.4
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Rh@@GLIBCXX_3.4
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_PS3_@@GLIBCXX_3.4
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_RS3_@@GLIBCXX_3.4
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags@@GLIBCXX_3.4
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St13_Setprecision@@GLIBCXX_3.4
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags@@GLIBCXX_3.4
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St5_Setw@@GLIBCXX_3.4
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_Setbase@@GLIBCXX_3.4
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCXX_3.4
+FUNC:_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCXX_3.4
+FUNC:_ZStrsIdcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStrsIdwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStrsIecSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStrsIewSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStrsIfcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStrsIfwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_PS3_@@GLIBCXX_3.4
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_RS3_@@GLIBCXX_3.4
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags@@GLIBCXX_3.4
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St13_Setprecision@@GLIBCXX_3.4
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags@@GLIBCXX_3.4
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St5_Setw@@GLIBCXX_3.4
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St8_Setbase@@GLIBCXX_3.4
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCXX_3.4
+FUNC:_ZStrsIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCXX_3.4
+FUNC:_ZThn8_NSdD0Ev@@GLIBCXX_3.4
+FUNC:_ZThn8_NSdD1Ev@@GLIBCXX_3.4
+FUNC:_ZThn8_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZThn8_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZThn8_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZThn8_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZThn8_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZThn8_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZThn8_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZThn8_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZThn8_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZThn8_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZThn8_NSt9strstreamD0Ev@@GLIBCXX_3.4
+FUNC:_ZThn8_NSt9strstreamD1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSdD0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSdD1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSiD0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSiD1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSoD0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSoD1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt10istrstreamD0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt10istrstreamD1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt10ostrstreamD0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt10ostrstreamD1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt13basic_istreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt13basic_istreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt13basic_ostreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt13basic_ostreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt9strstreamD0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt9strstreamD1Ev@@GLIBCXX_3.4
+FUNC:_ZdaPv@@GLIBCXX_3.4
+FUNC:_ZdaPvRKSt9nothrow_t@@GLIBCXX_3.4
+FUNC:_ZdlPv@@GLIBCXX_3.4
+FUNC:_ZdlPvRKSt9nothrow_t@@GLIBCXX_3.4
+FUNC:_Znaj@@GLIBCXX_3.4
+FUNC:_ZnajRKSt9nothrow_t@@GLIBCXX_3.4
+FUNC:_Znwj@@GLIBCXX_3.4
+FUNC:_ZnwjRKSt9nothrow_t@@GLIBCXX_3.4
+FUNC:__cxa_allocate_exception@@CXXABI_1.3
+FUNC:__cxa_bad_cast@@CXXABI_1.3
+FUNC:__cxa_bad_typeid@@CXXABI_1.3
+FUNC:__cxa_begin_catch@@CXXABI_1.3
+FUNC:__cxa_call_unexpected@@CXXABI_1.3
+FUNC:__cxa_current_exception_type@@CXXABI_1.3
+FUNC:__cxa_demangle@@CXXABI_1.3
+FUNC:__cxa_end_catch@@CXXABI_1.3
+FUNC:__cxa_free_exception@@CXXABI_1.3
+FUNC:__cxa_get_globals@@CXXABI_1.3
+FUNC:__cxa_get_globals_fast@@CXXABI_1.3
+FUNC:__cxa_guard_abort@@CXXABI_1.3
+FUNC:__cxa_guard_acquire@@CXXABI_1.3
+FUNC:__cxa_guard_release@@CXXABI_1.3
+FUNC:__cxa_pure_virtual@@CXXABI_1.3
+FUNC:__cxa_rethrow@@CXXABI_1.3
+FUNC:__cxa_throw@@CXXABI_1.3
+FUNC:__cxa_vec_cctor@@CXXABI_1.3
+FUNC:__cxa_vec_cleanup@@CXXABI_1.3
+FUNC:__cxa_vec_ctor@@CXXABI_1.3
+FUNC:__cxa_vec_delete2@@CXXABI_1.3
+FUNC:__cxa_vec_delete3@@CXXABI_1.3
+FUNC:__cxa_vec_delete@@CXXABI_1.3
+FUNC:__cxa_vec_dtor@@CXXABI_1.3
+FUNC:__cxa_vec_new2@@CXXABI_1.3
+FUNC:__cxa_vec_new3@@CXXABI_1.3
+FUNC:__cxa_vec_new@@CXXABI_1.3
+FUNC:__dynamic_cast@@CXXABI_1.3
+FUNC:__gxx_personality_v0@@CXXABI_1.3
+FUNC:atan2l@@GLIBCXX_3.4
+FUNC:coshl@@GLIBCXX_3.4
+FUNC:cosl@@GLIBCXX_3.4
+FUNC:expl@@GLIBCXX_3.4
+FUNC:hypotl@@GLIBCXX_3.4
+FUNC:log10l@@GLIBCXX_3.4
+FUNC:logl@@GLIBCXX_3.4
+FUNC:powl@@GLIBCXX_3.4
+FUNC:sinhl@@GLIBCXX_3.4
+FUNC:sinl@@GLIBCXX_3.4
+FUNC:sqrtl@@GLIBCXX_3.4
+FUNC:tanhl@@GLIBCXX_3.4
+FUNC:tanl@@GLIBCXX_3.4
+OBJECT:0:CXXABI_1.3
+OBJECT:0:GLIBCXX_3.4
+OBJECT:12:_ZTIN10__cxxabiv116__enum_type_infoE@@CXXABI_1.3
+OBJECT:12:_ZTIN10__cxxabiv117__array_type_infoE@@CXXABI_1.3
+OBJECT:12:_ZTIN10__cxxabiv117__class_type_infoE@@CXXABI_1.3
+OBJECT:12:_ZTIN10__cxxabiv117__pbase_type_infoE@@CXXABI_1.3
+OBJECT:12:_ZTIN10__cxxabiv119__pointer_type_infoE@@CXXABI_1.3
+OBJECT:12:_ZTIN10__cxxabiv120__function_type_infoE@@CXXABI_1.3
+OBJECT:12:_ZTIN10__cxxabiv120__si_class_type_infoE@@CXXABI_1.3
+OBJECT:12:_ZTIN10__cxxabiv121__vmi_class_type_infoE@@CXXABI_1.3
+OBJECT:12:_ZTIN10__cxxabiv123__fundamental_type_infoE@@CXXABI_1.3
+OBJECT:12:_ZTIN10__cxxabiv129__pointer_to_member_type_infoE@@CXXABI_1.3
+OBJECT:12:_ZTIN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTIN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTIN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTIN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTINSt8ios_base7failureE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt10bad_typeid@@GLIBCXX_3.4
+OBJECT:12:_ZTISt10istrstream@@GLIBCXX_3.4
+OBJECT:12:_ZTISt10ostrstream@@GLIBCXX_3.4
+OBJECT:12:_ZTISt11__timepunctIcE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt11__timepunctIwE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt11logic_error@@GLIBCXX_3.4
+OBJECT:12:_ZTISt11range_error@@GLIBCXX_3.4
+OBJECT:12:_ZTISt12ctype_bynameIcE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt12ctype_bynameIwE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt12domain_error@@GLIBCXX_3.4
+OBJECT:12:_ZTISt12length_error@@GLIBCXX_3.4
+OBJECT:12:_ZTISt12out_of_range@@GLIBCXX_3.4
+OBJECT:12:_ZTISt12strstreambuf@@GLIBCXX_3.4
+OBJECT:12:_ZTISt13bad_exception@@GLIBCXX_3.4
+OBJECT:12:_ZTISt13basic_filebufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt13basic_filebufIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt13runtime_error@@GLIBCXX_3.4
+OBJECT:12:_ZTISt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt14codecvt_bynameIcc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt14codecvt_bynameIwc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt14collate_bynameIcE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt14collate_bynameIwE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt14overflow_error@@GLIBCXX_3.4
+OBJECT:12:_ZTISt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt15messages_bynameIcE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt15messages_bynameIwE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt15numpunct_bynameIcE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt15numpunct_bynameIwE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt15underflow_error@@GLIBCXX_3.4
+OBJECT:12:_ZTISt16invalid_argument@@GLIBCXX_3.4
+OBJECT:12:_ZTISt17moneypunct_bynameIcLb0EE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt17moneypunct_bynameIcLb1EE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt17moneypunct_bynameIwLb0EE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt17moneypunct_bynameIwLb1EE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt5ctypeIwE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt7codecvtIcc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt7codecvtIwc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt7collateIcE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt7collateIwE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt8bad_cast@@GLIBCXX_3.4
+OBJECT:12:_ZTISt8numpunctIcE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt8numpunctIwE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt9bad_alloc@@GLIBCXX_3.4
+OBJECT:12:_ZTISt9basic_iosIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt9basic_iosIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt9strstream@@GLIBCXX_3.4
+OBJECT:12:_ZTSSt5ctypeIcE@@GLIBCXX_3.4
+OBJECT:12:_ZTSSt5ctypeIwE@@GLIBCXX_3.4
+OBJECT:12:_ZTSSt8bad_cast@@GLIBCXX_3.4
+OBJECT:12:_ZTSSt8ios_base@@GLIBCXX_3.4
+OBJECT:13:_ZTSSt9bad_alloc@@GLIBCXX_3.4
+OBJECT:13:_ZTSSt9exception@@GLIBCXX_3.4
+OBJECT:13:_ZTSSt9strstream@@GLIBCXX_3.4
+OBJECT:13:_ZTSSt9time_base@@GLIBCXX_3.4
+OBJECT:13:_ZTSSt9type_info@@GLIBCXX_3.4
+OBJECT:140:_ZSt4cerr@@GLIBCXX_3.4
+OBJECT:140:_ZSt4clog@@GLIBCXX_3.4
+OBJECT:140:_ZSt4cout@@GLIBCXX_3.4
+OBJECT:144:_ZSt3cin@@GLIBCXX_3.4
+OBJECT:144:_ZSt5wcerr@@GLIBCXX_3.4
+OBJECT:144:_ZSt5wclog@@GLIBCXX_3.4
+OBJECT:144:_ZSt5wcout@@GLIBCXX_3.4
+OBJECT:148:_ZSt4wcin@@GLIBCXX_3.4
+OBJECT:14:_ZTSSt7collateIcE@@GLIBCXX_3.4
+OBJECT:14:_ZTSSt7collateIwE@@GLIBCXX_3.4
+OBJECT:15:_ZTSSt10bad_typeid@@GLIBCXX_3.4
+OBJECT:15:_ZTSSt10ctype_base@@GLIBCXX_3.4
+OBJECT:15:_ZTSSt10istrstream@@GLIBCXX_3.4
+OBJECT:15:_ZTSSt10money_base@@GLIBCXX_3.4
+OBJECT:15:_ZTSSt10ostrstream@@GLIBCXX_3.4
+OBJECT:15:_ZTSSt8messagesIcE@@GLIBCXX_3.4
+OBJECT:15:_ZTSSt8messagesIwE@@GLIBCXX_3.4
+OBJECT:15:_ZTSSt8numpunctIcE@@GLIBCXX_3.4
+OBJECT:15:_ZTSSt8numpunctIwE@@GLIBCXX_3.4
+OBJECT:16:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4
+OBJECT:16:_ZNSs4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4
+OBJECT:16:_ZTIPKa@@CXXABI_1.3
+OBJECT:16:_ZTIPKb@@CXXABI_1.3
+OBJECT:16:_ZTIPKc@@CXXABI_1.3
+OBJECT:16:_ZTIPKd@@CXXABI_1.3
+OBJECT:16:_ZTIPKe@@CXXABI_1.3
+OBJECT:16:_ZTIPKf@@CXXABI_1.3
+OBJECT:16:_ZTIPKh@@CXXABI_1.3
+OBJECT:16:_ZTIPKi@@CXXABI_1.3
+OBJECT:16:_ZTIPKj@@CXXABI_1.3
+OBJECT:16:_ZTIPKl@@CXXABI_1.3
+OBJECT:16:_ZTIPKm@@CXXABI_1.3
+OBJECT:16:_ZTIPKs@@CXXABI_1.3
+OBJECT:16:_ZTIPKt@@CXXABI_1.3
+OBJECT:16:_ZTIPKv@@CXXABI_1.3
+OBJECT:16:_ZTIPKw@@CXXABI_1.3
+OBJECT:16:_ZTIPKx@@CXXABI_1.3
+OBJECT:16:_ZTIPKy@@CXXABI_1.3
+OBJECT:16:_ZTIPa@@CXXABI_1.3
+OBJECT:16:_ZTIPb@@CXXABI_1.3
+OBJECT:16:_ZTIPc@@CXXABI_1.3
+OBJECT:16:_ZTIPd@@CXXABI_1.3
+OBJECT:16:_ZTIPe@@CXXABI_1.3
+OBJECT:16:_ZTIPf@@CXXABI_1.3
+OBJECT:16:_ZTIPh@@CXXABI_1.3
+OBJECT:16:_ZTIPi@@CXXABI_1.3
+OBJECT:16:_ZTIPj@@CXXABI_1.3
+OBJECT:16:_ZTIPl@@CXXABI_1.3
+OBJECT:16:_ZTIPm@@CXXABI_1.3
+OBJECT:16:_ZTIPs@@CXXABI_1.3
+OBJECT:16:_ZTIPt@@CXXABI_1.3
+OBJECT:16:_ZTIPv@@CXXABI_1.3
+OBJECT:16:_ZTIPw@@CXXABI_1.3
+OBJECT:16:_ZTIPx@@CXXABI_1.3
+OBJECT:16:_ZTIPy@@CXXABI_1.3
+OBJECT:16:_ZTSSt11logic_error@@GLIBCXX_3.4
+OBJECT:16:_ZTSSt11range_error@@GLIBCXX_3.4
+OBJECT:16:_ZTTSt10istrstream@@GLIBCXX_3.4
+OBJECT:16:_ZTTSt10ostrstream@@GLIBCXX_3.4
+OBJECT:16:_ZTTSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:16:_ZTTSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:16:_ZTTSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:16:_ZTTSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:16:_ZTTSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:16:_ZTTSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:16:_ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:16:_ZTTSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:16:_ZTVNSt6locale5facetE@@GLIBCXX_3.4
+OBJECT:16:_ZTVSt11__timepunctIcE@@GLIBCXX_3.4
+OBJECT:16:_ZTVSt11__timepunctIwE@@GLIBCXX_3.4
+OBJECT:16:_ZTVSt8ios_base@@GLIBCXX_3.4
+OBJECT:16:_ZTVSt9basic_iosIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:16:_ZTVSt9basic_iosIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:17:_ZTSSt12codecvt_base@@GLIBCXX_3.4
+OBJECT:17:_ZTSSt12domain_error@@GLIBCXX_3.4
+OBJECT:17:_ZTSSt12length_error@@GLIBCXX_3.4
+OBJECT:17:_ZTSSt12out_of_range@@GLIBCXX_3.4
+OBJECT:17:_ZTSSt12strstreambuf@@GLIBCXX_3.4
+OBJECT:18:_ZTSNSt6locale5facetE@@GLIBCXX_3.4
+OBJECT:18:_ZTSSt13bad_exception@@GLIBCXX_3.4
+OBJECT:18:_ZTSSt13messages_base@@GLIBCXX_3.4
+OBJECT:18:_ZTSSt13runtime_error@@GLIBCXX_3.4
+OBJECT:19:_ZTSSt11__timepunctIcE@@GLIBCXX_3.4
+OBJECT:19:_ZTSSt11__timepunctIwE@@GLIBCXX_3.4
+OBJECT:19:_ZTSSt14overflow_error@@GLIBCXX_3.4
+OBJECT:1:_ZNSs4_Rep11_S_terminalE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt10moneypunctIcLb0EE4intlE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt10moneypunctIcLb1EE4intlE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt10moneypunctIwLb0EE4intlE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt10moneypunctIwLb1EE4intlE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt17moneypunct_bynameIcLb0EE4intlE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt17moneypunct_bynameIcLb1EE4intlE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt17moneypunct_bynameIwLb0EE4intlE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt17moneypunct_bynameIwLb1EE4intlE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZSt7nothrow@@GLIBCXX_3.4
+OBJECT:20:_ZTSSt12ctype_bynameIcE@@GLIBCXX_3.4
+OBJECT:20:_ZTSSt12ctype_bynameIwE@@GLIBCXX_3.4
+OBJECT:20:_ZTSSt15underflow_error@@GLIBCXX_3.4
+OBJECT:20:_ZTVNSt8ios_base7failureE@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt10bad_typeid@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt11logic_error@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt11range_error@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt12domain_error@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt12length_error@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt12out_of_range@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt13bad_exception@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt13runtime_error@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt14overflow_error@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt15underflow_error@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt16invalid_argument@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt8bad_cast@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt9bad_alloc@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt9exception@@GLIBCXX_3.4
+OBJECT:21:_ZTSSt16invalid_argument@@GLIBCXX_3.4
+OBJECT:22:_ZTSNSt8ios_base7failureE@@GLIBCXX_3.4
+OBJECT:22:_ZTSSt10moneypunctIcLb0EE@@GLIBCXX_3.4
+OBJECT:22:_ZTSSt10moneypunctIcLb1EE@@GLIBCXX_3.4
+OBJECT:22:_ZTSSt10moneypunctIwLb0EE@@GLIBCXX_3.4
+OBJECT:22:_ZTSSt10moneypunctIwLb1EE@@GLIBCXX_3.4
+OBJECT:22:_ZTSSt14collate_bynameIcE@@GLIBCXX_3.4
+OBJECT:22:_ZTSSt14collate_bynameIwE@@GLIBCXX_3.4
+OBJECT:23:_ZTSSt15messages_bynameIcE@@GLIBCXX_3.4
+OBJECT:23:_ZTSSt15messages_bynameIwE@@GLIBCXX_3.4
+OBJECT:23:_ZTSSt15numpunct_bynameIcE@@GLIBCXX_3.4
+OBJECT:23:_ZTSSt15numpunct_bynameIwE@@GLIBCXX_3.4
+OBJECT:24:_ZTISi@@GLIBCXX_3.4
+OBJECT:24:_ZTISo@@GLIBCXX_3.4
+OBJECT:24:_ZTISt13basic_istreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:24:_ZTVSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:24:_ZTVSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:24:_ZTVSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:24:_ZTVSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:28:_ZTSSt7codecvtIcc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:28:_ZTSSt7codecvtIwc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:28:_ZTTSd@@GLIBCXX_3.4
+OBJECT:28:_ZTTSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:28:_ZTVSt14collate_bynameIcE@@GLIBCXX_3.4
+OBJECT:28:_ZTVSt14collate_bynameIwE@@GLIBCXX_3.4
+OBJECT:28:_ZTVSt15messages_bynameIcE@@GLIBCXX_3.4
+OBJECT:28:_ZTVSt15messages_bynameIwE@@GLIBCXX_3.4
+OBJECT:28:_ZTVSt7collateIcE@@GLIBCXX_3.4
+OBJECT:28:_ZTVSt7collateIwE@@GLIBCXX_3.4
+OBJECT:28:_ZTVSt8messagesIcE@@GLIBCXX_3.4
+OBJECT:28:_ZTVSt8messagesIwE@@GLIBCXX_3.4
+OBJECT:29:_ZTSSt17moneypunct_bynameIcLb0EE@@GLIBCXX_3.4
+OBJECT:29:_ZTSSt17moneypunct_bynameIcLb1EE@@GLIBCXX_3.4
+OBJECT:29:_ZTSSt17moneypunct_bynameIwLb0EE@@GLIBCXX_3.4
+OBJECT:29:_ZTSSt17moneypunct_bynameIwLb1EE@@GLIBCXX_3.4
+OBJECT:29:_ZTSSt21__ctype_abstract_baseIcE@@GLIBCXX_3.4
+OBJECT:29:_ZTSSt21__ctype_abstract_baseIwE@@GLIBCXX_3.4
+OBJECT:2:_ZNSt10ctype_base5alnumE@@GLIBCXX_3.4
+OBJECT:2:_ZNSt10ctype_base5alphaE@@GLIBCXX_3.4
+OBJECT:2:_ZNSt10ctype_base5cntrlE@@GLIBCXX_3.4
+OBJECT:2:_ZNSt10ctype_base5digitE@@GLIBCXX_3.4
+OBJECT:2:_ZNSt10ctype_base5graphE@@GLIBCXX_3.4
+OBJECT:2:_ZNSt10ctype_base5lowerE@@GLIBCXX_3.4
+OBJECT:2:_ZNSt10ctype_base5printE@@GLIBCXX_3.4
+OBJECT:2:_ZNSt10ctype_base5punctE@@GLIBCXX_3.4
+OBJECT:2:_ZNSt10ctype_base5spaceE@@GLIBCXX_3.4
+OBJECT:2:_ZNSt10ctype_base5upperE@@GLIBCXX_3.4
+OBJECT:2:_ZNSt10ctype_base6xdigitE@@GLIBCXX_3.4
+OBJECT:2:_ZTSa@@CXXABI_1.3
+OBJECT:2:_ZTSb@@CXXABI_1.3
+OBJECT:2:_ZTSc@@CXXABI_1.3
+OBJECT:2:_ZTSd@@CXXABI_1.3
+OBJECT:2:_ZTSe@@CXXABI_1.3
+OBJECT:2:_ZTSf@@CXXABI_1.3
+OBJECT:2:_ZTSh@@CXXABI_1.3
+OBJECT:2:_ZTSi@@CXXABI_1.3
+OBJECT:2:_ZTSj@@CXXABI_1.3
+OBJECT:2:_ZTSl@@CXXABI_1.3
+OBJECT:2:_ZTSm@@CXXABI_1.3
+OBJECT:2:_ZTSs@@CXXABI_1.3
+OBJECT:2:_ZTSt@@CXXABI_1.3
+OBJECT:2:_ZTSv@@CXXABI_1.3
+OBJECT:2:_ZTSw@@CXXABI_1.3
+OBJECT:2:_ZTSx@@CXXABI_1.3
+OBJECT:2:_ZTSy@@CXXABI_1.3
+OBJECT:32:_ZTISd@@GLIBCXX_3.4
+OBJECT:32:_ZTISt10moneypunctIcLb0EE@@GLIBCXX_3.4
+OBJECT:32:_ZTISt10moneypunctIcLb1EE@@GLIBCXX_3.4
+OBJECT:32:_ZTISt10moneypunctIwLb0EE@@GLIBCXX_3.4
+OBJECT:32:_ZTISt10moneypunctIwLb1EE@@GLIBCXX_3.4
+OBJECT:32:_ZTISt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:32:_ZTISt21__ctype_abstract_baseIcE@@GLIBCXX_3.4
+OBJECT:32:_ZTISt21__ctype_abstract_baseIwE@@GLIBCXX_3.4
+OBJECT:32:_ZTISt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:32:_ZTISt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:32:_ZTISt5ctypeIcE@@GLIBCXX_3.4
+OBJECT:32:_ZTISt8messagesIcE@@GLIBCXX_3.4
+OBJECT:32:_ZTISt8messagesIwE@@GLIBCXX_3.4
+OBJECT:32:_ZTISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:32:_ZTISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:32:_ZTVN10__cxxabiv116__enum_type_infoE@@CXXABI_1.3
+OBJECT:32:_ZTVN10__cxxabiv117__array_type_infoE@@CXXABI_1.3
+OBJECT:32:_ZTVN10__cxxabiv120__function_type_infoE@@CXXABI_1.3
+OBJECT:32:_ZTVN10__cxxabiv123__fundamental_type_infoE@@CXXABI_1.3
+OBJECT:32:_ZTVSt9type_info@@GLIBCXX_3.4
+OBJECT:33:_ZTSN10__cxxabiv116__enum_type_infoE@@CXXABI_1.3
+OBJECT:34:_ZTSN10__cxxabiv117__array_type_infoE@@CXXABI_1.3
+OBJECT:34:_ZTSN10__cxxabiv117__class_type_infoE@@CXXABI_1.3
+OBJECT:34:_ZTSN10__cxxabiv117__pbase_type_infoE@@CXXABI_1.3
+OBJECT:34:_ZTSSt9basic_iosIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:34:_ZTSSt9basic_iosIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:36:_ZTSN10__cxxabiv119__pointer_type_infoE@@CXXABI_1.3
+OBJECT:36:_ZTSSt14codecvt_bynameIcc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:36:_ZTSSt14codecvt_bynameIwc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:36:_ZTVN10__cxxabiv117__pbase_type_infoE@@CXXABI_1.3
+OBJECT:36:_ZTVN10__cxxabiv119__pointer_type_infoE@@CXXABI_1.3
+OBJECT:36:_ZTVN10__cxxabiv129__pointer_to_member_type_infoE@@CXXABI_1.3
+OBJECT:36:_ZTVSt15numpunct_bynameIcE@@GLIBCXX_3.4
+OBJECT:36:_ZTVSt15numpunct_bynameIwE@@GLIBCXX_3.4
+OBJECT:36:_ZTVSt8numpunctIcE@@GLIBCXX_3.4
+OBJECT:36:_ZTVSt8numpunctIwE@@GLIBCXX_3.4
+OBJECT:37:_ZTSN10__cxxabiv120__function_type_infoE@@CXXABI_1.3
+OBJECT:37:_ZTSN10__cxxabiv120__si_class_type_infoE@@CXXABI_1.3
+OBJECT:38:_ZTSN10__cxxabiv121__vmi_class_type_infoE@@CXXABI_1.3
+OBJECT:39:_ZTSSt13basic_filebufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:39:_ZTSSt13basic_filebufIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:39:_ZTSSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:39:_ZTSSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:39:_ZTSSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:39:_ZTSSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:3:_ZTSPa@@CXXABI_1.3
+OBJECT:3:_ZTSPb@@CXXABI_1.3
+OBJECT:3:_ZTSPc@@CXXABI_1.3
+OBJECT:3:_ZTSPd@@CXXABI_1.3
+OBJECT:3:_ZTSPe@@CXXABI_1.3
+OBJECT:3:_ZTSPf@@CXXABI_1.3
+OBJECT:3:_ZTSPh@@CXXABI_1.3
+OBJECT:3:_ZTSPi@@CXXABI_1.3
+OBJECT:3:_ZTSPj@@CXXABI_1.3
+OBJECT:3:_ZTSPl@@CXXABI_1.3
+OBJECT:3:_ZTSPm@@CXXABI_1.3
+OBJECT:3:_ZTSPs@@CXXABI_1.3
+OBJECT:3:_ZTSPt@@CXXABI_1.3
+OBJECT:3:_ZTSPv@@CXXABI_1.3
+OBJECT:3:_ZTSPw@@CXXABI_1.3
+OBJECT:3:_ZTSPx@@CXXABI_1.3
+OBJECT:3:_ZTSPy@@CXXABI_1.3
+OBJECT:3:_ZTSSd@@GLIBCXX_3.4
+OBJECT:3:_ZTSSi@@GLIBCXX_3.4
+OBJECT:3:_ZTSSo@@GLIBCXX_3.4
+OBJECT:40:_ZTSN10__cxxabiv123__fundamental_type_infoE@@CXXABI_1.3
+OBJECT:40:_ZTSSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:40:_ZTSSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:40:_ZTSSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:40:_ZTSSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:40:_ZTSSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:40:_ZTTSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:40:_ZTTSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:40:_ZTTSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:40:_ZTTSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:40:_ZTTSt9strstream@@GLIBCXX_3.4
+OBJECT:40:_ZTVSi@@GLIBCXX_3.4
+OBJECT:40:_ZTVSo@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt10istrstream@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt10ostrstream@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:41:_ZTSSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:41:_ZTSSt15basic_streambufIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:44:_ZTVN10__cxxabiv117__class_type_infoE@@CXXABI_1.3
+OBJECT:44:_ZTVN10__cxxabiv120__si_class_type_infoE@@CXXABI_1.3
+OBJECT:44:_ZTVN10__cxxabiv121__vmi_class_type_infoE@@CXXABI_1.3
+OBJECT:44:_ZTVSt14codecvt_bynameIcc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:44:_ZTVSt14codecvt_bynameIwc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:44:_ZTVSt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:44:_ZTVSt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:44:_ZTVSt7codecvtIcc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:44:_ZTVSt7codecvtIwc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:45:_ZTSSt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:45:_ZTSSt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:46:_ZTSN10__cxxabiv129__pointer_to_member_type_infoE@@CXXABI_1.3
+OBJECT:46:_ZTSSt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:46:_ZTSSt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:48:_ZTVSt12ctype_bynameIcE@@GLIBCXX_3.4
+OBJECT:48:_ZTVSt5ctypeIcE@@GLIBCXX_3.4
+OBJECT:48:_ZTVSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:48:_ZTVSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:49:_ZTSN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:49:_ZTSN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:49:_ZTSSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:49:_ZTSSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_max_sizeE@@GLIBCXX_3.4
+OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_terminalE@@GLIBCXX_3.4
+OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4nposE@@GLIBCXX_3.4
+OBJECT:4:_ZNSs4_Rep11_S_max_sizeE@@GLIBCXX_3.4
+OBJECT:4:_ZNSs4nposE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt10__num_base11_S_atoms_inE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt10__num_base12_S_atoms_outE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt10money_base18_S_default_patternE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt10money_base8_S_atomsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt10moneypunctIcLb0EE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt10moneypunctIcLb1EE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt10moneypunctIwLb0EE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt10moneypunctIwLb1EE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt11__timepunctIcE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt11__timepunctIwE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIaE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIaE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIaE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIaE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIaE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIaE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIaE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIaE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIaE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIbE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIbE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIbE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIbE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIbE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIbE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIbE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIbE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIbE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIcE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIcE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIcE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIcE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIcE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIcE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIcE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIcE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIcE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIdE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIdE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIdE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIdE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIdE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIdE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIdE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIdE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIdE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIeE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIeE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIeE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIeE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIeE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIeE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIeE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIeE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIeE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIfE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIfE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIfE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIfE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIfE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIfE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIfE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIfE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIfE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIhE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIhE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIhE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIhE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIhE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIhE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIhE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIhE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIhE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIiE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIiE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIiE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIiE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIiE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIiE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIiE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIiE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIiE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIjE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIjE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIjE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIjE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIjE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIjE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIjE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIjE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIjE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIlE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIlE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIlE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIlE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIlE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIlE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIlE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIlE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIlE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsImE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsImE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsImE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsImE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsImE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsImE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsImE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsImE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsImE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIsE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIsE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIsE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIsE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIsE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIsE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIsE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIsE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIsE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsItE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsItE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsItE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsItE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsItE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsItE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsItE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsItE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsItE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIwE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIwE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIwE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIwE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIwE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIwE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIwE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIwE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIwE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIxE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIxE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIxE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIxE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIxE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIxE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIxE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIxE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIxE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIyE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIyE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIyE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIyE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIyE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIyE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIyE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIyE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIyE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt21__numeric_limits_base10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt21__numeric_limits_base11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt21__numeric_limits_base12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt21__numeric_limits_base12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt21__numeric_limits_base14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt21__numeric_limits_base14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt21__numeric_limits_base5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt21__numeric_limits_base6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt21__numeric_limits_base8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt5ctypeIcE10table_sizeE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt5ctypeIcE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt5ctypeIwE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt6locale3allE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt6locale4noneE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt6locale4timeE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt6locale5ctypeE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt6locale7collateE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt6locale7numericE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt6locale8messagesE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt6locale8monetaryE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt7codecvtIcc11__mbstate_tE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt7codecvtIwc11__mbstate_tE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt7collateIcE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt7collateIwE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base10floatfieldE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base10scientificE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base11adjustfieldE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base2inE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base3appE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base3ateE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base3begE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base3curE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base3decE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base3endE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base3hexE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base3octE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base3outE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base4leftE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base5fixedE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base5rightE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base5truncE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base6badbitE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base6binaryE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base6eofbitE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base6skipwsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base7failbitE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base7goodbitE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base7showposE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base7unitbufE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base8internalE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base8showbaseE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base9basefieldE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base9boolalphaE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base9showpointE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base9uppercaseE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8messagesIcE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8messagesIwE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8numpunctIcE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8numpunctIwE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZTSPKa@@CXXABI_1.3
+OBJECT:4:_ZTSPKb@@CXXABI_1.3
+OBJECT:4:_ZTSPKc@@CXXABI_1.3
+OBJECT:4:_ZTSPKd@@CXXABI_1.3
+OBJECT:4:_ZTSPKe@@CXXABI_1.3
+OBJECT:4:_ZTSPKf@@CXXABI_1.3
+OBJECT:4:_ZTSPKh@@CXXABI_1.3
+OBJECT:4:_ZTSPKi@@CXXABI_1.3
+OBJECT:4:_ZTSPKj@@CXXABI_1.3
+OBJECT:4:_ZTSPKl@@CXXABI_1.3
+OBJECT:4:_ZTSPKm@@CXXABI_1.3
+OBJECT:4:_ZTSPKs@@CXXABI_1.3
+OBJECT:4:_ZTSPKt@@CXXABI_1.3
+OBJECT:4:_ZTSPKv@@CXXABI_1.3
+OBJECT:4:_ZTSPKw@@CXXABI_1.3
+OBJECT:4:_ZTSPKx@@CXXABI_1.3
+OBJECT:4:_ZTSPKy@@CXXABI_1.3
+OBJECT:50:_ZTSSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:50:_ZTSSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:50:_ZTSSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:50:_ZTSSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:52:_ZTVSt10moneypunctIcLb0EE@@GLIBCXX_3.4
+OBJECT:52:_ZTVSt10moneypunctIcLb1EE@@GLIBCXX_3.4
+OBJECT:52:_ZTVSt10moneypunctIwLb0EE@@GLIBCXX_3.4
+OBJECT:52:_ZTVSt10moneypunctIwLb1EE@@GLIBCXX_3.4
+OBJECT:52:_ZTVSt17moneypunct_bynameIcLb0EE@@GLIBCXX_3.4
+OBJECT:52:_ZTVSt17moneypunct_bynameIcLb1EE@@GLIBCXX_3.4
+OBJECT:52:_ZTVSt17moneypunct_bynameIwLb0EE@@GLIBCXX_3.4
+OBJECT:52:_ZTVSt17moneypunct_bynameIwLb1EE@@GLIBCXX_3.4
+OBJECT:54:_ZTSN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:54:_ZTSN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:56:_ZNSt17__timepunct_cacheIcE12_S_timezonesE@@GLIBCXX_3.4
+OBJECT:56:_ZNSt17__timepunct_cacheIwE12_S_timezonesE@@GLIBCXX_3.4
+OBJECT:58:_ZTSSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:58:_ZTSSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:58:_ZTSSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:58:_ZTSSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:59:_ZTSSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:59:_ZTSSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:59:_ZTSSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:59:_ZTSSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:60:_ZTSSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:60:_ZTSSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:60:_ZTSSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:60:_ZTSSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:60:_ZTVSd@@GLIBCXX_3.4
+OBJECT:60:_ZTVSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:60:_ZTVSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:60:_ZTVSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:60:_ZTVSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:60:_ZTVSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:60:_ZTVSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:60:_ZTVSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:60:_ZTVSt9strstream@@GLIBCXX_3.4
+OBJECT:64:_ZTVN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:64:_ZTVN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:64:_ZTVSt12ctype_bynameIwE@@GLIBCXX_3.4
+OBJECT:64:_ZTVSt12strstreambuf@@GLIBCXX_3.4
+OBJECT:64:_ZTVSt13basic_filebufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:64:_ZTVSt13basic_filebufIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:64:_ZTVSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:64:_ZTVSt15basic_streambufIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:64:_ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:64:_ZTVSt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:64:_ZTVSt21__ctype_abstract_baseIcE@@GLIBCXX_3.4
+OBJECT:64:_ZTVSt21__ctype_abstract_baseIwE@@GLIBCXX_3.4
+OBJECT:64:_ZTVSt5ctypeIwE@@GLIBCXX_3.4
+OBJECT:67:_ZTSSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:67:_ZTSSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:67:_ZTSSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:67:_ZTSSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt10moneypunctIcLb0EE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt10moneypunctIcLb1EE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt10moneypunctIwLb0EE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt10moneypunctIwLb1EE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt11__timepunctIcE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt11__timepunctIwE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt7collateIcE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt7collateIwE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt8messagesIcE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt8messagesIwE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt8numpunctIcE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt8numpunctIwE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZTINSt6locale5facetE@@GLIBCXX_3.4
+OBJECT:8:_ZTISt10ctype_base@@GLIBCXX_3.4
+OBJECT:8:_ZTISt10money_base@@GLIBCXX_3.4
+OBJECT:8:_ZTISt12codecvt_base@@GLIBCXX_3.4
+OBJECT:8:_ZTISt13messages_base@@GLIBCXX_3.4
+OBJECT:8:_ZTISt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:8:_ZTISt15basic_streambufIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:8:_ZTISt8ios_base@@GLIBCXX_3.4
+OBJECT:8:_ZTISt9exception@@GLIBCXX_3.4
+OBJECT:8:_ZTISt9time_base@@GLIBCXX_3.4
+OBJECT:8:_ZTISt9type_info@@GLIBCXX_3.4
+OBJECT:8:_ZTIa@@CXXABI_1.3
+OBJECT:8:_ZTIb@@CXXABI_1.3
+OBJECT:8:_ZTIc@@CXXABI_1.3
+OBJECT:8:_ZTId@@CXXABI_1.3
+OBJECT:8:_ZTIe@@CXXABI_1.3
+OBJECT:8:_ZTIf@@CXXABI_1.3
+OBJECT:8:_ZTIh@@CXXABI_1.3
+OBJECT:8:_ZTIi@@CXXABI_1.3
+OBJECT:8:_ZTIj@@CXXABI_1.3
+OBJECT:8:_ZTIl@@CXXABI_1.3
+OBJECT:8:_ZTIm@@CXXABI_1.3
+OBJECT:8:_ZTIs@@CXXABI_1.3
+OBJECT:8:_ZTIt@@CXXABI_1.3
+OBJECT:8:_ZTIv@@CXXABI_1.3
+OBJECT:8:_ZTIw@@CXXABI_1.3
+OBJECT:8:_ZTIx@@CXXABI_1.3
+OBJECT:8:_ZTIy@@CXXABI_1.3
+OBJECT:8:_ZTTSi@@GLIBCXX_3.4
+OBJECT:8:_ZTTSo@@GLIBCXX_3.4
+OBJECT:8:_ZTTSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:8:_ZTTSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
diff --git a/libstdc++-v3/config/abi/powerpc64-linux-gnu/32/nof/baseline_symbols.txt b/libstdc++-v3/config/abi/powerpc64-linux-gnu/32/nof/baseline_symbols.txt
new file mode 100644
index 00000000000..f93151155c6
--- /dev/null
+++ b/libstdc++-v3/config/abi/powerpc64-linux-gnu/32/nof/baseline_symbols.txt
@@ -0,0 +1,3083 @@
+FUNC:_ZN10__cxxabiv116__enum_type_infoD0Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv116__enum_type_infoD1Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv116__enum_type_infoD2Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv117__array_type_infoD0Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv117__array_type_infoD1Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv117__array_type_infoD2Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv117__class_type_infoD0Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv117__class_type_infoD1Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv117__class_type_infoD2Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv117__pbase_type_infoD0Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv117__pbase_type_infoD1Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv117__pbase_type_infoD2Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv119__pointer_type_infoD0Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv119__pointer_type_infoD1Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv119__pointer_type_infoD2Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv120__function_type_infoD0Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv120__function_type_infoD1Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv120__function_type_infoD2Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv120__si_class_type_infoD0Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv120__si_class_type_infoD1Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv120__si_class_type_infoD2Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv121__vmi_class_type_infoD0Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv121__vmi_class_type_infoD1Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv121__vmi_class_type_infoD2Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv123__fundamental_type_infoD0Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv123__fundamental_type_infoD1Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv123__fundamental_type_infoD2Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv129__pointer_to_member_type_infoD0Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv129__pointer_to_member_type_infoD1Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv129__pointer_to_member_type_infoD2Ev@@CXXABI_1.3
+FUNC:_ZN10__gnu_norm15_List_node_base4hookEPS0_@@GLIBCXX_3.4
+FUNC:_ZN10__gnu_norm15_List_node_base4swapERS0_S1_@@GLIBCXX_3.4
+FUNC:_ZN10__gnu_norm15_List_node_base6unhookEv@@GLIBCXX_3.4
+FUNC:_ZN10__gnu_norm15_List_node_base7reverseEv@@GLIBCXX_3.4
+FUNC:_ZN10__gnu_norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4
+FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4
+FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv@@GLIBCXX_3.4
+FUNC:_ZN11__gnu_debug19_Safe_sequence_base13_M_detach_allEv@@GLIBCXX_3.4
+FUNC:_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4
+FUNC:_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4
+FUNC:_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_@@GLIBCXX_3.4
+FUNC:_ZN9__gnu_cxx12__atomic_addEPVii@@GLIBCXX_3.4
+FUNC:_ZN9__gnu_cxx18__exchange_and_addEPVii@@GLIBCXX_3.4
+FUNC:_ZN9__gnu_cxx27__verbose_terminate_handlerEv@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PKvRNS0_15__upcast_resultE@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PPv@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv117__class_type_info12__do_dyncastEiNS0_10__sub_kindEPKS0_PKvS3_S5_RNS0_16__dyncast_resultE@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv117__class_type_info20__do_find_public_srcEiPKvPKS0_S2_@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv117__pbase_type_info10__do_catchEPKSt9type_infoPPvj@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv117__pbase_type_info15__pointer_catchEPKS0_PPvj@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv119__pointer_type_info14__is_pointer_pEv@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv119__pointer_type_info15__pointer_catchEPKNS_17__pbase_type_infoEPPvj@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv120__function_type_info15__is_function_pEv@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv120__si_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv121__vmi_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv121__vmi_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv121__vmi_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv129__pointer_to_member_type_info15__pointer_catchEPKNS_17__pbase_type_infoEPPvj@@CXXABI_1.3
+FUNC:_ZNK11__gnu_debug16_Error_formatter10_M_messageENS_13_Debug_msg_idE@@GLIBCXX_3.4
+FUNC:_ZNK11__gnu_debug16_Error_formatter10_Parameter14_M_print_fieldEPKS0_PKc@@GLIBCXX_3.4
+FUNC:_ZNK11__gnu_debug16_Error_formatter10_Parameter20_M_print_descriptionEPKS0_@@GLIBCXX_3.4
+FUNC:_ZNK11__gnu_debug16_Error_formatter13_M_print_wordEPKc@@GLIBCXX_3.4
+FUNC:_ZNK11__gnu_debug16_Error_formatter15_M_print_stringEPKc@@GLIBCXX_3.4
+FUNC:_ZNK11__gnu_debug16_Error_formatter8_M_errorEv@@GLIBCXX_3.4
+FUNC:_ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv@@GLIBCXX_3.4
+FUNC:_ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwjj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_j@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEwj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwjj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofERKS2_j@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEwj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13get_allocatorEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwjj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofERKS2_j@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEwj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwjj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofERKS2_j@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEwj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE2atEj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE3endEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_leakedEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_sharedEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4copyEPwjj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4dataEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwjj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findERKS2_j@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEwj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4rendEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4sizeEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5c_strEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5emptyEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwjj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindERKS2_j@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEwj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6_M_repEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6lengthEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6substrEjj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_dataEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_iendEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEPKw@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareERKS2_@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjPKw@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjPKwj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjRKS2_@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjRKS2_jj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M_checkEjPKc@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M_limitEjj@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEj@@GLIBCXX_3.4
+FUNC:_ZNKSi6gcountEv@@GLIBCXX_3.4
+FUNC:_ZNKSi6sentrycvbEv@@GLIBCXX_3.4
+FUNC:_ZNKSo6sentrycvbEv@@GLIBCXX_3.4
+FUNC:_ZNKSs12find_last_ofEPKcj@@GLIBCXX_3.4
+FUNC:_ZNKSs12find_last_ofEPKcjj@@GLIBCXX_3.4
+FUNC:_ZNKSs12find_last_ofERKSsj@@GLIBCXX_3.4
+FUNC:_ZNKSs12find_last_ofEcj@@GLIBCXX_3.4
+FUNC:_ZNKSs13find_first_ofEPKcj@@GLIBCXX_3.4
+FUNC:_ZNKSs13find_first_ofEPKcjj@@GLIBCXX_3.4
+FUNC:_ZNKSs13find_first_ofERKSsj@@GLIBCXX_3.4
+FUNC:_ZNKSs13find_first_ofEcj@@GLIBCXX_3.4
+FUNC:_ZNKSs13get_allocatorEv@@GLIBCXX_3.4
+FUNC:_ZNKSs16find_last_not_ofEPKcj@@GLIBCXX_3.4
+FUNC:_ZNKSs16find_last_not_ofEPKcjj@@GLIBCXX_3.4
+FUNC:_ZNKSs16find_last_not_ofERKSsj@@GLIBCXX_3.4
+FUNC:_ZNKSs16find_last_not_ofEcj@@GLIBCXX_3.4
+FUNC:_ZNKSs17find_first_not_ofEPKcj@@GLIBCXX_3.4
+FUNC:_ZNKSs17find_first_not_ofEPKcjj@@GLIBCXX_3.4
+FUNC:_ZNKSs17find_first_not_ofERKSsj@@GLIBCXX_3.4
+FUNC:_ZNKSs17find_first_not_ofEcj@@GLIBCXX_3.4
+FUNC:_ZNKSs2atEj@@GLIBCXX_3.4
+FUNC:_ZNKSs3endEv@@GLIBCXX_3.4
+FUNC:_ZNKSs4_Rep12_M_is_leakedEv@@GLIBCXX_3.4
+FUNC:_ZNKSs4_Rep12_M_is_sharedEv@@GLIBCXX_3.4
+FUNC:_ZNKSs4copyEPcjj@@GLIBCXX_3.4
+FUNC:_ZNKSs4dataEv@@GLIBCXX_3.4
+FUNC:_ZNKSs4findEPKcj@@GLIBCXX_3.4
+FUNC:_ZNKSs4findEPKcjj@@GLIBCXX_3.4
+FUNC:_ZNKSs4findERKSsj@@GLIBCXX_3.4
+FUNC:_ZNKSs4findEcj@@GLIBCXX_3.4
+FUNC:_ZNKSs4rendEv@@GLIBCXX_3.4
+FUNC:_ZNKSs4sizeEv@@GLIBCXX_3.4
+FUNC:_ZNKSs5beginEv@@GLIBCXX_3.4
+FUNC:_ZNKSs5c_strEv@@GLIBCXX_3.4
+FUNC:_ZNKSs5emptyEv@@GLIBCXX_3.4
+FUNC:_ZNKSs5rfindEPKcj@@GLIBCXX_3.4
+FUNC:_ZNKSs5rfindEPKcjj@@GLIBCXX_3.4
+FUNC:_ZNKSs5rfindERKSsj@@GLIBCXX_3.4
+FUNC:_ZNKSs5rfindEcj@@GLIBCXX_3.4
+FUNC:_ZNKSs6_M_repEv@@GLIBCXX_3.4
+FUNC:_ZNKSs6lengthEv@@GLIBCXX_3.4
+FUNC:_ZNKSs6rbeginEv@@GLIBCXX_3.4
+FUNC:_ZNKSs6substrEjj@@GLIBCXX_3.4
+FUNC:_ZNKSs7_M_dataEv@@GLIBCXX_3.4
+FUNC:_ZNKSs7_M_iendEv@@GLIBCXX_3.4
+FUNC:_ZNKSs7compareEPKc@@GLIBCXX_3.4
+FUNC:_ZNKSs7compareERKSs@@GLIBCXX_3.4
+FUNC:_ZNKSs7compareEjjPKc@@GLIBCXX_3.4
+FUNC:_ZNKSs7compareEjjPKcj@@GLIBCXX_3.4
+FUNC:_ZNKSs7compareEjjRKSs@@GLIBCXX_3.4
+FUNC:_ZNKSs7compareEjjRKSsjj@@GLIBCXX_3.4
+FUNC:_ZNKSs8_M_checkEjPKc@@GLIBCXX_3.4
+FUNC:_ZNKSs8_M_limitEjj@@GLIBCXX_3.4
+FUNC:_ZNKSs8capacityEv@@GLIBCXX_3.4
+FUNC:_ZNKSs8max_sizeEv@@GLIBCXX_3.4
+FUNC:_ZNKSs9_M_ibeginEv@@GLIBCXX_3.4
+FUNC:_ZNKSsixEj@@GLIBCXX_3.4
+FUNC:_ZNKSt10istrstream5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE10neg_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE10pos_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE11curr_symbolEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE11do_groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE11frac_digitsEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE13decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE13do_neg_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE13do_pos_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE13negative_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE13positive_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE13thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE14do_curr_symbolEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE14do_frac_digitsEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_negative_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_positive_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE8groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE10neg_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE10pos_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE11curr_symbolEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE11do_groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE11frac_digitsEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE13decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE13do_neg_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE13do_pos_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE13negative_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE13positive_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE13thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE14do_curr_symbolEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE14do_frac_digitsEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_negative_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_positive_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE8groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE10neg_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE10pos_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE11curr_symbolEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE11do_groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE11frac_digitsEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE13decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE13do_neg_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE13do_pos_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE13negative_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE13positive_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE13thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE14do_curr_symbolEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE14do_frac_digitsEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_negative_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_positive_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE8groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE10neg_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE10pos_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE11curr_symbolEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE11do_groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE11frac_digitsEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE13decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE13do_neg_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE13do_pos_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE13negative_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE13positive_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE13thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE14do_curr_symbolEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE14do_frac_digitsEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_negative_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_positive_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE8groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10ostrstream5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10ostrstream6pcountEv@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIcE15_M_am_pm_formatEPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIcE15_M_date_formatsEPPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIcE15_M_time_formatsEPPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIcE19_M_days_abbreviatedEPPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIcE20_M_date_time_formatsEPPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIcE21_M_months_abbreviatedEPPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIcE6_M_putEPcjPKcPK2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIcE7_M_daysEPPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIcE8_M_am_pmEPPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIcE9_M_monthsEPPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIwE15_M_am_pm_formatEPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIwE15_M_date_formatsEPPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIwE15_M_time_formatsEPPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIwE19_M_days_abbreviatedEPPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIwE20_M_date_time_formatsEPPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIwE21_M_months_abbreviatedEPPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIwE6_M_putEPwjPKwPK2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIwE7_M_daysEPPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIwE8_M_am_pmEPPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt11logic_error4whatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCXX_3.4
+FUNC:_ZNKSt12strstreambuf6pcountEv@@GLIBCXX_3.4
+FUNC:_ZNKSt13basic_filebufIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4
+FUNC:_ZNKSt13basic_filebufIwSt11char_traitsIwEE7is_openEv@@GLIBCXX_3.4
+FUNC:_ZNKSt13basic_fstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt13basic_fstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt13basic_istreamIwSt11char_traitsIwEE6gcountEv@@GLIBCXX_3.4
+FUNC:_ZNKSt13basic_istreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCXX_3.4
+FUNC:_ZNKSt13basic_ostreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCXX_3.4
+FUNC:_ZNKSt13runtime_error4whatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt14basic_ifstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt14basic_ofstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt14basic_ofstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5ebackEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5egptrEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5epptrEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5pbaseEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE6getlocEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE4gptrEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE4pptrEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5ebackEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5egptrEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5epptrEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5pbaseEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE6getlocEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4
+FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4
+FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4
+FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4
+FUNC:_ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt19basic_istringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4
+FUNC:_ZNKSt19basic_istringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4
+FUNC:_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4
+FUNC:_ZNKSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIcE10do_tolowerEPcPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIcE10do_tolowerEc@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIcE10do_toupperEPcPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIcE10do_toupperEc@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIcE8do_widenEPKcS2_Pc@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIcE8do_widenEc@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIcE9do_narrowEPKcS2_cPc@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIcE9do_narrowEcc@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE10do_scan_isEtPKwS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE10do_tolowerEPwPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE10do_tolowerEw@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE10do_toupperEPwPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE10do_toupperEw@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE11do_scan_notEtPKwS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE19_M_convert_to_wmaskEt@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE5do_isEPKwS2_Pt@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE5do_isEtw@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE8do_widenEPKcS2_Pw@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE8do_widenEc@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE9do_narrowEPKwS2_cPc@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE9do_narrowEwc@@GLIBCXX_3.4
+FUNC:_ZNKSt6locale2id5_M_idEv@@GLIBCXX_3.4
+FUNC:_ZNKSt6locale4nameEv@@GLIBCXX_3.4
+FUNC:_ZNKSt6localeeqERKS_@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE11do_encodingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE13do_max_lengthEv@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE16do_always_noconvEv@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE5do_inERS0_PKcS4_RS4_PcS6_RS6_@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE6do_outERS0_PKcS4_RS4_PcS6_RS6_@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE9do_lengthERS0_PKcS4_j@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE11do_encodingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE13do_max_lengthEv@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE16do_always_noconvEv@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE5do_inERS0_PKcS4_RS4_PwS6_RS6_@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE6do_outERS0_PKwS4_RS4_PcS6_RS6_@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE9do_lengthERS0_PKcS4_j@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIcE10_M_compareEPKcS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIcE10do_compareEPKcS2_S2_S2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIcE12_M_transformEPcPKcj@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIcE12do_transformEPKcS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIcE4hashEPKcS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIcE7compareEPKcS2_S2_S2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIcE7do_hashEPKcS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIcE9transformEPKcS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIwE10_M_compareEPKwS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIwE10do_compareEPKwS2_S2_S2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIwE12_M_transformEPwPKwj@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIwE12do_transformEPKwS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIwE4hashEPKwS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIwE7compareEPKwS2_S2_S2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIwE7do_hashEPKwS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIwE9transformEPKwS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIjEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIlEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intImEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intItEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIxEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIyEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIjEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIlEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intImEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intItEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIxEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIyEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_group_intEPKcjcRSt8ios_basePcS9_Ri@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIlEES3_S3_RSt8ios_basecT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intImEES3_S3_RSt8ios_basecT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIxEES3_S3_RSt8ios_basecT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIyEES3_S3_RSt8ios_basecT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_group_floatEPKcjcS6_PcS7_Ri@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIdEES3_S3_RSt8ios_baseccT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIeEES3_S3_RSt8ios_baseccT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPKv@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecb@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecd@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basece@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecl@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecm@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecx@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecy@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6_M_padEciRSt8ios_basePcPKcRi@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPKv@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecb@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecd@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basece@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecl@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecm@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecx@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecy@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_group_intEPKcjwRSt8ios_basePwS9_Ri@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIlEES3_S3_RSt8ios_basewT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intImEES3_S3_RSt8ios_basewT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIxEES3_S3_RSt8ios_basewT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIyEES3_S3_RSt8ios_basewT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_group_floatEPKcjwPKwPwS9_Ri@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE15_M_insert_floatIdEES3_S3_RSt8ios_basewcT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE15_M_insert_floatIeEES3_S3_RSt8ios_basewcT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPKv@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewb@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewd@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewe@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewl@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewm@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewx@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewy@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6_M_padEwiRSt8ios_basePwPKwRi@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPKv@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewb@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewd@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewe@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewl@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewm@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewx@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewy@@GLIBCXX_3.4
+FUNC:_ZNKSt8ios_base7failure4whatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIcE18_M_convert_to_charERKSs@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIcE20_M_convert_from_charEPc@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIcE3getEiiiRKSs@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIcE4openERKSsRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIcE4openERKSsRKSt6localePKc@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIcE5closeEi@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIcE6do_getEiiiRKSs@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIcE7do_openERKSsRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIcE8do_closeEi@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIwE18_M_convert_to_charERKSbIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIwE20_M_convert_from_charEPc@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIwE3getEiiiRKSbIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIwE4openERKSsRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIwE4openERKSsRKSt6localePKc@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIwE5closeEi@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIwE6do_getEiiiRKSbIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIwE7do_openERKSsRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIwE8do_closeEi@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIcE11do_groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIcE11do_truenameEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIcE12do_falsenameEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIcE13decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIcE13thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIcE16do_decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIcE16do_thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIcE8groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIcE8truenameEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIcE9falsenameEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIwE11do_groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIwE11do_truenameEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIwE12do_falsenameEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIwE13decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIwE13thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIwE16do_decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIwE16do_thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIwE8groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIwE8truenameEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIwE9falsenameEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10date_orderEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13do_date_orderEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_numES3_S3_RiiijRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE15_M_extract_nameES3_S3_RiPPKcjRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE21_M_extract_via_formatES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10date_orderEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13do_date_orderEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_numES3_S3_RiiijRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE15_M_extract_nameES3_S3_RiPPKwjRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE21_M_extract_via_formatES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmPKcSB_@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmcc@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPK2tmcc@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmPKwSB_@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmcc@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPK2tmcc@@GLIBCXX_3.4
+FUNC:_ZNKSt8valarrayIjE4sizeEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE10exceptionsEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3badEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3tieEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4failEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4fillEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE6narrowEcc@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE7rdstateEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEcvPvEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE10exceptionsEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3badEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3eofEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3tieEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4failEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4fillEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4goodEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE5widenEc@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE6narrowEwc@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE7rdstateEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEcvPvEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEntEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9exception4whatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb0EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb1EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb0EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb1EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSbIwS2_SaIwEE@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSbIwS2_SaIwEE@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basecRKSs@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basece@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basecRKSs@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basece@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb0EEES3_S3_RSt8ios_basecRKSs@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb1EEES3_S3_RSt8ios_basecRKSs@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewe@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewe@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb0EEES3_S3_RSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb1EEES3_S3_RSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCXX_3.4
+FUNC:_ZNKSt9strstream5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9strstream6pcountEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9type_info10__do_catchEPKS_PPvj@@GLIBCXX_3.4
+FUNC:_ZNKSt9type_info11__do_upcastEPKN10__cxxabiv117__class_type_infoEPPv@@GLIBCXX_3.4
+FUNC:_ZNKSt9type_info14__is_pointer_pEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9type_info15__is_function_pEv@@GLIBCXX_3.4
+FUNC:_ZNSaIcEC1ERKS_@@GLIBCXX_3.4
+FUNC:_ZNSaIcEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSaIcEC2ERKS_@@GLIBCXX_3.4
+FUNC:_ZNSaIcEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSaIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSaIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSaIwEC1ERKS_@@GLIBCXX_3.4
+FUNC:_ZNSaIwEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSaIwEC2ERKS_@@GLIBCXX_3.4
+FUNC:_ZNSaIwEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSaIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSaIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC1EPwRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC2EPwRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_M_leak_hardEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_constructEjwRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_empty_repEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIPKwS2_EES8_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIS3_S2_EES6_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwPKwS5_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwS3_S3_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE14_M_replace_auxEjjjw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeEjjPKwj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE2atEj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE3endEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_destroyERKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_disposeERKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refcopyEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refdataEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep12_S_empty_repEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep13_M_set_leakedEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep15_M_set_sharableEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep7_M_grabERKS1_S5_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep8_M_cloneERKS1_j@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep9_S_createEjjRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4rendEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4swapERS2_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5clearEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS2_EE@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEjj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEPKw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEPKwj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_jj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEjw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEPKw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEPKwj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_jj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEjw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEjw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjPKw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjPKwj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjRKS2_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjRKS2_jj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjjw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6resizeEj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6resizeEjw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_dataEPw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_leakEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_NS4_IPKwS2_EES9_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwS8_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_RKS2_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_S5_S5_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_S6_S6_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_jw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjPKw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjPKwj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjRKS2_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjRKS2_jj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjjw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7reserveEj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9_M_mutateEjjj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9push_backEw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwjRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jjRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EjwRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jjRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EjwRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEPKw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEixEj@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLEPKw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLEw@@GLIBCXX_3.4
+FUNC:_ZNSdC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+FUNC:_ZNSdC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSdC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+FUNC:_ZNSdC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSdD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSdD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSdD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSi3getEPci@@GLIBCXX_3.4
+FUNC:_ZNSi3getEPcic@@GLIBCXX_3.4
+FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEEc@@GLIBCXX_3.4
+FUNC:_ZNSi3getERc@@GLIBCXX_3.4
+FUNC:_ZNSi3getEv@@GLIBCXX_3.4
+FUNC:_ZNSi4peekEv@@GLIBCXX_3.4
+FUNC:_ZNSi4readEPci@@GLIBCXX_3.4
+FUNC:_ZNSi4syncEv@@GLIBCXX_3.4
+FUNC:_ZNSi5seekgESt4fposI11__mbstate_tE@@GLIBCXX_3.4
+FUNC:_ZNSi5seekgExSt12_Ios_Seekdir@@GLIBCXX_3.4
+FUNC:_ZNSi5tellgEv@@GLIBCXX_3.4
+FUNC:_ZNSi5ungetEv@@GLIBCXX_3.4
+FUNC:_ZNSi6ignoreEii@@GLIBCXX_3.4
+FUNC:_ZNSi6sentryC1ERSib@@GLIBCXX_3.4
+FUNC:_ZNSi6sentryC2ERSib@@GLIBCXX_3.4
+FUNC:_ZNSi7getlineEPci@@GLIBCXX_3.4
+FUNC:_ZNSi7getlineEPcic@@GLIBCXX_3.4
+FUNC:_ZNSi7putbackEc@@GLIBCXX_3.4
+FUNC:_ZNSi8readsomeEPci@@GLIBCXX_3.4
+FUNC:_ZNSiC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+FUNC:_ZNSiC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSiC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+FUNC:_ZNSiC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSiD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSiD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSiD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSirsEPFRSiS_E@@GLIBCXX_3.4
+FUNC:_ZNSirsEPFRSt8ios_baseS0_E@@GLIBCXX_3.4
+FUNC:_ZNSirsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E@@GLIBCXX_3.4
+FUNC:_ZNSirsEPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+FUNC:_ZNSirsERPv@@GLIBCXX_3.4
+FUNC:_ZNSirsERb@@GLIBCXX_3.4
+FUNC:_ZNSirsERd@@GLIBCXX_3.4
+FUNC:_ZNSirsERe@@GLIBCXX_3.4
+FUNC:_ZNSirsERf@@GLIBCXX_3.4
+FUNC:_ZNSirsERi@@GLIBCXX_3.4
+FUNC:_ZNSirsERj@@GLIBCXX_3.4
+FUNC:_ZNSirsERl@@GLIBCXX_3.4
+FUNC:_ZNSirsERm@@GLIBCXX_3.4
+FUNC:_ZNSirsERs@@GLIBCXX_3.4
+FUNC:_ZNSirsERt@@GLIBCXX_3.4
+FUNC:_ZNSirsERx@@GLIBCXX_3.4
+FUNC:_ZNSirsERy@@GLIBCXX_3.4
+FUNC:_ZNSo3putEc@@GLIBCXX_3.4
+FUNC:_ZNSo5flushEv@@GLIBCXX_3.4
+FUNC:_ZNSo5seekpESt4fposI11__mbstate_tE@@GLIBCXX_3.4
+FUNC:_ZNSo5seekpExSt12_Ios_Seekdir@@GLIBCXX_3.4
+FUNC:_ZNSo5tellpEv@@GLIBCXX_3.4
+FUNC:_ZNSo5writeEPKci@@GLIBCXX_3.4
+FUNC:_ZNSo6sentryC1ERSo@@GLIBCXX_3.4
+FUNC:_ZNSo6sentryC2ERSo@@GLIBCXX_3.4
+FUNC:_ZNSo6sentryD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSo6sentryD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSo8_M_writeEPKci@@GLIBCXX_3.4
+FUNC:_ZNSoC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+FUNC:_ZNSoC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSoC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+FUNC:_ZNSoC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSoD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSoD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSoD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSolsEPFRSoS_E@@GLIBCXX_3.4
+FUNC:_ZNSolsEPFRSt8ios_baseS0_E@@GLIBCXX_3.4
+FUNC:_ZNSolsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E@@GLIBCXX_3.4
+FUNC:_ZNSolsEPKv@@GLIBCXX_3.4
+FUNC:_ZNSolsEPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+FUNC:_ZNSolsEb@@GLIBCXX_3.4
+FUNC:_ZNSolsEd@@GLIBCXX_3.4
+FUNC:_ZNSolsEe@@GLIBCXX_3.4
+FUNC:_ZNSolsEf@@GLIBCXX_3.4
+FUNC:_ZNSolsEi@@GLIBCXX_3.4
+FUNC:_ZNSolsEj@@GLIBCXX_3.4
+FUNC:_ZNSolsEl@@GLIBCXX_3.4
+FUNC:_ZNSolsEm@@GLIBCXX_3.4
+FUNC:_ZNSolsEs@@GLIBCXX_3.4
+FUNC:_ZNSolsEt@@GLIBCXX_3.4
+FUNC:_ZNSolsEx@@GLIBCXX_3.4
+FUNC:_ZNSolsEy@@GLIBCXX_3.4
+FUNC:_ZNSs12_Alloc_hiderC1EPcRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSs12_Alloc_hiderC2EPcRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSs12_M_leak_hardEv@@GLIBCXX_3.4
+FUNC:_ZNSs12_S_constructEjcRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSs12_S_empty_repEv@@GLIBCXX_3.4
+FUNC:_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIPKcSsEES4_@@GLIBCXX_3.4
+FUNC:_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIS_SsEES2_@@GLIBCXX_3.4
+FUNC:_ZNSs13_S_copy_charsEPcPKcS1_@@GLIBCXX_3.4
+FUNC:_ZNSs13_S_copy_charsEPcS_S_@@GLIBCXX_3.4
+FUNC:_ZNSs14_M_replace_auxEjjjc@@GLIBCXX_3.4
+FUNC:_ZNSs15_M_replace_safeEjjPKcj@@GLIBCXX_3.4
+FUNC:_ZNSs2atEj@@GLIBCXX_3.4
+FUNC:_ZNSs3endEv@@GLIBCXX_3.4
+FUNC:_ZNSs4_Rep10_M_destroyERKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSs4_Rep10_M_disposeERKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSs4_Rep10_M_refcopyEv@@GLIBCXX_3.4
+FUNC:_ZNSs4_Rep10_M_refdataEv@@GLIBCXX_3.4
+FUNC:_ZNSs4_Rep12_S_empty_repEv@@GLIBCXX_3.4
+FUNC:_ZNSs4_Rep13_M_set_leakedEv@@GLIBCXX_3.4
+FUNC:_ZNSs4_Rep15_M_set_sharableEv@@GLIBCXX_3.4
+FUNC:_ZNSs4_Rep7_M_grabERKSaIcES2_@@GLIBCXX_3.4
+FUNC:_ZNSs4_Rep8_M_cloneERKSaIcEj@@GLIBCXX_3.4
+FUNC:_ZNSs4_Rep9_S_createEjjRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSs4rendEv@@GLIBCXX_3.4
+FUNC:_ZNSs4swapERSs@@GLIBCXX_3.4
+FUNC:_ZNSs5beginEv@@GLIBCXX_3.4
+FUNC:_ZNSs5clearEv@@GLIBCXX_3.4
+FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEE@@GLIBCXX_3.4
+FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEES2_@@GLIBCXX_3.4
+FUNC:_ZNSs5eraseEjj@@GLIBCXX_3.4
+FUNC:_ZNSs6appendEPKc@@GLIBCXX_3.4
+FUNC:_ZNSs6appendEPKcj@@GLIBCXX_3.4
+FUNC:_ZNSs6appendERKSs@@GLIBCXX_3.4
+FUNC:_ZNSs6appendERKSsjj@@GLIBCXX_3.4
+FUNC:_ZNSs6appendEjc@@GLIBCXX_3.4
+FUNC:_ZNSs6assignEPKc@@GLIBCXX_3.4
+FUNC:_ZNSs6assignEPKcj@@GLIBCXX_3.4
+FUNC:_ZNSs6assignERKSs@@GLIBCXX_3.4
+FUNC:_ZNSs6assignERKSsjj@@GLIBCXX_3.4
+FUNC:_ZNSs6assignEjc@@GLIBCXX_3.4
+FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEc@@GLIBCXX_3.4
+FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEjc@@GLIBCXX_3.4
+FUNC:_ZNSs6insertEjPKc@@GLIBCXX_3.4
+FUNC:_ZNSs6insertEjPKcj@@GLIBCXX_3.4
+FUNC:_ZNSs6insertEjRKSs@@GLIBCXX_3.4
+FUNC:_ZNSs6insertEjRKSsjj@@GLIBCXX_3.4
+FUNC:_ZNSs6insertEjjc@@GLIBCXX_3.4
+FUNC:_ZNSs6rbeginEv@@GLIBCXX_3.4
+FUNC:_ZNSs6resizeEj@@GLIBCXX_3.4
+FUNC:_ZNSs6resizeEjc@@GLIBCXX_3.4
+FUNC:_ZNSs7_M_dataEPc@@GLIBCXX_3.4
+FUNC:_ZNSs7_M_leakEv@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_NS0_IPKcSsEES5_@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKc@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcS4_@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcj@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_RKSs@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S1_S1_@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S2_S2_@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_jc@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEjjPKc@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEjjPKcj@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEjjRKSs@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEjjRKSsjj@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEjjjc@@GLIBCXX_3.4
+FUNC:_ZNSs7reserveEj@@GLIBCXX_3.4
+FUNC:_ZNSs9_M_mutateEjjj@@GLIBCXX_3.4
+FUNC:_ZNSs9push_backEc@@GLIBCXX_3.4
+FUNC:_ZNSsC1EPKcRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC1EPKcjRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC1ERKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC1ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSsC1ERKSsjj@@GLIBCXX_3.4
+FUNC:_ZNSsC1ERKSsjjRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC1EjcRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2EPKcjRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2ERKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSsC2ERKSsjj@@GLIBCXX_3.4
+FUNC:_ZNSsC2ERKSsjjRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2EjcRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSsD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSsaSEPKc@@GLIBCXX_3.4
+FUNC:_ZNSsaSERKSs@@GLIBCXX_3.4
+FUNC:_ZNSsaSEc@@GLIBCXX_3.4
+FUNC:_ZNSsixEj@@GLIBCXX_3.4
+FUNC:_ZNSspLEPKc@@GLIBCXX_3.4
+FUNC:_ZNSspLERKSs@@GLIBCXX_3.4
+FUNC:_ZNSspLEc@@GLIBCXX_3.4
+FUNC:_ZNSt10__num_base15_S_format_floatERKSt8ios_basePcc@@GLIBCXX_3.4
+FUNC:_ZNSt10bad_typeidD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10bad_typeidD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10bad_typeidD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstream3strEv@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstreamC1EPKc@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstreamC1EPKci@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstreamC1EPc@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstreamC1EPci@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstreamC2EPKc@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstreamC2EPKci@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstreamC2EPc@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstreamC2EPci@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstreamD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstreamD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstreamD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10money_base20_S_construct_patternEccc@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb0EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb0EEC1EP15__locale_structPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb0EEC1EPSt18__moneypunct_cacheIcLb0EEj@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb0EEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb0EEC2EP15__locale_structPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb0EEC2EPSt18__moneypunct_cacheIcLb0EEj@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb0EEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb0EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb0EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb0EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb1EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb1EEC1EP15__locale_structPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb1EEC1EPSt18__moneypunct_cacheIcLb1EEj@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb1EEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb1EEC2EP15__locale_structPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb1EEC2EPSt18__moneypunct_cacheIcLb1EEj@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb1EEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb1EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb1EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb1EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb0EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb0EEC1EP15__locale_structPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb0EEC1EPSt18__moneypunct_cacheIwLb0EEj@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb0EEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb0EEC2EP15__locale_structPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb0EEC2EPSt18__moneypunct_cacheIwLb0EEj@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb0EEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb0EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb0EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb0EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb1EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb1EEC1EP15__locale_structPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb1EEC1EPSt18__moneypunct_cacheIwLb1EEj@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb1EEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb1EEC2EP15__locale_structPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb1EEC2EPSt18__moneypunct_cacheIwLb1EEj@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb1EEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb1EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb1EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb1EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10ostrstream3strEv@@GLIBCXX_3.4
+FUNC:_ZNSt10ostrstream6freezeEb@@GLIBCXX_3.4
+FUNC:_ZNSt10ostrstreamC1EPciSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt10ostrstreamC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10ostrstreamC2EPciSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt10ostrstreamC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10ostrstreamD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10ostrstreamD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10ostrstreamD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIcE23_M_initialize_timepunctEP15__locale_struct@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIcEC1EP15__locale_structPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIcEC1EPSt17__timepunct_cacheIcEj@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIcEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIcEC2EP15__locale_structPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIcEC2EPSt17__timepunct_cacheIcEj@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIcEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIcED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIwE23_M_initialize_timepunctEP15__locale_struct@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIwEC1EP15__locale_structPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIwEC1EPSt17__timepunct_cacheIwEj@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIwEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIwEC2EP15__locale_structPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIwEC2EPSt17__timepunct_cacheIwEj@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIwEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIwED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt11logic_errorC1ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt11logic_errorC2ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt11logic_errorD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt11logic_errorD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt11logic_errorD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt11range_errorC1ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt11range_errorC2ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt11range_errorD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt11range_errorD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcE2fdEv@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcE4openEPKcSt13_Ios_Openmodei@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcE4syncEv@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcE5closeEv@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcE6xsgetnEPci@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcE6xsputnEPKci@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcE7seekoffExSt12_Ios_Seekdir@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcE8sys_openEP8_IO_FILESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcE8sys_openEiSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcE8xsputn_2EPKciS2_i@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcE9showmanycEv@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcEC1EP15pthread_mutex_t@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcEC2EP15pthread_mutex_t@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12ctype_bynameIcEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt12ctype_bynameIcEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt12ctype_bynameIcED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12ctype_bynameIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12ctype_bynameIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12ctype_bynameIwEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt12ctype_bynameIwEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt12ctype_bynameIwED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12ctype_bynameIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12ctype_bynameIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12domain_errorC1ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt12domain_errorC2ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt12domain_errorD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12domain_errorD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12length_errorC1ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt12length_errorC2ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt12length_errorD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12length_errorD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12out_of_rangeC1ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt12out_of_rangeC2ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt12out_of_rangeD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12out_of_rangeD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambuf3strEv@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambuf6freezeEb@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambuf6setbufEPci@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambuf7_M_freeEPc@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambuf7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambuf7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambuf8_M_allocEj@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambuf8_M_setupEPcS0_i@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambuf8overflowEi@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambuf9pbackfailEi@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambuf9underflowEv@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC1EPFPvjEPFvS0_E@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC1EPKai@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC1EPKci@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC1EPKhi@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC1EPaiS0_@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC1EPciS0_@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC1EPhiS0_@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC1Ei@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC2EPFPvjEPFvS0_E@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC2EPKai@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC2EPKci@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC2EPKhi@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC2EPaiS0_@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC2EPciS0_@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC2EPhiS0_@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC2Ei@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13bad_exceptionD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13bad_exceptionD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13bad_exceptionD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE13_M_set_bufferEi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE15_M_create_pbackEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE16_M_destroy_pbackEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE19_M_terminate_outputEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE22_M_convert_to_externalEPci@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE26_M_destroy_internal_bufferEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE27_M_allocate_internal_bufferEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4syncEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5closeEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6setbufEPci@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsgetnEPci@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsputnEPKci@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7_M_seekExSt12_Ios_Seekdir11__mbstate_t@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE8overflowEi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9pbackfailEi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9showmanycEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9underflowEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE13_M_set_bufferEi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE15_M_create_pbackEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE16_M_destroy_pbackEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE19_M_terminate_outputEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE22_M_convert_to_externalEPwi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE26_M_destroy_internal_bufferEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE27_M_allocate_internal_bufferEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4syncEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5closeEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6setbufEPwi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6xsgetnEPwi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6xsputnEPKwi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7_M_seekExSt12_Ios_Seekdir11__mbstate_t@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE8overflowEj@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9pbackfailEj@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9showmanycEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9underflowEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE5closeEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE5closeEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwiw@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERSt15basic_streambufIwS1_Ew@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERw@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4peekEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4readEPwi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4syncEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgESt4fposI11__mbstate_tE@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgExSt12_Ios_Seekdir@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5tellgEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5ungetEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEij@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentryC1ERS2_b@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentryC2ERS2_b@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwiw@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7putbackEw@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE8readsomeEPwi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRS2_S3_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRSt8ios_baseS4_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRSt9basic_iosIwS1_ES5_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERPv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERb@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERd@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERe@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERf@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERj@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERl@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERm@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERs@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERt@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERx@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERy@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE3putEw@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5flushEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpESt4fposI11__mbstate_tE@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpExSt12_Ios_Seekdir@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5tellpEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5writeEPKwi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryC1ERS2_@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryC2ERS2_@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE8_M_writeEPKwi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRS2_S3_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRSt8ios_baseS4_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRSt9basic_iosIwS1_ES5_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPKv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEb@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEd@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEe@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEf@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEj@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEl@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEm@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEs@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEt@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEx@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEy@@GLIBCXX_3.4
+FUNC:_ZNSt13runtime_errorC1ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt13runtime_errorC2ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt13runtime_errorD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13runtime_errorD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13runtime_errorD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE5closeEv@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE5closeEv@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE5closeEv@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14collate_bynameIcEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt14collate_bynameIcEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt14collate_bynameIcED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14collate_bynameIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14collate_bynameIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14collate_bynameIwEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt14collate_bynameIwEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt14collate_bynameIwED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14collate_bynameIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14collate_bynameIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14overflow_errorC1ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt14overflow_errorC2ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt14overflow_errorD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14overflow_errorD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15_List_node_base4hookEPS_@@GLIBCXX_3.4
+FUNC:_ZNSt15_List_node_base4swapERS_S0_@@GLIBCXX_3.4
+FUNC:_ZNSt15_List_node_base6unhookEv@@GLIBCXX_3.4
+FUNC:_ZNSt15_List_node_base7reverseEv@@GLIBCXX_3.4
+FUNC:_ZNSt15_List_node_base8transferEPS_S0_@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setgEPcS3_S3_@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setpEPcS3_@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4syncEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5gbumpEi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5pbumpEi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetcEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetnEPci@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sputcEc@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sputnEPKci@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5uflowEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6sbumpcEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6setbufEPci@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6snextcEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsgetnEPci@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsputnEPKci@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7pubsyncEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7sungetcEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8in_availEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8overflowEi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8pubimbueERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9pbackfailEi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9pubsetbufEPci@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9showmanycEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9sputbackcEc@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9underflowEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC1ERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC2ERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEaSERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setgEPwS3_S3_@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setpEPwS3_@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4syncEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5gbumpEi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5pbumpEi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetcEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetnEPwi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sputcEw@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sputnEPKwi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5uflowEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6sbumpcEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6setbufEPwi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6snextcEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6xsgetnEPwi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6xsputnEPKwi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7pubsyncEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7sungetcEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8in_availEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8overflowEj@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8pubimbueERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pbackfailEj@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pubsetbufEPwi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9showmanycEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9sputbackcEw@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9underflowEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC1ERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC2ERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEaSERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE15_M_update_egptrEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPci@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7_M_syncEPcjj@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9pbackfailEi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9underflowEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE15_M_update_egptrEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE6setbufEPwi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7_M_syncEPwjj@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE8overflowEj@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9pbackfailEj@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9underflowEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15messages_bynameIcEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt15messages_bynameIcEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt15messages_bynameIcED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15messages_bynameIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15messages_bynameIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15messages_bynameIwEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt15messages_bynameIwEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt15messages_bynameIwED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15messages_bynameIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15messages_bynameIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15numpunct_bynameIcEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt15numpunct_bynameIcEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt15numpunct_bynameIcED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15numpunct_bynameIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15numpunct_bynameIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15numpunct_bynameIwEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt15numpunct_bynameIwEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt15numpunct_bynameIwED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15numpunct_bynameIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15numpunct_bynameIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15underflow_errorC1ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt15underflow_errorC2ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt15underflow_errorD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15underflow_errorD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIcE8_M_cacheERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIcEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIcEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIcED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIwE8_M_cacheERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIwEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIwEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIwED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt16invalid_argumentC1ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt16invalid_argumentC2ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt16invalid_argumentD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt16invalid_argumentD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17__timepunct_cacheIcEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt17__timepunct_cacheIcEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt17__timepunct_cacheIcED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17__timepunct_cacheIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17__timepunct_cacheIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17__timepunct_cacheIwEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt17__timepunct_cacheIwEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt17__timepunct_cacheIwED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17__timepunct_cacheIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17__timepunct_cacheIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIcLb0EEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIcLb0EEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIcLb0EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIcLb0EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIcLb0EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIcLb1EEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIcLb1EEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIcLb1EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIcLb1EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIcLb1EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIwLb0EEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIwLb0EEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIwLb0EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIwLb0EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIwLb0EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIwLb1EEC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIwLb1EEC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIwLb1EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIwLb1EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIwLb1EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb0EE8_M_cacheERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb0EEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb0EEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb0EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb0EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb0EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb1EE8_M_cacheERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb1EEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb1EEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb1EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb1EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb1EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb0EE8_M_cacheERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb0EEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb0EEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb0EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb0EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb0EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb1EE8_M_cacheERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb1EEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb1EEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb1EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb1EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb1EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIcE13classic_tableEv@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIcEC1EP15__locale_structPKtbj@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIcEC1EPKtbj@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIcEC2EP15__locale_structPKtbj@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIcEC2EPKtbj@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIcED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIwE19_M_initialize_ctypeEv@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIwEC1EP15__locale_structj@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIwEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIwEC2EP15__locale_structj@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIwEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIwED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt6gslice8_IndexerC1EjRKSt8valarrayIjES4_@@GLIBCXX_3.4
+FUNC:_ZNSt6gslice8_IndexerC2EjRKSt8valarrayIjES4_@@GLIBCXX_3.4
+FUNC:_ZNSt6locale11_M_coalesceERKS_S1_i@@GLIBCXX_3.4
+FUNC:_ZNSt6locale21_S_normalize_categoryEi@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_Impl16_M_install_facetEPKNS_2idEPKNS_5facetE@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_Impl16_M_replace_facetEPKS0_PKNS_2idE@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_Impl19_M_replace_categoryEPKS0_PKPKNS_2idE@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_Impl21_M_replace_categoriesEPKS0_i@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_ImplC1EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_ImplC1ERKS0_j@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_ImplC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_ImplC2EPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_ImplC2ERKS0_j@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_ImplC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_ImplD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_ImplD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5facet15_S_get_c_localeEv@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5facet17_S_clone_c_localeERP15__locale_struct@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5facet18_S_create_c_localeERP15__locale_structPKcS2_@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5facet19_S_destroy_c_localeERP15__locale_struct@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5facetD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5facetD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5facetD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt6locale6globalERKS_@@GLIBCXX_3.4
+FUNC:_ZNSt6locale7classicEv@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC1EPKc@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC1EPNS_5_ImplE@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC1ERKS_@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC1ERKS_PKci@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC1ERKS_S1_i@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC2EPKc@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC2EPNS_5_ImplE@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC2ERKS_@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC2ERKS_PKci@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC2ERKS_S1_i@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt6localeD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt6localeD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt6localeaSERKS_@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIcc11__mbstate_tEC1EP15__locale_structj@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIcc11__mbstate_tEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIcc11__mbstate_tEC2EP15__locale_structj@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIcc11__mbstate_tEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIcc11__mbstate_tED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIcc11__mbstate_tED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIcc11__mbstate_tED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIwc11__mbstate_tEC1EP15__locale_structj@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIwc11__mbstate_tEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIwc11__mbstate_tEC2EP15__locale_structj@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIwc11__mbstate_tEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIwc11__mbstate_tED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIwc11__mbstate_tED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIwc11__mbstate_tED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIcEC1EP15__locale_structj@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIcEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIcEC2EP15__locale_structj@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIcEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIcED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIwEC1EP15__locale_structj@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIwEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIwEC2EP15__locale_structj@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIwEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIwED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8bad_castD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8bad_castD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8bad_castD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base13_M_grow_wordsEib@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base15sync_with_stdioEb@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base17register_callbackEPFvNS_5eventERS_iEi@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base4InitC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base4InitC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base4InitD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base5imbueERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base6xallocEv@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base7_M_initEv@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base7failureC1ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base7failureC2ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base7failureD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base7failureD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base7failureD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_baseC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_baseC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_baseD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_baseD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_baseD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIcEC1EP15__locale_structPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIcEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIcEC2EP15__locale_structPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIcEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIcED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIwEC1EP15__locale_structPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIwEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIwEC2EP15__locale_structPKcj@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIwEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIwED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIcE22_M_initialize_numpunctEP15__locale_struct@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIcEC1EP15__locale_structj@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIcEC1EPSt16__numpunct_cacheIcEj@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIcEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIcEC2EP15__locale_structj@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIcEC2EPSt16__numpunct_cacheIcEj@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIcEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIcED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIwE22_M_initialize_numpunctEP15__locale_struct@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIwEC1EP15__locale_structj@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIwEC1EPSt16__numpunct_cacheIwEj@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIwEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIwEC2EP15__locale_structj@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIwEC2EPSt16__numpunct_cacheIwEj@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIwEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIwED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8valarrayIjEC1ERKS0_@@GLIBCXX_3.4
+FUNC:_ZNSt8valarrayIjEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8valarrayIjEC2ERKS0_@@GLIBCXX_3.4
+FUNC:_ZNSt8valarrayIjEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt8valarrayIjED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8valarrayIjED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8valarrayIjEixEj@@GLIBCXX_3.4
+FUNC:_ZNSt9bad_allocD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9bad_allocD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9bad_allocD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE10exceptionsESt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE11_M_setstateESt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE15_M_cache_localeERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE3tieEPSo@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4fillEc@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5rdbufEPSt15basic_streambufIcS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE7copyfmtERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC1EPSt15basic_streambufIcS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC2EPSt15basic_streambufIcS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE10exceptionsESt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE11_M_setstateESt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE15_M_cache_localeERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE3tieEPSt13basic_ostreamIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4fillEw@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4initEPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5clearESt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5rdbufEPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE7copyfmtERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE8setstateESt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9exceptionD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9exceptionD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9exceptionD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCXX_3.4
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCXX_3.4
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9strstream3strEv@@GLIBCXX_3.4
+FUNC:_ZNSt9strstream6freezeEb@@GLIBCXX_3.4
+FUNC:_ZNSt9strstreamC1EPciSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt9strstreamC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9strstreamC2EPciSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt9strstreamC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9strstreamD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9strstreamD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9strstreamD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9type_infoD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9type_infoD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9type_infoD2Ev@@GLIBCXX_3.4
+FUNC:_ZSt10unexpectedv@@GLIBCXX_3.4
+FUNC:_ZSt13set_terminatePFvvE@@GLIBCXX_3.4
+FUNC:_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct@@GLIBCXX_3.4
+FUNC:_ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct@@GLIBCXX_3.4
+FUNC:_ZSt14__convert_to_vIfEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct@@GLIBCXX_3.4
+FUNC:_ZSt14set_unexpectedPFvvE@@GLIBCXX_3.4
+FUNC:_ZSt15set_new_handlerPFvvE@@GLIBCXX_3.4
+FUNC:_ZSt16__throw_bad_castv@@GLIBCXX_3.4
+FUNC:_ZSt17__throw_bad_allocv@@GLIBCXX_3.4
+FUNC:_ZSt18_Rb_tree_decrementPKSt18_Rb_tree_node_base@@GLIBCXX_3.4
+FUNC:_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base@@GLIBCXX_3.4
+FUNC:_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base@@GLIBCXX_3.4
+FUNC:_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base@@GLIBCXX_3.4
+FUNC:_ZSt18__throw_bad_typeidv@@GLIBCXX_3.4
+FUNC:_ZSt18uncaught_exceptionv@@GLIBCXX_3.4
+FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCXX_3.4
+FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCXX_3.4
+FUNC:_ZSt19__throw_range_errorPKc@@GLIBCXX_3.4
+FUNC:_ZSt20_Rb_tree_black_countPKSt18_Rb_tree_node_baseS1_@@GLIBCXX_3.4
+FUNC:_ZSt20_Rb_tree_rotate_leftPSt18_Rb_tree_node_baseRS0_@@GLIBCXX_3.4
+FUNC:_ZSt20__throw_domain_errorPKc@@GLIBCXX_3.4
+FUNC:_ZSt20__throw_length_errorPKc@@GLIBCXX_3.4
+FUNC:_ZSt20__throw_out_of_rangePKc@@GLIBCXX_3.4
+FUNC:_ZSt21_Rb_tree_rotate_rightPSt18_Rb_tree_node_baseRS0_@@GLIBCXX_3.4
+FUNC:_ZSt21__throw_bad_exceptionv@@GLIBCXX_3.4
+FUNC:_ZSt21__throw_runtime_errorPKc@@GLIBCXX_3.4
+FUNC:_ZSt22__throw_overflow_errorPKc@@GLIBCXX_3.4
+FUNC:_ZSt23__throw_underflow_errorPKc@@GLIBCXX_3.4
+FUNC:_ZSt24__throw_invalid_argumentPKc@@GLIBCXX_3.4
+FUNC:_ZSt28_Rb_tree_rebalance_for_erasePSt18_Rb_tree_node_baseRS_@@GLIBCXX_3.4
+FUNC:_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_@@GLIBCXX_3.4
+FUNC:_ZSt2wsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_@@GLIBCXX_3.4
+FUNC:_ZSt2wsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_@@GLIBCXX_3.4
+FUNC:_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCXX_3.4
+FUNC:_ZSt4endlIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCXX_3.4
+FUNC:_ZSt4endsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCXX_3.4
+FUNC:_ZSt4endsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCXX_3.4
+FUNC:_ZSt5flushIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCXX_3.4
+FUNC:_ZSt5flushIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCXX_3.4
+FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCXX_3.4
+FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_@@GLIBCXX_3.4
+FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCXX_3.4
+FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt10moneypunctIcLb0EEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt10moneypunctIwLb0EEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt11__timepunctIcEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt11__timepunctIwEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt5ctypeIcEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt5ctypeIwEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt7codecvtIcc11__mbstate_tEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt7codecvtIwc11__mbstate_tEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt7collateIcEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt7collateIwEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt8messagesIcEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt8messagesIwEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt8numpunctIcEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt8numpunctIwEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9terminatev@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt10moneypunctIcLb0EEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt10moneypunctIcLb1EEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt10moneypunctIwLb0EEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt10moneypunctIwLb1EEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt11__timepunctIcEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt11__timepunctIwEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt5ctypeIcEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt5ctypeIwEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt7codecvtIcc11__mbstate_tEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt7codecvtIwc11__mbstate_tEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt7collateIcEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt7collateIwEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt8messagesIcEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt8messagesIwEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt8numpunctIcEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt8numpunctIwEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKa@@GLIBCXX_3.4
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@@GLIBCXX_3.4
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKh@@GLIBCXX_3.4
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_a@@GLIBCXX_3.4
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@@GLIBCXX_3.4
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_h@@GLIBCXX_3.4
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags@@GLIBCXX_3.4
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision@@GLIBCXX_3.4
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags@@GLIBCXX_3.4
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St5_Setw@@GLIBCXX_3.4
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_Setbase@@GLIBCXX_3.4
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCXX_3.4
+FUNC:_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E@@GLIBCXX_3.4
+FUNC:_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStlsIdwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStlsIecSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStlsIewSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStlsIfcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStlsIfwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKS3_@@GLIBCXX_3.4
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKc@@GLIBCXX_3.4
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_S3_@@GLIBCXX_3.4
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags@@GLIBCXX_3.4
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision@@GLIBCXX_3.4
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags@@GLIBCXX_3.4
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St5_Setw@@GLIBCXX_3.4
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_Setbase@@GLIBCXX_3.4
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCXX_3.4
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_c@@GLIBCXX_3.4
+FUNC:_ZStlsIwSt11char_traitsIwESaIwEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E@@GLIBCXX_3.4
+FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_@@GLIBCXX_3.4
+FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8_@@GLIBCXX_3.4
+FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ES3_RKS6_@@GLIBCXX_3.4
+FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_EPKS3_RKS6_@@GLIBCXX_3.4
+FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ERKS6_S8_@@GLIBCXX_3.4
+FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ES3_RKS6_@@GLIBCXX_3.4
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Pa@@GLIBCXX_3.4
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ph@@GLIBCXX_3.4
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ra@@GLIBCXX_3.4
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Rh@@GLIBCXX_3.4
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_PS3_@@GLIBCXX_3.4
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_RS3_@@GLIBCXX_3.4
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags@@GLIBCXX_3.4
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St13_Setprecision@@GLIBCXX_3.4
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags@@GLIBCXX_3.4
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St5_Setw@@GLIBCXX_3.4
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_Setbase@@GLIBCXX_3.4
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCXX_3.4
+FUNC:_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCXX_3.4
+FUNC:_ZStrsIdcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStrsIdwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStrsIecSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStrsIewSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStrsIfcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStrsIfwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_PS3_@@GLIBCXX_3.4
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_RS3_@@GLIBCXX_3.4
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags@@GLIBCXX_3.4
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St13_Setprecision@@GLIBCXX_3.4
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags@@GLIBCXX_3.4
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St5_Setw@@GLIBCXX_3.4
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St8_Setbase@@GLIBCXX_3.4
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCXX_3.4
+FUNC:_ZStrsIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCXX_3.4
+FUNC:_ZThn8_NSdD0Ev@@GLIBCXX_3.4
+FUNC:_ZThn8_NSdD1Ev@@GLIBCXX_3.4
+FUNC:_ZThn8_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZThn8_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZThn8_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZThn8_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZThn8_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZThn8_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZThn8_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZThn8_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZThn8_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZThn8_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZThn8_NSt9strstreamD0Ev@@GLIBCXX_3.4
+FUNC:_ZThn8_NSt9strstreamD1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSdD0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSdD1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSiD0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSiD1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSoD0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSoD1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt10istrstreamD0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt10istrstreamD1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt10ostrstreamD0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt10ostrstreamD1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt13basic_istreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt13basic_istreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt13basic_ostreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt13basic_ostreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt9strstreamD0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n12_NSt9strstreamD1Ev@@GLIBCXX_3.4
+FUNC:_ZdaPv@@GLIBCXX_3.4
+FUNC:_ZdaPvRKSt9nothrow_t@@GLIBCXX_3.4
+FUNC:_ZdlPv@@GLIBCXX_3.4
+FUNC:_ZdlPvRKSt9nothrow_t@@GLIBCXX_3.4
+FUNC:_Znaj@@GLIBCXX_3.4
+FUNC:_ZnajRKSt9nothrow_t@@GLIBCXX_3.4
+FUNC:_Znwj@@GLIBCXX_3.4
+FUNC:_ZnwjRKSt9nothrow_t@@GLIBCXX_3.4
+FUNC:__cxa_allocate_exception@@CXXABI_1.3
+FUNC:__cxa_bad_cast@@CXXABI_1.3
+FUNC:__cxa_bad_typeid@@CXXABI_1.3
+FUNC:__cxa_begin_catch@@CXXABI_1.3
+FUNC:__cxa_call_unexpected@@CXXABI_1.3
+FUNC:__cxa_current_exception_type@@CXXABI_1.3
+FUNC:__cxa_demangle@@CXXABI_1.3
+FUNC:__cxa_end_catch@@CXXABI_1.3
+FUNC:__cxa_free_exception@@CXXABI_1.3
+FUNC:__cxa_get_globals@@CXXABI_1.3
+FUNC:__cxa_get_globals_fast@@CXXABI_1.3
+FUNC:__cxa_guard_abort@@CXXABI_1.3
+FUNC:__cxa_guard_acquire@@CXXABI_1.3
+FUNC:__cxa_guard_release@@CXXABI_1.3
+FUNC:__cxa_pure_virtual@@CXXABI_1.3
+FUNC:__cxa_rethrow@@CXXABI_1.3
+FUNC:__cxa_throw@@CXXABI_1.3
+FUNC:__cxa_vec_cctor@@CXXABI_1.3
+FUNC:__cxa_vec_cleanup@@CXXABI_1.3
+FUNC:__cxa_vec_ctor@@CXXABI_1.3
+FUNC:__cxa_vec_delete2@@CXXABI_1.3
+FUNC:__cxa_vec_delete3@@CXXABI_1.3
+FUNC:__cxa_vec_delete@@CXXABI_1.3
+FUNC:__cxa_vec_dtor@@CXXABI_1.3
+FUNC:__cxa_vec_new2@@CXXABI_1.3
+FUNC:__cxa_vec_new3@@CXXABI_1.3
+FUNC:__cxa_vec_new@@CXXABI_1.3
+FUNC:__dynamic_cast@@CXXABI_1.3
+FUNC:__gxx_personality_v0@@CXXABI_1.3
+FUNC:atan2l@@GLIBCXX_3.4
+FUNC:coshl@@GLIBCXX_3.4
+FUNC:cosl@@GLIBCXX_3.4
+FUNC:expl@@GLIBCXX_3.4
+FUNC:hypotl@@GLIBCXX_3.4
+FUNC:log10l@@GLIBCXX_3.4
+FUNC:logl@@GLIBCXX_3.4
+FUNC:powl@@GLIBCXX_3.4
+FUNC:sinhl@@GLIBCXX_3.4
+FUNC:sinl@@GLIBCXX_3.4
+FUNC:sqrtl@@GLIBCXX_3.4
+FUNC:tanhl@@GLIBCXX_3.4
+FUNC:tanl@@GLIBCXX_3.4
+OBJECT:0:CXXABI_1.3
+OBJECT:0:GLIBCXX_3.4
+OBJECT:12:_ZTIN10__cxxabiv116__enum_type_infoE@@CXXABI_1.3
+OBJECT:12:_ZTIN10__cxxabiv117__array_type_infoE@@CXXABI_1.3
+OBJECT:12:_ZTIN10__cxxabiv117__class_type_infoE@@CXXABI_1.3
+OBJECT:12:_ZTIN10__cxxabiv117__pbase_type_infoE@@CXXABI_1.3
+OBJECT:12:_ZTIN10__cxxabiv119__pointer_type_infoE@@CXXABI_1.3
+OBJECT:12:_ZTIN10__cxxabiv120__function_type_infoE@@CXXABI_1.3
+OBJECT:12:_ZTIN10__cxxabiv120__si_class_type_infoE@@CXXABI_1.3
+OBJECT:12:_ZTIN10__cxxabiv121__vmi_class_type_infoE@@CXXABI_1.3
+OBJECT:12:_ZTIN10__cxxabiv123__fundamental_type_infoE@@CXXABI_1.3
+OBJECT:12:_ZTIN10__cxxabiv129__pointer_to_member_type_infoE@@CXXABI_1.3
+OBJECT:12:_ZTIN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTIN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTIN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTIN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTINSt8ios_base7failureE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt10bad_typeid@@GLIBCXX_3.4
+OBJECT:12:_ZTISt10istrstream@@GLIBCXX_3.4
+OBJECT:12:_ZTISt10ostrstream@@GLIBCXX_3.4
+OBJECT:12:_ZTISt11__timepunctIcE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt11__timepunctIwE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt11logic_error@@GLIBCXX_3.4
+OBJECT:12:_ZTISt11range_error@@GLIBCXX_3.4
+OBJECT:12:_ZTISt12ctype_bynameIcE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt12ctype_bynameIwE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt12domain_error@@GLIBCXX_3.4
+OBJECT:12:_ZTISt12length_error@@GLIBCXX_3.4
+OBJECT:12:_ZTISt12out_of_range@@GLIBCXX_3.4
+OBJECT:12:_ZTISt12strstreambuf@@GLIBCXX_3.4
+OBJECT:12:_ZTISt13bad_exception@@GLIBCXX_3.4
+OBJECT:12:_ZTISt13basic_filebufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt13basic_filebufIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt13runtime_error@@GLIBCXX_3.4
+OBJECT:12:_ZTISt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt14codecvt_bynameIcc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt14codecvt_bynameIwc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt14collate_bynameIcE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt14collate_bynameIwE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt14overflow_error@@GLIBCXX_3.4
+OBJECT:12:_ZTISt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt15messages_bynameIcE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt15messages_bynameIwE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt15numpunct_bynameIcE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt15numpunct_bynameIwE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt15underflow_error@@GLIBCXX_3.4
+OBJECT:12:_ZTISt16invalid_argument@@GLIBCXX_3.4
+OBJECT:12:_ZTISt17moneypunct_bynameIcLb0EE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt17moneypunct_bynameIcLb1EE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt17moneypunct_bynameIwLb0EE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt17moneypunct_bynameIwLb1EE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt5ctypeIwE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt7codecvtIcc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt7codecvtIwc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt7collateIcE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt7collateIwE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt8bad_cast@@GLIBCXX_3.4
+OBJECT:12:_ZTISt8numpunctIcE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt8numpunctIwE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt9bad_alloc@@GLIBCXX_3.4
+OBJECT:12:_ZTISt9basic_iosIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt9basic_iosIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:12:_ZTISt9strstream@@GLIBCXX_3.4
+OBJECT:12:_ZTSSt5ctypeIcE@@GLIBCXX_3.4
+OBJECT:12:_ZTSSt5ctypeIwE@@GLIBCXX_3.4
+OBJECT:12:_ZTSSt8bad_cast@@GLIBCXX_3.4
+OBJECT:12:_ZTSSt8ios_base@@GLIBCXX_3.4
+OBJECT:13:_ZTSSt9bad_alloc@@GLIBCXX_3.4
+OBJECT:13:_ZTSSt9exception@@GLIBCXX_3.4
+OBJECT:13:_ZTSSt9strstream@@GLIBCXX_3.4
+OBJECT:13:_ZTSSt9time_base@@GLIBCXX_3.4
+OBJECT:13:_ZTSSt9type_info@@GLIBCXX_3.4
+OBJECT:140:_ZSt4cerr@@GLIBCXX_3.4
+OBJECT:140:_ZSt4clog@@GLIBCXX_3.4
+OBJECT:140:_ZSt4cout@@GLIBCXX_3.4
+OBJECT:144:_ZSt3cin@@GLIBCXX_3.4
+OBJECT:144:_ZSt5wcerr@@GLIBCXX_3.4
+OBJECT:144:_ZSt5wclog@@GLIBCXX_3.4
+OBJECT:144:_ZSt5wcout@@GLIBCXX_3.4
+OBJECT:148:_ZSt4wcin@@GLIBCXX_3.4
+OBJECT:14:_ZTSSt7collateIcE@@GLIBCXX_3.4
+OBJECT:14:_ZTSSt7collateIwE@@GLIBCXX_3.4
+OBJECT:15:_ZTSSt10bad_typeid@@GLIBCXX_3.4
+OBJECT:15:_ZTSSt10ctype_base@@GLIBCXX_3.4
+OBJECT:15:_ZTSSt10istrstream@@GLIBCXX_3.4
+OBJECT:15:_ZTSSt10money_base@@GLIBCXX_3.4
+OBJECT:15:_ZTSSt10ostrstream@@GLIBCXX_3.4
+OBJECT:15:_ZTSSt8messagesIcE@@GLIBCXX_3.4
+OBJECT:15:_ZTSSt8messagesIwE@@GLIBCXX_3.4
+OBJECT:15:_ZTSSt8numpunctIcE@@GLIBCXX_3.4
+OBJECT:15:_ZTSSt8numpunctIwE@@GLIBCXX_3.4
+OBJECT:16:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4
+OBJECT:16:_ZNSs4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4
+OBJECT:16:_ZTIPKa@@CXXABI_1.3
+OBJECT:16:_ZTIPKb@@CXXABI_1.3
+OBJECT:16:_ZTIPKc@@CXXABI_1.3
+OBJECT:16:_ZTIPKd@@CXXABI_1.3
+OBJECT:16:_ZTIPKe@@CXXABI_1.3
+OBJECT:16:_ZTIPKf@@CXXABI_1.3
+OBJECT:16:_ZTIPKh@@CXXABI_1.3
+OBJECT:16:_ZTIPKi@@CXXABI_1.3
+OBJECT:16:_ZTIPKj@@CXXABI_1.3
+OBJECT:16:_ZTIPKl@@CXXABI_1.3
+OBJECT:16:_ZTIPKm@@CXXABI_1.3
+OBJECT:16:_ZTIPKs@@CXXABI_1.3
+OBJECT:16:_ZTIPKt@@CXXABI_1.3
+OBJECT:16:_ZTIPKv@@CXXABI_1.3
+OBJECT:16:_ZTIPKw@@CXXABI_1.3
+OBJECT:16:_ZTIPKx@@CXXABI_1.3
+OBJECT:16:_ZTIPKy@@CXXABI_1.3
+OBJECT:16:_ZTIPa@@CXXABI_1.3
+OBJECT:16:_ZTIPb@@CXXABI_1.3
+OBJECT:16:_ZTIPc@@CXXABI_1.3
+OBJECT:16:_ZTIPd@@CXXABI_1.3
+OBJECT:16:_ZTIPe@@CXXABI_1.3
+OBJECT:16:_ZTIPf@@CXXABI_1.3
+OBJECT:16:_ZTIPh@@CXXABI_1.3
+OBJECT:16:_ZTIPi@@CXXABI_1.3
+OBJECT:16:_ZTIPj@@CXXABI_1.3
+OBJECT:16:_ZTIPl@@CXXABI_1.3
+OBJECT:16:_ZTIPm@@CXXABI_1.3
+OBJECT:16:_ZTIPs@@CXXABI_1.3
+OBJECT:16:_ZTIPt@@CXXABI_1.3
+OBJECT:16:_ZTIPv@@CXXABI_1.3
+OBJECT:16:_ZTIPw@@CXXABI_1.3
+OBJECT:16:_ZTIPx@@CXXABI_1.3
+OBJECT:16:_ZTIPy@@CXXABI_1.3
+OBJECT:16:_ZTSSt11logic_error@@GLIBCXX_3.4
+OBJECT:16:_ZTSSt11range_error@@GLIBCXX_3.4
+OBJECT:16:_ZTTSt10istrstream@@GLIBCXX_3.4
+OBJECT:16:_ZTTSt10ostrstream@@GLIBCXX_3.4
+OBJECT:16:_ZTTSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:16:_ZTTSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:16:_ZTTSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:16:_ZTTSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:16:_ZTTSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:16:_ZTTSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:16:_ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:16:_ZTTSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:16:_ZTVNSt6locale5facetE@@GLIBCXX_3.4
+OBJECT:16:_ZTVSt11__timepunctIcE@@GLIBCXX_3.4
+OBJECT:16:_ZTVSt11__timepunctIwE@@GLIBCXX_3.4
+OBJECT:16:_ZTVSt8ios_base@@GLIBCXX_3.4
+OBJECT:16:_ZTVSt9basic_iosIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:16:_ZTVSt9basic_iosIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:17:_ZTSSt12codecvt_base@@GLIBCXX_3.4
+OBJECT:17:_ZTSSt12domain_error@@GLIBCXX_3.4
+OBJECT:17:_ZTSSt12length_error@@GLIBCXX_3.4
+OBJECT:17:_ZTSSt12out_of_range@@GLIBCXX_3.4
+OBJECT:17:_ZTSSt12strstreambuf@@GLIBCXX_3.4
+OBJECT:18:_ZTSNSt6locale5facetE@@GLIBCXX_3.4
+OBJECT:18:_ZTSSt13bad_exception@@GLIBCXX_3.4
+OBJECT:18:_ZTSSt13messages_base@@GLIBCXX_3.4
+OBJECT:18:_ZTSSt13runtime_error@@GLIBCXX_3.4
+OBJECT:19:_ZTSSt11__timepunctIcE@@GLIBCXX_3.4
+OBJECT:19:_ZTSSt11__timepunctIwE@@GLIBCXX_3.4
+OBJECT:19:_ZTSSt14overflow_error@@GLIBCXX_3.4
+OBJECT:1:_ZNSs4_Rep11_S_terminalE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt10moneypunctIcLb0EE4intlE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt10moneypunctIcLb1EE4intlE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt10moneypunctIwLb0EE4intlE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt10moneypunctIwLb1EE4intlE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt17moneypunct_bynameIcLb0EE4intlE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt17moneypunct_bynameIcLb1EE4intlE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt17moneypunct_bynameIwLb0EE4intlE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt17moneypunct_bynameIwLb1EE4intlE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZSt7nothrow@@GLIBCXX_3.4
+OBJECT:20:_ZTSSt12ctype_bynameIcE@@GLIBCXX_3.4
+OBJECT:20:_ZTSSt12ctype_bynameIwE@@GLIBCXX_3.4
+OBJECT:20:_ZTSSt15underflow_error@@GLIBCXX_3.4
+OBJECT:20:_ZTVNSt8ios_base7failureE@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt10bad_typeid@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt11logic_error@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt11range_error@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt12domain_error@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt12length_error@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt12out_of_range@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt13bad_exception@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt13runtime_error@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt14overflow_error@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt15underflow_error@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt16invalid_argument@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt8bad_cast@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt9bad_alloc@@GLIBCXX_3.4
+OBJECT:20:_ZTVSt9exception@@GLIBCXX_3.4
+OBJECT:21:_ZTSSt16invalid_argument@@GLIBCXX_3.4
+OBJECT:22:_ZTSNSt8ios_base7failureE@@GLIBCXX_3.4
+OBJECT:22:_ZTSSt10moneypunctIcLb0EE@@GLIBCXX_3.4
+OBJECT:22:_ZTSSt10moneypunctIcLb1EE@@GLIBCXX_3.4
+OBJECT:22:_ZTSSt10moneypunctIwLb0EE@@GLIBCXX_3.4
+OBJECT:22:_ZTSSt10moneypunctIwLb1EE@@GLIBCXX_3.4
+OBJECT:22:_ZTSSt14collate_bynameIcE@@GLIBCXX_3.4
+OBJECT:22:_ZTSSt14collate_bynameIwE@@GLIBCXX_3.4
+OBJECT:23:_ZTSSt15messages_bynameIcE@@GLIBCXX_3.4
+OBJECT:23:_ZTSSt15messages_bynameIwE@@GLIBCXX_3.4
+OBJECT:23:_ZTSSt15numpunct_bynameIcE@@GLIBCXX_3.4
+OBJECT:23:_ZTSSt15numpunct_bynameIwE@@GLIBCXX_3.4
+OBJECT:24:_ZTISi@@GLIBCXX_3.4
+OBJECT:24:_ZTISo@@GLIBCXX_3.4
+OBJECT:24:_ZTISt13basic_istreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:24:_ZTVSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:24:_ZTVSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:24:_ZTVSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:24:_ZTVSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:28:_ZTSSt7codecvtIcc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:28:_ZTSSt7codecvtIwc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:28:_ZTTSd@@GLIBCXX_3.4
+OBJECT:28:_ZTTSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:28:_ZTVSt14collate_bynameIcE@@GLIBCXX_3.4
+OBJECT:28:_ZTVSt14collate_bynameIwE@@GLIBCXX_3.4
+OBJECT:28:_ZTVSt15messages_bynameIcE@@GLIBCXX_3.4
+OBJECT:28:_ZTVSt15messages_bynameIwE@@GLIBCXX_3.4
+OBJECT:28:_ZTVSt7collateIcE@@GLIBCXX_3.4
+OBJECT:28:_ZTVSt7collateIwE@@GLIBCXX_3.4
+OBJECT:28:_ZTVSt8messagesIcE@@GLIBCXX_3.4
+OBJECT:28:_ZTVSt8messagesIwE@@GLIBCXX_3.4
+OBJECT:29:_ZTSSt17moneypunct_bynameIcLb0EE@@GLIBCXX_3.4
+OBJECT:29:_ZTSSt17moneypunct_bynameIcLb1EE@@GLIBCXX_3.4
+OBJECT:29:_ZTSSt17moneypunct_bynameIwLb0EE@@GLIBCXX_3.4
+OBJECT:29:_ZTSSt17moneypunct_bynameIwLb1EE@@GLIBCXX_3.4
+OBJECT:29:_ZTSSt21__ctype_abstract_baseIcE@@GLIBCXX_3.4
+OBJECT:29:_ZTSSt21__ctype_abstract_baseIwE@@GLIBCXX_3.4
+OBJECT:2:_ZNSt10ctype_base5alnumE@@GLIBCXX_3.4
+OBJECT:2:_ZNSt10ctype_base5alphaE@@GLIBCXX_3.4
+OBJECT:2:_ZNSt10ctype_base5cntrlE@@GLIBCXX_3.4
+OBJECT:2:_ZNSt10ctype_base5digitE@@GLIBCXX_3.4
+OBJECT:2:_ZNSt10ctype_base5graphE@@GLIBCXX_3.4
+OBJECT:2:_ZNSt10ctype_base5lowerE@@GLIBCXX_3.4
+OBJECT:2:_ZNSt10ctype_base5printE@@GLIBCXX_3.4
+OBJECT:2:_ZNSt10ctype_base5punctE@@GLIBCXX_3.4
+OBJECT:2:_ZNSt10ctype_base5spaceE@@GLIBCXX_3.4
+OBJECT:2:_ZNSt10ctype_base5upperE@@GLIBCXX_3.4
+OBJECT:2:_ZNSt10ctype_base6xdigitE@@GLIBCXX_3.4
+OBJECT:2:_ZTSa@@CXXABI_1.3
+OBJECT:2:_ZTSb@@CXXABI_1.3
+OBJECT:2:_ZTSc@@CXXABI_1.3
+OBJECT:2:_ZTSd@@CXXABI_1.3
+OBJECT:2:_ZTSe@@CXXABI_1.3
+OBJECT:2:_ZTSf@@CXXABI_1.3
+OBJECT:2:_ZTSh@@CXXABI_1.3
+OBJECT:2:_ZTSi@@CXXABI_1.3
+OBJECT:2:_ZTSj@@CXXABI_1.3
+OBJECT:2:_ZTSl@@CXXABI_1.3
+OBJECT:2:_ZTSm@@CXXABI_1.3
+OBJECT:2:_ZTSs@@CXXABI_1.3
+OBJECT:2:_ZTSt@@CXXABI_1.3
+OBJECT:2:_ZTSv@@CXXABI_1.3
+OBJECT:2:_ZTSw@@CXXABI_1.3
+OBJECT:2:_ZTSx@@CXXABI_1.3
+OBJECT:2:_ZTSy@@CXXABI_1.3
+OBJECT:32:_ZTISd@@GLIBCXX_3.4
+OBJECT:32:_ZTISt10moneypunctIcLb0EE@@GLIBCXX_3.4
+OBJECT:32:_ZTISt10moneypunctIcLb1EE@@GLIBCXX_3.4
+OBJECT:32:_ZTISt10moneypunctIwLb0EE@@GLIBCXX_3.4
+OBJECT:32:_ZTISt10moneypunctIwLb1EE@@GLIBCXX_3.4
+OBJECT:32:_ZTISt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:32:_ZTISt21__ctype_abstract_baseIcE@@GLIBCXX_3.4
+OBJECT:32:_ZTISt21__ctype_abstract_baseIwE@@GLIBCXX_3.4
+OBJECT:32:_ZTISt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:32:_ZTISt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:32:_ZTISt5ctypeIcE@@GLIBCXX_3.4
+OBJECT:32:_ZTISt8messagesIcE@@GLIBCXX_3.4
+OBJECT:32:_ZTISt8messagesIwE@@GLIBCXX_3.4
+OBJECT:32:_ZTISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:32:_ZTISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:32:_ZTVN10__cxxabiv116__enum_type_infoE@@CXXABI_1.3
+OBJECT:32:_ZTVN10__cxxabiv117__array_type_infoE@@CXXABI_1.3
+OBJECT:32:_ZTVN10__cxxabiv120__function_type_infoE@@CXXABI_1.3
+OBJECT:32:_ZTVN10__cxxabiv123__fundamental_type_infoE@@CXXABI_1.3
+OBJECT:32:_ZTVSt9type_info@@GLIBCXX_3.4
+OBJECT:33:_ZTSN10__cxxabiv116__enum_type_infoE@@CXXABI_1.3
+OBJECT:34:_ZTSN10__cxxabiv117__array_type_infoE@@CXXABI_1.3
+OBJECT:34:_ZTSN10__cxxabiv117__class_type_infoE@@CXXABI_1.3
+OBJECT:34:_ZTSN10__cxxabiv117__pbase_type_infoE@@CXXABI_1.3
+OBJECT:34:_ZTSSt9basic_iosIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:34:_ZTSSt9basic_iosIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:36:_ZTSN10__cxxabiv119__pointer_type_infoE@@CXXABI_1.3
+OBJECT:36:_ZTSSt14codecvt_bynameIcc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:36:_ZTSSt14codecvt_bynameIwc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:36:_ZTVN10__cxxabiv117__pbase_type_infoE@@CXXABI_1.3
+OBJECT:36:_ZTVN10__cxxabiv119__pointer_type_infoE@@CXXABI_1.3
+OBJECT:36:_ZTVN10__cxxabiv129__pointer_to_member_type_infoE@@CXXABI_1.3
+OBJECT:36:_ZTVSt15numpunct_bynameIcE@@GLIBCXX_3.4
+OBJECT:36:_ZTVSt15numpunct_bynameIwE@@GLIBCXX_3.4
+OBJECT:36:_ZTVSt8numpunctIcE@@GLIBCXX_3.4
+OBJECT:36:_ZTVSt8numpunctIwE@@GLIBCXX_3.4
+OBJECT:37:_ZTSN10__cxxabiv120__function_type_infoE@@CXXABI_1.3
+OBJECT:37:_ZTSN10__cxxabiv120__si_class_type_infoE@@CXXABI_1.3
+OBJECT:38:_ZTSN10__cxxabiv121__vmi_class_type_infoE@@CXXABI_1.3
+OBJECT:39:_ZTSSt13basic_filebufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:39:_ZTSSt13basic_filebufIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:39:_ZTSSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:39:_ZTSSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:39:_ZTSSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:39:_ZTSSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:3:_ZTSPa@@CXXABI_1.3
+OBJECT:3:_ZTSPb@@CXXABI_1.3
+OBJECT:3:_ZTSPc@@CXXABI_1.3
+OBJECT:3:_ZTSPd@@CXXABI_1.3
+OBJECT:3:_ZTSPe@@CXXABI_1.3
+OBJECT:3:_ZTSPf@@CXXABI_1.3
+OBJECT:3:_ZTSPh@@CXXABI_1.3
+OBJECT:3:_ZTSPi@@CXXABI_1.3
+OBJECT:3:_ZTSPj@@CXXABI_1.3
+OBJECT:3:_ZTSPl@@CXXABI_1.3
+OBJECT:3:_ZTSPm@@CXXABI_1.3
+OBJECT:3:_ZTSPs@@CXXABI_1.3
+OBJECT:3:_ZTSPt@@CXXABI_1.3
+OBJECT:3:_ZTSPv@@CXXABI_1.3
+OBJECT:3:_ZTSPw@@CXXABI_1.3
+OBJECT:3:_ZTSPx@@CXXABI_1.3
+OBJECT:3:_ZTSPy@@CXXABI_1.3
+OBJECT:3:_ZTSSd@@GLIBCXX_3.4
+OBJECT:3:_ZTSSi@@GLIBCXX_3.4
+OBJECT:3:_ZTSSo@@GLIBCXX_3.4
+OBJECT:40:_ZTSN10__cxxabiv123__fundamental_type_infoE@@CXXABI_1.3
+OBJECT:40:_ZTSSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:40:_ZTSSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:40:_ZTSSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:40:_ZTSSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:40:_ZTSSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:40:_ZTTSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:40:_ZTTSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:40:_ZTTSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:40:_ZTTSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:40:_ZTTSt9strstream@@GLIBCXX_3.4
+OBJECT:40:_ZTVSi@@GLIBCXX_3.4
+OBJECT:40:_ZTVSo@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt10istrstream@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt10ostrstream@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:41:_ZTSSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:41:_ZTSSt15basic_streambufIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:44:_ZTVN10__cxxabiv117__class_type_infoE@@CXXABI_1.3
+OBJECT:44:_ZTVN10__cxxabiv120__si_class_type_infoE@@CXXABI_1.3
+OBJECT:44:_ZTVN10__cxxabiv121__vmi_class_type_infoE@@CXXABI_1.3
+OBJECT:44:_ZTVSt14codecvt_bynameIcc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:44:_ZTVSt14codecvt_bynameIwc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:44:_ZTVSt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:44:_ZTVSt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:44:_ZTVSt7codecvtIcc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:44:_ZTVSt7codecvtIwc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:45:_ZTSSt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:45:_ZTSSt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:46:_ZTSN10__cxxabiv129__pointer_to_member_type_infoE@@CXXABI_1.3
+OBJECT:46:_ZTSSt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:46:_ZTSSt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:48:_ZTVSt12ctype_bynameIcE@@GLIBCXX_3.4
+OBJECT:48:_ZTVSt5ctypeIcE@@GLIBCXX_3.4
+OBJECT:48:_ZTVSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:48:_ZTVSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:49:_ZTSN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:49:_ZTSN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:49:_ZTSSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:49:_ZTSSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_max_sizeE@@GLIBCXX_3.4
+OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_terminalE@@GLIBCXX_3.4
+OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4nposE@@GLIBCXX_3.4
+OBJECT:4:_ZNSs4_Rep11_S_max_sizeE@@GLIBCXX_3.4
+OBJECT:4:_ZNSs4nposE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt10__num_base11_S_atoms_inE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt10__num_base12_S_atoms_outE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt10money_base18_S_default_patternE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt10money_base8_S_atomsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt10moneypunctIcLb0EE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt10moneypunctIcLb1EE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt10moneypunctIwLb0EE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt10moneypunctIwLb1EE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt11__timepunctIcE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt11__timepunctIwE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIaE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIaE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIaE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIaE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIaE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIaE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIaE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIaE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIaE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIbE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIbE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIbE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIbE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIbE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIbE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIbE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIbE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIbE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIcE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIcE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIcE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIcE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIcE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIcE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIcE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIcE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIcE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIdE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIdE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIdE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIdE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIdE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIdE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIdE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIdE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIdE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIeE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIeE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIeE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIeE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIeE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIeE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIeE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIeE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIeE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIfE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIfE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIfE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIfE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIfE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIfE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIfE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIfE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIfE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIhE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIhE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIhE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIhE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIhE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIhE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIhE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIhE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIhE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIiE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIiE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIiE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIiE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIiE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIiE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIiE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIiE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIiE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIjE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIjE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIjE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIjE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIjE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIjE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIjE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIjE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIjE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIlE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIlE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIlE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIlE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIlE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIlE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIlE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIlE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIlE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsImE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsImE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsImE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsImE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsImE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsImE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsImE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsImE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsImE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIsE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIsE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIsE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIsE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIsE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIsE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIsE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIsE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIsE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsItE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsItE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsItE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsItE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsItE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsItE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsItE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsItE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsItE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIwE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIwE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIwE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIwE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIwE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIwE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIwE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIwE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIwE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIxE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIxE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIxE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIxE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIxE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIxE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIxE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIxE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIxE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIyE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIyE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIyE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIyE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIyE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIyE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIyE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIyE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIyE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt21__numeric_limits_base10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt21__numeric_limits_base11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt21__numeric_limits_base12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt21__numeric_limits_base12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt21__numeric_limits_base14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt21__numeric_limits_base14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt21__numeric_limits_base5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt21__numeric_limits_base6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt21__numeric_limits_base8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt5ctypeIcE10table_sizeE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt5ctypeIcE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt5ctypeIwE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt6locale3allE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt6locale4noneE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt6locale4timeE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt6locale5ctypeE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt6locale7collateE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt6locale7numericE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt6locale8messagesE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt6locale8monetaryE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt7codecvtIcc11__mbstate_tE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt7codecvtIwc11__mbstate_tE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt7collateIcE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt7collateIwE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base10floatfieldE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base10scientificE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base11adjustfieldE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base2inE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base3appE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base3ateE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base3begE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base3curE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base3decE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base3endE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base3hexE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base3octE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base3outE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base4leftE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base5fixedE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base5rightE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base5truncE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base6badbitE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base6binaryE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base6eofbitE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base6skipwsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base7failbitE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base7goodbitE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base7showposE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base7unitbufE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base8internalE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base8showbaseE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base9basefieldE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base9boolalphaE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base9showpointE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base9uppercaseE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8messagesIcE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8messagesIwE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8numpunctIcE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8numpunctIwE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:4:_ZTSPKa@@CXXABI_1.3
+OBJECT:4:_ZTSPKb@@CXXABI_1.3
+OBJECT:4:_ZTSPKc@@CXXABI_1.3
+OBJECT:4:_ZTSPKd@@CXXABI_1.3
+OBJECT:4:_ZTSPKe@@CXXABI_1.3
+OBJECT:4:_ZTSPKf@@CXXABI_1.3
+OBJECT:4:_ZTSPKh@@CXXABI_1.3
+OBJECT:4:_ZTSPKi@@CXXABI_1.3
+OBJECT:4:_ZTSPKj@@CXXABI_1.3
+OBJECT:4:_ZTSPKl@@CXXABI_1.3
+OBJECT:4:_ZTSPKm@@CXXABI_1.3
+OBJECT:4:_ZTSPKs@@CXXABI_1.3
+OBJECT:4:_ZTSPKt@@CXXABI_1.3
+OBJECT:4:_ZTSPKv@@CXXABI_1.3
+OBJECT:4:_ZTSPKw@@CXXABI_1.3
+OBJECT:4:_ZTSPKx@@CXXABI_1.3
+OBJECT:4:_ZTSPKy@@CXXABI_1.3
+OBJECT:50:_ZTSSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:50:_ZTSSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:50:_ZTSSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:50:_ZTSSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:52:_ZTVSt10moneypunctIcLb0EE@@GLIBCXX_3.4
+OBJECT:52:_ZTVSt10moneypunctIcLb1EE@@GLIBCXX_3.4
+OBJECT:52:_ZTVSt10moneypunctIwLb0EE@@GLIBCXX_3.4
+OBJECT:52:_ZTVSt10moneypunctIwLb1EE@@GLIBCXX_3.4
+OBJECT:52:_ZTVSt17moneypunct_bynameIcLb0EE@@GLIBCXX_3.4
+OBJECT:52:_ZTVSt17moneypunct_bynameIcLb1EE@@GLIBCXX_3.4
+OBJECT:52:_ZTVSt17moneypunct_bynameIwLb0EE@@GLIBCXX_3.4
+OBJECT:52:_ZTVSt17moneypunct_bynameIwLb1EE@@GLIBCXX_3.4
+OBJECT:54:_ZTSN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:54:_ZTSN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:56:_ZNSt17__timepunct_cacheIcE12_S_timezonesE@@GLIBCXX_3.4
+OBJECT:56:_ZNSt17__timepunct_cacheIwE12_S_timezonesE@@GLIBCXX_3.4
+OBJECT:58:_ZTSSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:58:_ZTSSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:58:_ZTSSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:58:_ZTSSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:59:_ZTSSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:59:_ZTSSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:59:_ZTSSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:59:_ZTSSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:60:_ZTSSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:60:_ZTSSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:60:_ZTSSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:60:_ZTSSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:60:_ZTVSd@@GLIBCXX_3.4
+OBJECT:60:_ZTVSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:60:_ZTVSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:60:_ZTVSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:60:_ZTVSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:60:_ZTVSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:60:_ZTVSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:60:_ZTVSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:60:_ZTVSt9strstream@@GLIBCXX_3.4
+OBJECT:64:_ZTVN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:64:_ZTVN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:64:_ZTVSt12ctype_bynameIwE@@GLIBCXX_3.4
+OBJECT:64:_ZTVSt12strstreambuf@@GLIBCXX_3.4
+OBJECT:64:_ZTVSt13basic_filebufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:64:_ZTVSt13basic_filebufIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:64:_ZTVSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:64:_ZTVSt15basic_streambufIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:64:_ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:64:_ZTVSt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:64:_ZTVSt21__ctype_abstract_baseIcE@@GLIBCXX_3.4
+OBJECT:64:_ZTVSt21__ctype_abstract_baseIwE@@GLIBCXX_3.4
+OBJECT:64:_ZTVSt5ctypeIwE@@GLIBCXX_3.4
+OBJECT:67:_ZTSSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:67:_ZTSSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:67:_ZTSSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:67:_ZTSSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt10moneypunctIcLb0EE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt10moneypunctIcLb1EE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt10moneypunctIwLb0EE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt10moneypunctIwLb1EE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt11__timepunctIcE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt11__timepunctIwE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt7collateIcE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt7collateIwE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt8messagesIcE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt8messagesIwE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt8numpunctIcE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt8numpunctIwE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZTINSt6locale5facetE@@GLIBCXX_3.4
+OBJECT:8:_ZTISt10ctype_base@@GLIBCXX_3.4
+OBJECT:8:_ZTISt10money_base@@GLIBCXX_3.4
+OBJECT:8:_ZTISt12codecvt_base@@GLIBCXX_3.4
+OBJECT:8:_ZTISt13messages_base@@GLIBCXX_3.4
+OBJECT:8:_ZTISt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:8:_ZTISt15basic_streambufIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:8:_ZTISt8ios_base@@GLIBCXX_3.4
+OBJECT:8:_ZTISt9exception@@GLIBCXX_3.4
+OBJECT:8:_ZTISt9time_base@@GLIBCXX_3.4
+OBJECT:8:_ZTISt9type_info@@GLIBCXX_3.4
+OBJECT:8:_ZTIa@@CXXABI_1.3
+OBJECT:8:_ZTIb@@CXXABI_1.3
+OBJECT:8:_ZTIc@@CXXABI_1.3
+OBJECT:8:_ZTId@@CXXABI_1.3
+OBJECT:8:_ZTIe@@CXXABI_1.3
+OBJECT:8:_ZTIf@@CXXABI_1.3
+OBJECT:8:_ZTIh@@CXXABI_1.3
+OBJECT:8:_ZTIi@@CXXABI_1.3
+OBJECT:8:_ZTIj@@CXXABI_1.3
+OBJECT:8:_ZTIl@@CXXABI_1.3
+OBJECT:8:_ZTIm@@CXXABI_1.3
+OBJECT:8:_ZTIs@@CXXABI_1.3
+OBJECT:8:_ZTIt@@CXXABI_1.3
+OBJECT:8:_ZTIv@@CXXABI_1.3
+OBJECT:8:_ZTIw@@CXXABI_1.3
+OBJECT:8:_ZTIx@@CXXABI_1.3
+OBJECT:8:_ZTIy@@CXXABI_1.3
+OBJECT:8:_ZTTSi@@GLIBCXX_3.4
+OBJECT:8:_ZTTSo@@GLIBCXX_3.4
+OBJECT:8:_ZTTSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:8:_ZTTSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
diff --git a/libstdc++-v3/config/abi/powerpc64-linux-gnu/baseline_symbols.txt b/libstdc++-v3/config/abi/powerpc64-linux-gnu/baseline_symbols.txt
new file mode 100644
index 00000000000..2b1bb6746e9
--- /dev/null
+++ b/libstdc++-v3/config/abi/powerpc64-linux-gnu/baseline_symbols.txt
@@ -0,0 +1,3239 @@
+FUNC:._ZN10__cxxabiv116__enum_type_infoD0Ev@@CXXABI_1.3
+FUNC:._ZN10__cxxabiv116__enum_type_infoD1Ev@@CXXABI_1.3
+FUNC:._ZN10__cxxabiv116__enum_type_infoD2Ev@@CXXABI_1.3
+FUNC:._ZN10__cxxabiv117__array_type_infoD0Ev@@CXXABI_1.3
+FUNC:._ZN10__cxxabiv117__array_type_infoD1Ev@@CXXABI_1.3
+FUNC:._ZN10__cxxabiv117__array_type_infoD2Ev@@CXXABI_1.3
+FUNC:._ZN10__cxxabiv117__class_type_infoD0Ev@@CXXABI_1.3
+FUNC:._ZN10__cxxabiv117__class_type_infoD1Ev@@CXXABI_1.3
+FUNC:._ZN10__cxxabiv117__class_type_infoD2Ev@@CXXABI_1.3
+FUNC:._ZN10__cxxabiv117__pbase_type_infoD0Ev@@CXXABI_1.3
+FUNC:._ZN10__cxxabiv117__pbase_type_infoD1Ev@@CXXABI_1.3
+FUNC:._ZN10__cxxabiv117__pbase_type_infoD2Ev@@CXXABI_1.3
+FUNC:._ZN10__cxxabiv119__pointer_type_infoD0Ev@@CXXABI_1.3
+FUNC:._ZN10__cxxabiv119__pointer_type_infoD1Ev@@CXXABI_1.3
+FUNC:._ZN10__cxxabiv119__pointer_type_infoD2Ev@@CXXABI_1.3
+FUNC:._ZN10__cxxabiv120__function_type_infoD0Ev@@CXXABI_1.3
+FUNC:._ZN10__cxxabiv120__function_type_infoD1Ev@@CXXABI_1.3
+FUNC:._ZN10__cxxabiv120__function_type_infoD2Ev@@CXXABI_1.3
+FUNC:._ZN10__cxxabiv120__si_class_type_infoD0Ev@@CXXABI_1.3
+FUNC:._ZN10__cxxabiv120__si_class_type_infoD1Ev@@CXXABI_1.3
+FUNC:._ZN10__cxxabiv120__si_class_type_infoD2Ev@@CXXABI_1.3
+FUNC:._ZN10__cxxabiv121__vmi_class_type_infoD0Ev@@CXXABI_1.3
+FUNC:._ZN10__cxxabiv121__vmi_class_type_infoD1Ev@@CXXABI_1.3
+FUNC:._ZN10__cxxabiv121__vmi_class_type_infoD2Ev@@CXXABI_1.3
+FUNC:._ZN10__cxxabiv123__fundamental_type_infoD0Ev@@CXXABI_1.3
+FUNC:._ZN10__cxxabiv123__fundamental_type_infoD1Ev@@CXXABI_1.3
+FUNC:._ZN10__cxxabiv123__fundamental_type_infoD2Ev@@CXXABI_1.3
+FUNC:._ZN10__cxxabiv129__pointer_to_member_type_infoD0Ev@@CXXABI_1.3
+FUNC:._ZN10__cxxabiv129__pointer_to_member_type_infoD1Ev@@CXXABI_1.3
+FUNC:._ZN10__cxxabiv129__pointer_to_member_type_infoD2Ev@@CXXABI_1.3
+FUNC:._ZN9__gnu_cxx12__atomic_addEPVii@@GLIBCXX_3.4
+FUNC:._ZN9__gnu_cxx18__exchange_and_addEPVii@@GLIBCXX_3.4
+FUNC:._ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj@@CXXABI_1.3
+FUNC:._ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PKvRNS0_15__upcast_resultE@@CXXABI_1.3
+FUNC:._ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PPv@@CXXABI_1.3
+FUNC:._ZNK10__cxxabiv117__class_type_info12__do_dyncastElNS0_10__sub_kindEPKS0_PKvS3_S5_RNS0_16__dyncast_resultE@@CXXABI_1.3
+FUNC:._ZNK10__cxxabiv117__class_type_info20__do_find_public_srcElPKvPKS0_S2_@@CXXABI_1.3
+FUNC:._ZNK10__cxxabiv117__pbase_type_info10__do_catchEPKSt9type_infoPPvj@@CXXABI_1.3
+FUNC:._ZNK10__cxxabiv117__pbase_type_info15__pointer_catchEPKS0_PPvj@@CXXABI_1.3
+FUNC:._ZNK10__cxxabiv119__pointer_type_info14__is_pointer_pEv@@CXXABI_1.3
+FUNC:._ZNK10__cxxabiv119__pointer_type_info15__pointer_catchEPKNS_17__pbase_type_infoEPPvj@@CXXABI_1.3
+FUNC:._ZNK10__cxxabiv120__function_type_info15__is_function_pEv@@CXXABI_1.3
+FUNC:._ZNK10__cxxabiv120__si_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE@@CXXABI_1.3
+FUNC:._ZNK10__cxxabiv120__si_class_type_info12__do_dyncastElNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE@@CXXABI_1.3
+FUNC:._ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcElPKvPKNS_17__class_type_infoES2_@@CXXABI_1.3
+FUNC:._ZNK10__cxxabiv121__vmi_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE@@CXXABI_1.3
+FUNC:._ZNK10__cxxabiv121__vmi_class_type_info12__do_dyncastElNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE@@CXXABI_1.3
+FUNC:._ZNK10__cxxabiv121__vmi_class_type_info20__do_find_public_srcElPKvPKNS_17__class_type_infoES2_@@CXXABI_1.3
+FUNC:._ZNK10__cxxabiv129__pointer_to_member_type_info15__pointer_catchEPKNS_17__pbase_type_infoEPPvj@@CXXABI_1.3
+FUNC:._ZNSt6locale5_ImplC1EPKcm@@GLIBCXX_3.4
+FUNC:._ZNSt6locale5_ImplC1ERKS0_m@@GLIBCXX_3.4
+FUNC:._ZNSt6locale5_ImplC1Em@@GLIBCXX_3.4
+FUNC:._ZNSt6locale5_ImplC2EPKcm@@GLIBCXX_3.4
+FUNC:._ZNSt6locale5_ImplC2ERKS0_m@@GLIBCXX_3.4
+FUNC:._ZNSt6locale5_ImplC2Em@@GLIBCXX_3.4
+FUNC:._ZNSt6locale5_ImplD1Ev@@GLIBCXX_3.4
+FUNC:._ZNSt6locale5_ImplD2Ev@@GLIBCXX_3.4
+FUNC:._ZNSt6locale5facetD0Ev@@GLIBCXX_3.4
+FUNC:._ZNSt6locale5facetD1Ev@@GLIBCXX_3.4
+FUNC:._ZNSt6locale5facetD2Ev@@GLIBCXX_3.4
+FUNC:._ZNSt6localeD1Ev@@GLIBCXX_3.4
+FUNC:._ZNSt6localeD2Ev@@GLIBCXX_3.4
+FUNC:._ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4
+FUNC:._ZNSt8ios_base4InitD2Ev@@GLIBCXX_3.4
+FUNC:._ZNSt8ios_baseD0Ev@@GLIBCXX_3.4
+FUNC:._ZNSt8ios_baseD1Ev@@GLIBCXX_3.4
+FUNC:._ZNSt8ios_baseD2Ev@@GLIBCXX_3.4
+FUNC:._ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct@@GLIBCXX_3.4
+FUNC:._ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct@@GLIBCXX_3.4
+FUNC:._ZSt14__convert_to_vIfEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct@@GLIBCXX_3.4
+FUNC:._ZSt9has_facetISt10moneypunctIcLb0EEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:._ZSt9has_facetISt10moneypunctIwLb0EEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:._ZSt9has_facetISt11__timepunctIcEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:._ZSt9has_facetISt11__timepunctIwEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:._ZSt9has_facetISt5ctypeIcEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:._ZSt9has_facetISt5ctypeIwEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:._ZSt9has_facetISt7codecvtIcc11__mbstate_tEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:._ZSt9has_facetISt7codecvtIwc11__mbstate_tEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:._ZSt9has_facetISt7collateIcEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:._ZSt9has_facetISt7collateIwEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:._ZSt9has_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:._ZSt9has_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:._ZSt9has_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:._ZSt9has_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:._ZSt9has_facetISt8messagesIcEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:._ZSt9has_facetISt8messagesIwEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:._ZSt9has_facetISt8numpunctIcEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:._ZSt9has_facetISt8numpunctIwEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:._ZSt9has_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:._ZSt9has_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:._ZSt9has_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:._ZSt9has_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:._ZSt9has_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:._ZSt9has_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:._ZSt9has_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:._ZSt9has_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:._ZThn16_NSdD0Ev@@GLIBCXX_3.4
+FUNC:._ZThn16_NSdD1Ev@@GLIBCXX_3.4
+FUNC:._ZThn16_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
+FUNC:._ZThn16_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
+FUNC:._ZThn16_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:._ZThn16_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:._ZThn16_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:._ZThn16_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:._ZThn16_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
+FUNC:._ZThn16_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
+FUNC:._ZThn16_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
+FUNC:._ZThn16_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
+FUNC:._ZThn16_NSt9strstreamD0Ev@@GLIBCXX_3.4
+FUNC:._ZThn16_NSt9strstreamD1Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSdD0Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSdD1Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSiD0Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSiD1Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSoD0Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSoD1Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt10istrstreamD0Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt10istrstreamD1Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt10ostrstreamD0Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt10ostrstreamD1Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt13basic_istreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt13basic_istreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt13basic_ostreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt13basic_ostreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt9strstreamD0Ev@@GLIBCXX_3.4
+FUNC:._ZTv0_n24_NSt9strstreamD1Ev@@GLIBCXX_3.4
+FUNC:._Znam@@GLIBCXX_3.4
+FUNC:._ZnamRKSt9nothrow_t@@GLIBCXX_3.4
+FUNC:._Znwm@@GLIBCXX_3.4
+FUNC:._ZnwmRKSt9nothrow_t@@GLIBCXX_3.4
+FUNC:_ZN10__cxxabiv116__enum_type_infoD0Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv116__enum_type_infoD1Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv116__enum_type_infoD2Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv117__array_type_infoD0Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv117__array_type_infoD1Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv117__array_type_infoD2Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv117__class_type_infoD0Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv117__class_type_infoD1Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv117__class_type_infoD2Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv117__pbase_type_infoD0Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv117__pbase_type_infoD1Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv117__pbase_type_infoD2Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv119__pointer_type_infoD0Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv119__pointer_type_infoD1Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv119__pointer_type_infoD2Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv120__function_type_infoD0Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv120__function_type_infoD1Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv120__function_type_infoD2Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv120__si_class_type_infoD0Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv120__si_class_type_infoD1Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv120__si_class_type_infoD2Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv121__vmi_class_type_infoD0Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv121__vmi_class_type_infoD1Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv121__vmi_class_type_infoD2Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv123__fundamental_type_infoD0Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv123__fundamental_type_infoD1Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv123__fundamental_type_infoD2Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv129__pointer_to_member_type_infoD0Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv129__pointer_to_member_type_infoD1Ev@@CXXABI_1.3
+FUNC:_ZN10__cxxabiv129__pointer_to_member_type_infoD2Ev@@CXXABI_1.3
+FUNC:_ZN10__gnu_norm15_List_node_base4hookEPS0_@@GLIBCXX_3.4
+FUNC:_ZN10__gnu_norm15_List_node_base4swapERS0_S1_@@GLIBCXX_3.4
+FUNC:_ZN10__gnu_norm15_List_node_base6unhookEv@@GLIBCXX_3.4
+FUNC:_ZN10__gnu_norm15_List_node_base7reverseEv@@GLIBCXX_3.4
+FUNC:_ZN10__gnu_norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4
+FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4
+FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv@@GLIBCXX_3.4
+FUNC:_ZN11__gnu_debug19_Safe_sequence_base13_M_detach_allEv@@GLIBCXX_3.4
+FUNC:_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4
+FUNC:_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4
+FUNC:_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_@@GLIBCXX_3.4
+FUNC:_ZN9__gnu_cxx12__atomic_addEPVii@@GLIBCXX_3.4
+FUNC:_ZN9__gnu_cxx18__exchange_and_addEPVii@@GLIBCXX_3.4
+FUNC:_ZN9__gnu_cxx27__verbose_terminate_handlerEv@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PKvRNS0_15__upcast_resultE@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PPv@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv117__class_type_info12__do_dyncastElNS0_10__sub_kindEPKS0_PKvS3_S5_RNS0_16__dyncast_resultE@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv117__class_type_info20__do_find_public_srcElPKvPKS0_S2_@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv117__pbase_type_info10__do_catchEPKSt9type_infoPPvj@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv117__pbase_type_info15__pointer_catchEPKS0_PPvj@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv119__pointer_type_info14__is_pointer_pEv@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv119__pointer_type_info15__pointer_catchEPKNS_17__pbase_type_infoEPPvj@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv120__function_type_info15__is_function_pEv@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv120__si_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv120__si_class_type_info12__do_dyncastElNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcElPKvPKNS_17__class_type_infoES2_@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv121__vmi_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv121__vmi_class_type_info12__do_dyncastElNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv121__vmi_class_type_info20__do_find_public_srcElPKvPKNS_17__class_type_infoES2_@@CXXABI_1.3
+FUNC:_ZNK10__cxxabiv129__pointer_to_member_type_info15__pointer_catchEPKNS_17__pbase_type_infoEPPvj@@CXXABI_1.3
+FUNC:_ZNK11__gnu_debug16_Error_formatter10_M_messageENS_13_Debug_msg_idE@@GLIBCXX_3.4
+FUNC:_ZNK11__gnu_debug16_Error_formatter10_Parameter14_M_print_fieldEPKS0_PKc@@GLIBCXX_3.4
+FUNC:_ZNK11__gnu_debug16_Error_formatter10_Parameter20_M_print_descriptionEPKS0_@@GLIBCXX_3.4
+FUNC:_ZNK11__gnu_debug16_Error_formatter13_M_print_wordEPKc@@GLIBCXX_3.4
+FUNC:_ZNK11__gnu_debug16_Error_formatter15_M_print_stringEPKc@@GLIBCXX_3.4
+FUNC:_ZNK11__gnu_debug16_Error_formatter8_M_errorEv@@GLIBCXX_3.4
+FUNC:_ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv@@GLIBCXX_3.4
+FUNC:_ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwm@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwmm@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_m@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEwm@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwm@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwmm@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofERKS2_m@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEwm@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13get_allocatorEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwm@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwmm@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofERKS2_m@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEwm@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwm@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwmm@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofERKS2_m@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEwm@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE2atEm@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE3endEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_leakedEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_sharedEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4copyEPwmm@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4dataEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwm@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwmm@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findERKS2_m@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEwm@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4rendEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4sizeEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5c_strEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5emptyEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwm@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwmm@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindERKS2_m@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEwm@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6_M_repEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6lengthEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6substrEmm@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_dataEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_iendEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEPKw@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareERKS2_@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmPKw@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmPKwm@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmRKS2_@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmRKS2_mm@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M_checkEmPKc@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M_limitEmm@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCXX_3.4
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEm@@GLIBCXX_3.4
+FUNC:_ZNKSi6gcountEv@@GLIBCXX_3.4
+FUNC:_ZNKSi6sentrycvbEv@@GLIBCXX_3.4
+FUNC:_ZNKSo6sentrycvbEv@@GLIBCXX_3.4
+FUNC:_ZNKSs12find_last_ofEPKcm@@GLIBCXX_3.4
+FUNC:_ZNKSs12find_last_ofEPKcmm@@GLIBCXX_3.4
+FUNC:_ZNKSs12find_last_ofERKSsm@@GLIBCXX_3.4
+FUNC:_ZNKSs12find_last_ofEcm@@GLIBCXX_3.4
+FUNC:_ZNKSs13find_first_ofEPKcm@@GLIBCXX_3.4
+FUNC:_ZNKSs13find_first_ofEPKcmm@@GLIBCXX_3.4
+FUNC:_ZNKSs13find_first_ofERKSsm@@GLIBCXX_3.4
+FUNC:_ZNKSs13find_first_ofEcm@@GLIBCXX_3.4
+FUNC:_ZNKSs13get_allocatorEv@@GLIBCXX_3.4
+FUNC:_ZNKSs16find_last_not_ofEPKcm@@GLIBCXX_3.4
+FUNC:_ZNKSs16find_last_not_ofEPKcmm@@GLIBCXX_3.4
+FUNC:_ZNKSs16find_last_not_ofERKSsm@@GLIBCXX_3.4
+FUNC:_ZNKSs16find_last_not_ofEcm@@GLIBCXX_3.4
+FUNC:_ZNKSs17find_first_not_ofEPKcm@@GLIBCXX_3.4
+FUNC:_ZNKSs17find_first_not_ofEPKcmm@@GLIBCXX_3.4
+FUNC:_ZNKSs17find_first_not_ofERKSsm@@GLIBCXX_3.4
+FUNC:_ZNKSs17find_first_not_ofEcm@@GLIBCXX_3.4
+FUNC:_ZNKSs2atEm@@GLIBCXX_3.4
+FUNC:_ZNKSs3endEv@@GLIBCXX_3.4
+FUNC:_ZNKSs4_Rep12_M_is_leakedEv@@GLIBCXX_3.4
+FUNC:_ZNKSs4_Rep12_M_is_sharedEv@@GLIBCXX_3.4
+FUNC:_ZNKSs4copyEPcmm@@GLIBCXX_3.4
+FUNC:_ZNKSs4dataEv@@GLIBCXX_3.4
+FUNC:_ZNKSs4findEPKcm@@GLIBCXX_3.4
+FUNC:_ZNKSs4findEPKcmm@@GLIBCXX_3.4
+FUNC:_ZNKSs4findERKSsm@@GLIBCXX_3.4
+FUNC:_ZNKSs4findEcm@@GLIBCXX_3.4
+FUNC:_ZNKSs4rendEv@@GLIBCXX_3.4
+FUNC:_ZNKSs4sizeEv@@GLIBCXX_3.4
+FUNC:_ZNKSs5beginEv@@GLIBCXX_3.4
+FUNC:_ZNKSs5c_strEv@@GLIBCXX_3.4
+FUNC:_ZNKSs5emptyEv@@GLIBCXX_3.4
+FUNC:_ZNKSs5rfindEPKcm@@GLIBCXX_3.4
+FUNC:_ZNKSs5rfindEPKcmm@@GLIBCXX_3.4
+FUNC:_ZNKSs5rfindERKSsm@@GLIBCXX_3.4
+FUNC:_ZNKSs5rfindEcm@@GLIBCXX_3.4
+FUNC:_ZNKSs6_M_repEv@@GLIBCXX_3.4
+FUNC:_ZNKSs6lengthEv@@GLIBCXX_3.4
+FUNC:_ZNKSs6rbeginEv@@GLIBCXX_3.4
+FUNC:_ZNKSs6substrEmm@@GLIBCXX_3.4
+FUNC:_ZNKSs7_M_dataEv@@GLIBCXX_3.4
+FUNC:_ZNKSs7_M_iendEv@@GLIBCXX_3.4
+FUNC:_ZNKSs7compareEPKc@@GLIBCXX_3.4
+FUNC:_ZNKSs7compareERKSs@@GLIBCXX_3.4
+FUNC:_ZNKSs7compareEmmPKc@@GLIBCXX_3.4
+FUNC:_ZNKSs7compareEmmPKcm@@GLIBCXX_3.4
+FUNC:_ZNKSs7compareEmmRKSs@@GLIBCXX_3.4
+FUNC:_ZNKSs7compareEmmRKSsmm@@GLIBCXX_3.4
+FUNC:_ZNKSs8_M_checkEmPKc@@GLIBCXX_3.4
+FUNC:_ZNKSs8_M_limitEmm@@GLIBCXX_3.4
+FUNC:_ZNKSs8capacityEv@@GLIBCXX_3.4
+FUNC:_ZNKSs8max_sizeEv@@GLIBCXX_3.4
+FUNC:_ZNKSs9_M_ibeginEv@@GLIBCXX_3.4
+FUNC:_ZNKSsixEm@@GLIBCXX_3.4
+FUNC:_ZNKSt10istrstream5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE10neg_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE10pos_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE11curr_symbolEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE11do_groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE11frac_digitsEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE13decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE13do_neg_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE13do_pos_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE13negative_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE13positive_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE13thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE14do_curr_symbolEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE14do_frac_digitsEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_negative_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_positive_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb0EE8groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE10neg_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE10pos_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE11curr_symbolEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE11do_groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE11frac_digitsEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE13decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE13do_neg_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE13do_pos_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE13negative_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE13positive_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE13thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE14do_curr_symbolEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE14do_frac_digitsEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_negative_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_positive_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIcLb1EE8groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE10neg_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE10pos_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE11curr_symbolEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE11do_groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE11frac_digitsEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE13decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE13do_neg_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE13do_pos_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE13negative_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE13positive_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE13thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE14do_curr_symbolEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE14do_frac_digitsEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_negative_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_positive_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb0EE8groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE10neg_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE10pos_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE11curr_symbolEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE11do_groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE11frac_digitsEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE13decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE13do_neg_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE13do_pos_formatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE13negative_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE13positive_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE13thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE14do_curr_symbolEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE14do_frac_digitsEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_negative_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_positive_signEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10moneypunctIwLb1EE8groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10ostrstream5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt10ostrstream6pcountEv@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIcE15_M_am_pm_formatEPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIcE15_M_date_formatsEPPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIcE15_M_time_formatsEPPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIcE19_M_days_abbreviatedEPPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIcE20_M_date_time_formatsEPPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIcE21_M_months_abbreviatedEPPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIcE6_M_putEPcmPKcPK2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIcE7_M_daysEPPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIcE8_M_am_pmEPPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIcE9_M_monthsEPPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIwE15_M_am_pm_formatEPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIwE15_M_date_formatsEPPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIwE15_M_time_formatsEPPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIwE19_M_days_abbreviatedEPPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIwE20_M_date_time_formatsEPPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIwE21_M_months_abbreviatedEPPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIwE6_M_putEPwmPKwPK2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIwE7_M_daysEPPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIwE8_M_am_pmEPPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt11logic_error4whatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCXX_3.4
+FUNC:_ZNKSt12strstreambuf6pcountEv@@GLIBCXX_3.4
+FUNC:_ZNKSt13basic_filebufIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4
+FUNC:_ZNKSt13basic_filebufIwSt11char_traitsIwEE7is_openEv@@GLIBCXX_3.4
+FUNC:_ZNKSt13basic_fstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt13basic_fstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt13basic_istreamIwSt11char_traitsIwEE6gcountEv@@GLIBCXX_3.4
+FUNC:_ZNKSt13basic_istreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCXX_3.4
+FUNC:_ZNKSt13basic_ostreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCXX_3.4
+FUNC:_ZNKSt13runtime_error4whatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt14basic_ifstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt14basic_ofstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt14basic_ofstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5ebackEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5egptrEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5epptrEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5pbaseEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE6getlocEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE4gptrEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE4pptrEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5ebackEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5egptrEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5epptrEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5pbaseEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE6getlocEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4
+FUNC:_ZNKSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4
+FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4
+FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4
+FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4
+FUNC:_ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt19basic_istringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4
+FUNC:_ZNKSt19basic_istringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4
+FUNC:_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4
+FUNC:_ZNKSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIcE10do_tolowerEPcPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIcE10do_tolowerEc@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIcE10do_toupperEPcPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIcE10do_toupperEc@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIcE8do_widenEPKcS2_Pc@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIcE8do_widenEc@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIcE9do_narrowEPKcS2_cPc@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIcE9do_narrowEcc@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE10do_scan_isEtPKwS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE10do_tolowerEPwPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE10do_tolowerEw@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE10do_toupperEPwPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE10do_toupperEw@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE11do_scan_notEtPKwS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE19_M_convert_to_wmaskEt@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE5do_isEPKwS2_Pt@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE5do_isEtw@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE8do_widenEPKcS2_Pw@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE8do_widenEc@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE9do_narrowEPKwS2_cPc@@GLIBCXX_3.4
+FUNC:_ZNKSt5ctypeIwE9do_narrowEwc@@GLIBCXX_3.4
+FUNC:_ZNKSt6locale2id5_M_idEv@@GLIBCXX_3.4
+FUNC:_ZNKSt6locale4nameEv@@GLIBCXX_3.4
+FUNC:_ZNKSt6localeeqERKS_@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE11do_encodingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE13do_max_lengthEv@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE16do_always_noconvEv@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE5do_inERS0_PKcS4_RS4_PcS6_RS6_@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE6do_outERS0_PKcS4_RS4_PcS6_RS6_@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE9do_lengthERS0_PKcS4_m@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE11do_encodingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE13do_max_lengthEv@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE16do_always_noconvEv@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE5do_inERS0_PKcS4_RS4_PwS6_RS6_@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE6do_outERS0_PKwS4_RS4_PcS6_RS6_@@GLIBCXX_3.4
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE9do_lengthERS0_PKcS4_m@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIcE10_M_compareEPKcS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIcE10do_compareEPKcS2_S2_S2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIcE12_M_transformEPcPKcm@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIcE12do_transformEPKcS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIcE4hashEPKcS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIcE7compareEPKcS2_S2_S2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIcE7do_hashEPKcS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIcE9transformEPKcS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIwE10_M_compareEPKwS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIwE10do_compareEPKwS2_S2_S2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIwE12_M_transformEPwPKwm@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIwE12do_transformEPKwS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIwE4hashEPKwS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIwE7compareEPKwS2_S2_S2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIwE7do_hashEPKwS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7collateIwE9transformEPKwS2_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIjEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIlEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intImEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intItEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIxEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIyEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIjEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIlEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intImEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intItEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIxEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIyEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_group_intEPKcmcRSt8ios_basePcS9_Ri@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIlEES3_S3_RSt8ios_basecT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intImEES3_S3_RSt8ios_basecT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIxEES3_S3_RSt8ios_basecT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIyEES3_S3_RSt8ios_basecT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_group_floatEPKcmcS6_PcS7_Ri@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIdEES3_S3_RSt8ios_baseccT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIeEES3_S3_RSt8ios_baseccT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPKv@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecb@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecd@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basece@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecl@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecm@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecx@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecy@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6_M_padEclRSt8ios_basePcPKcRi@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPKv@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecb@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecd@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basece@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecl@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecm@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecx@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecy@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_group_intEPKcmwRSt8ios_basePwS9_Ri@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIlEES3_S3_RSt8ios_basewT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intImEES3_S3_RSt8ios_basewT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIxEES3_S3_RSt8ios_basewT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIyEES3_S3_RSt8ios_basewT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_group_floatEPKcmwPKwPwS9_Ri@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE15_M_insert_floatIdEES3_S3_RSt8ios_basewcT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE15_M_insert_floatIeEES3_S3_RSt8ios_basewcT_@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPKv@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewb@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewd@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewe@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewl@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewm@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewx@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewy@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6_M_padEwlRSt8ios_basePwPKwRi@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPKv@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewb@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewd@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewe@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewl@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewm@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewx@@GLIBCXX_3.4
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewy@@GLIBCXX_3.4
+FUNC:_ZNKSt8ios_base7failure4whatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIcE18_M_convert_to_charERKSs@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIcE20_M_convert_from_charEPc@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIcE3getEiiiRKSs@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIcE4openERKSsRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIcE4openERKSsRKSt6localePKc@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIcE5closeEi@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIcE6do_getEiiiRKSs@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIcE7do_openERKSsRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIcE8do_closeEi@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIwE18_M_convert_to_charERKSbIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIwE20_M_convert_from_charEPc@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIwE3getEiiiRKSbIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIwE4openERKSsRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIwE4openERKSsRKSt6localePKc@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIwE5closeEi@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIwE6do_getEiiiRKSbIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIwE7do_openERKSsRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNKSt8messagesIwE8do_closeEi@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIcE11do_groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIcE11do_truenameEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIcE12do_falsenameEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIcE13decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIcE13thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIcE16do_decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIcE16do_thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIcE8groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIcE8truenameEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIcE9falsenameEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIwE11do_groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIwE11do_truenameEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIwE12do_falsenameEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIwE13decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIwE13thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIwE16do_decimal_pointEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIwE16do_thousands_sepEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIwE8groupingEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIwE8truenameEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8numpunctIwE9falsenameEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10date_orderEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13do_date_orderEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_numES3_S3_RiiimRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE15_M_extract_nameES3_S3_RiPPKcmRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE21_M_extract_via_formatES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmPKc@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10date_orderEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13do_date_orderEv@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_numES3_S3_RiiimRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE15_M_extract_nameES3_S3_RiPPKwmRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE21_M_extract_via_formatES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmPKw@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmPKcSB_@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmcc@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPK2tmcc@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmPKwSB_@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmcc@@GLIBCXX_3.4
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPK2tmcc@@GLIBCXX_3.4
+FUNC:_ZNKSt8valarrayImE4sizeEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE10exceptionsEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3badEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3tieEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4failEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4fillEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE6narrowEcc@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE7rdstateEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEcvPvEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE10exceptionsEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3badEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3eofEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3tieEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4failEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4fillEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4goodEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE5widenEc@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE6narrowEwc@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE7rdstateEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEcvPvEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEntEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9exception4whatEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb0EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb1EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb0EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb1EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSbIwS2_SaIwEE@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSbIwS2_SaIwEE@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basecRKSs@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basece@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basecRKSs@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basece@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb0EEES3_S3_RSt8ios_basecRKSs@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb1EEES3_S3_RSt8ios_basecRKSs@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewe@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewe@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb0EEES3_S3_RSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCXX_3.4
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb1EEES3_S3_RSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCXX_3.4
+FUNC:_ZNKSt9strstream5rdbufEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9strstream6pcountEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9type_info10__do_catchEPKS_PPvj@@GLIBCXX_3.4
+FUNC:_ZNKSt9type_info11__do_upcastEPKN10__cxxabiv117__class_type_infoEPPv@@GLIBCXX_3.4
+FUNC:_ZNKSt9type_info14__is_pointer_pEv@@GLIBCXX_3.4
+FUNC:_ZNKSt9type_info15__is_function_pEv@@GLIBCXX_3.4
+FUNC:_ZNSaIcEC1ERKS_@@GLIBCXX_3.4
+FUNC:_ZNSaIcEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSaIcEC2ERKS_@@GLIBCXX_3.4
+FUNC:_ZNSaIcEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSaIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSaIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSaIwEC1ERKS_@@GLIBCXX_3.4
+FUNC:_ZNSaIwEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSaIwEC2ERKS_@@GLIBCXX_3.4
+FUNC:_ZNSaIwEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSaIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSaIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC1EPwRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC2EPwRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_M_leak_hardEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_constructEmwRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_empty_repEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIPKwS2_EES8_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIS3_S2_EES6_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwPKwS5_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwS3_S3_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE14_M_replace_auxEmmmw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeEmmPKwm@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE2atEm@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE3endEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_destroyERKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_disposeERKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refcopyEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refdataEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep12_S_empty_repEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep13_M_set_leakedEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep15_M_set_sharableEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep7_M_grabERKS1_S5_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep8_M_cloneERKS1_m@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep9_S_createEmmRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4rendEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4swapERS2_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5clearEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS2_EE@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEmm@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEPKw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEPKwm@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_mm@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEmw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEPKw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEPKwm@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_mm@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEmw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEmw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmPKw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmPKwm@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmRKS2_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmRKS2_mm@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmmw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6resizeEm@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6resizeEmw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_dataEPw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_leakEv@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_NS4_IPKwS2_EES9_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwS8_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwm@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_RKS2_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_S5_S5_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_S6_S6_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_mw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmPKw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmPKwm@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmRKS2_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmRKS2_mm@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmmw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7reserveEm@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9_M_mutateEmmm@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9push_backEw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwmRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_mm@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_mmRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EmwRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwmRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_mm@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_mmRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EmwRKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEPKw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEixEm@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLEPKw@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLEw@@GLIBCXX_3.4
+FUNC:_ZNSdC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+FUNC:_ZNSdC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSdC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+FUNC:_ZNSdC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSdD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSdD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSdD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSi3getEPcl@@GLIBCXX_3.4
+FUNC:_ZNSi3getEPclc@@GLIBCXX_3.4
+FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEEc@@GLIBCXX_3.4
+FUNC:_ZNSi3getERc@@GLIBCXX_3.4
+FUNC:_ZNSi3getEv@@GLIBCXX_3.4
+FUNC:_ZNSi4peekEv@@GLIBCXX_3.4
+FUNC:_ZNSi4readEPcl@@GLIBCXX_3.4
+FUNC:_ZNSi4syncEv@@GLIBCXX_3.4
+FUNC:_ZNSi5seekgESt4fposI11__mbstate_tE@@GLIBCXX_3.4
+FUNC:_ZNSi5seekgElSt12_Ios_Seekdir@@GLIBCXX_3.4
+FUNC:_ZNSi5tellgEv@@GLIBCXX_3.4
+FUNC:_ZNSi5ungetEv@@GLIBCXX_3.4
+FUNC:_ZNSi6ignoreEli@@GLIBCXX_3.4
+FUNC:_ZNSi6sentryC1ERSib@@GLIBCXX_3.4
+FUNC:_ZNSi6sentryC2ERSib@@GLIBCXX_3.4
+FUNC:_ZNSi7getlineEPcl@@GLIBCXX_3.4
+FUNC:_ZNSi7getlineEPclc@@GLIBCXX_3.4
+FUNC:_ZNSi7putbackEc@@GLIBCXX_3.4
+FUNC:_ZNSi8readsomeEPcl@@GLIBCXX_3.4
+FUNC:_ZNSiC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+FUNC:_ZNSiC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSiC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+FUNC:_ZNSiC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSiD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSiD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSiD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSirsEPFRSiS_E@@GLIBCXX_3.4
+FUNC:_ZNSirsEPFRSt8ios_baseS0_E@@GLIBCXX_3.4
+FUNC:_ZNSirsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E@@GLIBCXX_3.4
+FUNC:_ZNSirsEPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+FUNC:_ZNSirsERPv@@GLIBCXX_3.4
+FUNC:_ZNSirsERb@@GLIBCXX_3.4
+FUNC:_ZNSirsERd@@GLIBCXX_3.4
+FUNC:_ZNSirsERe@@GLIBCXX_3.4
+FUNC:_ZNSirsERf@@GLIBCXX_3.4
+FUNC:_ZNSirsERi@@GLIBCXX_3.4
+FUNC:_ZNSirsERj@@GLIBCXX_3.4
+FUNC:_ZNSirsERl@@GLIBCXX_3.4
+FUNC:_ZNSirsERm@@GLIBCXX_3.4
+FUNC:_ZNSirsERs@@GLIBCXX_3.4
+FUNC:_ZNSirsERt@@GLIBCXX_3.4
+FUNC:_ZNSirsERx@@GLIBCXX_3.4
+FUNC:_ZNSirsERy@@GLIBCXX_3.4
+FUNC:_ZNSo3putEc@@GLIBCXX_3.4
+FUNC:_ZNSo5flushEv@@GLIBCXX_3.4
+FUNC:_ZNSo5seekpESt4fposI11__mbstate_tE@@GLIBCXX_3.4
+FUNC:_ZNSo5seekpElSt12_Ios_Seekdir@@GLIBCXX_3.4
+FUNC:_ZNSo5tellpEv@@GLIBCXX_3.4
+FUNC:_ZNSo5writeEPKcl@@GLIBCXX_3.4
+FUNC:_ZNSo6sentryC1ERSo@@GLIBCXX_3.4
+FUNC:_ZNSo6sentryC2ERSo@@GLIBCXX_3.4
+FUNC:_ZNSo6sentryD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSo6sentryD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSo8_M_writeEPKcl@@GLIBCXX_3.4
+FUNC:_ZNSoC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+FUNC:_ZNSoC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSoC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+FUNC:_ZNSoC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSoD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSoD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSoD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSolsEPFRSoS_E@@GLIBCXX_3.4
+FUNC:_ZNSolsEPFRSt8ios_baseS0_E@@GLIBCXX_3.4
+FUNC:_ZNSolsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E@@GLIBCXX_3.4
+FUNC:_ZNSolsEPKv@@GLIBCXX_3.4
+FUNC:_ZNSolsEPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+FUNC:_ZNSolsEb@@GLIBCXX_3.4
+FUNC:_ZNSolsEd@@GLIBCXX_3.4
+FUNC:_ZNSolsEe@@GLIBCXX_3.4
+FUNC:_ZNSolsEf@@GLIBCXX_3.4
+FUNC:_ZNSolsEi@@GLIBCXX_3.4
+FUNC:_ZNSolsEj@@GLIBCXX_3.4
+FUNC:_ZNSolsEl@@GLIBCXX_3.4
+FUNC:_ZNSolsEm@@GLIBCXX_3.4
+FUNC:_ZNSolsEs@@GLIBCXX_3.4
+FUNC:_ZNSolsEt@@GLIBCXX_3.4
+FUNC:_ZNSolsEx@@GLIBCXX_3.4
+FUNC:_ZNSolsEy@@GLIBCXX_3.4
+FUNC:_ZNSs12_Alloc_hiderC1EPcRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSs12_Alloc_hiderC2EPcRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSs12_M_leak_hardEv@@GLIBCXX_3.4
+FUNC:_ZNSs12_S_constructEmcRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSs12_S_empty_repEv@@GLIBCXX_3.4
+FUNC:_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIPKcSsEES4_@@GLIBCXX_3.4
+FUNC:_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIS_SsEES2_@@GLIBCXX_3.4
+FUNC:_ZNSs13_S_copy_charsEPcPKcS1_@@GLIBCXX_3.4
+FUNC:_ZNSs13_S_copy_charsEPcS_S_@@GLIBCXX_3.4
+FUNC:_ZNSs14_M_replace_auxEmmmc@@GLIBCXX_3.4
+FUNC:_ZNSs15_M_replace_safeEmmPKcm@@GLIBCXX_3.4
+FUNC:_ZNSs2atEm@@GLIBCXX_3.4
+FUNC:_ZNSs3endEv@@GLIBCXX_3.4
+FUNC:_ZNSs4_Rep10_M_destroyERKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSs4_Rep10_M_disposeERKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSs4_Rep10_M_refcopyEv@@GLIBCXX_3.4
+FUNC:_ZNSs4_Rep10_M_refdataEv@@GLIBCXX_3.4
+FUNC:_ZNSs4_Rep12_S_empty_repEv@@GLIBCXX_3.4
+FUNC:_ZNSs4_Rep13_M_set_leakedEv@@GLIBCXX_3.4
+FUNC:_ZNSs4_Rep15_M_set_sharableEv@@GLIBCXX_3.4
+FUNC:_ZNSs4_Rep7_M_grabERKSaIcES2_@@GLIBCXX_3.4
+FUNC:_ZNSs4_Rep8_M_cloneERKSaIcEm@@GLIBCXX_3.4
+FUNC:_ZNSs4_Rep9_S_createEmmRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSs4rendEv@@GLIBCXX_3.4
+FUNC:_ZNSs4swapERSs@@GLIBCXX_3.4
+FUNC:_ZNSs5beginEv@@GLIBCXX_3.4
+FUNC:_ZNSs5clearEv@@GLIBCXX_3.4
+FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEE@@GLIBCXX_3.4
+FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEES2_@@GLIBCXX_3.4
+FUNC:_ZNSs5eraseEmm@@GLIBCXX_3.4
+FUNC:_ZNSs6appendEPKc@@GLIBCXX_3.4
+FUNC:_ZNSs6appendEPKcm@@GLIBCXX_3.4
+FUNC:_ZNSs6appendERKSs@@GLIBCXX_3.4
+FUNC:_ZNSs6appendERKSsmm@@GLIBCXX_3.4
+FUNC:_ZNSs6appendEmc@@GLIBCXX_3.4
+FUNC:_ZNSs6assignEPKc@@GLIBCXX_3.4
+FUNC:_ZNSs6assignEPKcm@@GLIBCXX_3.4
+FUNC:_ZNSs6assignERKSs@@GLIBCXX_3.4
+FUNC:_ZNSs6assignERKSsmm@@GLIBCXX_3.4
+FUNC:_ZNSs6assignEmc@@GLIBCXX_3.4
+FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEc@@GLIBCXX_3.4
+FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEmc@@GLIBCXX_3.4
+FUNC:_ZNSs6insertEmPKc@@GLIBCXX_3.4
+FUNC:_ZNSs6insertEmPKcm@@GLIBCXX_3.4
+FUNC:_ZNSs6insertEmRKSs@@GLIBCXX_3.4
+FUNC:_ZNSs6insertEmRKSsmm@@GLIBCXX_3.4
+FUNC:_ZNSs6insertEmmc@@GLIBCXX_3.4
+FUNC:_ZNSs6rbeginEv@@GLIBCXX_3.4
+FUNC:_ZNSs6resizeEm@@GLIBCXX_3.4
+FUNC:_ZNSs6resizeEmc@@GLIBCXX_3.4
+FUNC:_ZNSs7_M_dataEPc@@GLIBCXX_3.4
+FUNC:_ZNSs7_M_leakEv@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_NS0_IPKcSsEES5_@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKc@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcS4_@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcm@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_RKSs@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S1_S1_@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S2_S2_@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_mc@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEmmPKc@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEmmPKcm@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEmmRKSs@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEmmRKSsmm@@GLIBCXX_3.4
+FUNC:_ZNSs7replaceEmmmc@@GLIBCXX_3.4
+FUNC:_ZNSs7reserveEm@@GLIBCXX_3.4
+FUNC:_ZNSs9_M_mutateEmmm@@GLIBCXX_3.4
+FUNC:_ZNSs9push_backEc@@GLIBCXX_3.4
+FUNC:_ZNSsC1EPKcRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC1EPKcmRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC1ERKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC1ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSsC1ERKSsmm@@GLIBCXX_3.4
+FUNC:_ZNSsC1ERKSsmmRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC1EmcRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2EPKcmRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2ERKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSsC2ERKSsmm@@GLIBCXX_3.4
+FUNC:_ZNSsC2ERKSsmmRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2EmcRKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSsD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSsaSEPKc@@GLIBCXX_3.4
+FUNC:_ZNSsaSERKSs@@GLIBCXX_3.4
+FUNC:_ZNSsaSEc@@GLIBCXX_3.4
+FUNC:_ZNSsixEm@@GLIBCXX_3.4
+FUNC:_ZNSspLEPKc@@GLIBCXX_3.4
+FUNC:_ZNSspLERKSs@@GLIBCXX_3.4
+FUNC:_ZNSspLEc@@GLIBCXX_3.4
+FUNC:_ZNSt10__num_base15_S_format_floatERKSt8ios_basePcc@@GLIBCXX_3.4
+FUNC:_ZNSt10bad_typeidD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10bad_typeidD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10bad_typeidD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstream3strEv@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstreamC1EPKc@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstreamC1EPKcl@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstreamC1EPc@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstreamC1EPcl@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstreamC2EPKc@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstreamC2EPKcl@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstreamC2EPc@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstreamC2EPcl@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstreamD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstreamD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10istrstreamD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10money_base20_S_construct_patternEccc@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb0EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb0EEC1EP15__locale_structPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb0EEC1EPSt18__moneypunct_cacheIcLb0EEm@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb0EEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb0EEC2EP15__locale_structPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb0EEC2EPSt18__moneypunct_cacheIcLb0EEm@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb0EEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb0EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb0EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb0EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb1EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb1EEC1EP15__locale_structPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb1EEC1EPSt18__moneypunct_cacheIcLb1EEm@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb1EEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb1EEC2EP15__locale_structPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb1EEC2EPSt18__moneypunct_cacheIcLb1EEm@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb1EEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb1EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb1EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIcLb1EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb0EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb0EEC1EP15__locale_structPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb0EEC1EPSt18__moneypunct_cacheIwLb0EEm@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb0EEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb0EEC2EP15__locale_structPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb0EEC2EPSt18__moneypunct_cacheIwLb0EEm@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb0EEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb0EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb0EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb0EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb1EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb1EEC1EP15__locale_structPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb1EEC1EPSt18__moneypunct_cacheIwLb1EEm@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb1EEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb1EEC2EP15__locale_structPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb1EEC2EPSt18__moneypunct_cacheIwLb1EEm@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb1EEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb1EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb1EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10moneypunctIwLb1EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10ostrstream3strEv@@GLIBCXX_3.4
+FUNC:_ZNSt10ostrstream6freezeEb@@GLIBCXX_3.4
+FUNC:_ZNSt10ostrstreamC1EPciSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt10ostrstreamC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10ostrstreamC2EPciSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt10ostrstreamC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10ostrstreamD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10ostrstreamD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt10ostrstreamD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIcE23_M_initialize_timepunctEP15__locale_struct@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIcEC1EP15__locale_structPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIcEC1EPSt17__timepunct_cacheIcEm@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIcEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIcEC2EP15__locale_structPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIcEC2EPSt17__timepunct_cacheIcEm@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIcEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIcED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIwE23_M_initialize_timepunctEP15__locale_struct@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIwEC1EP15__locale_structPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIwEC1EPSt17__timepunct_cacheIwEm@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIwEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIwEC2EP15__locale_structPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIwEC2EPSt17__timepunct_cacheIwEm@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIwEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIwED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt11__timepunctIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt11logic_errorC1ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt11logic_errorC2ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt11logic_errorD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt11logic_errorD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt11logic_errorD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt11range_errorC1ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt11range_errorC2ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt11range_errorD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt11range_errorD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcE2fdEv@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcE4openEPKcSt13_Ios_Openmodei@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcE4syncEv@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcE5closeEv@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcE6xsgetnEPcl@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcE6xsputnEPKcl@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcE7seekoffElSt12_Ios_Seekdir@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcE8sys_openEP8_IO_FILESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcE8sys_openEiSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcE8xsputn_2EPKclS2_l@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcE9showmanycEv@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcEC1EP15pthread_mutex_t@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcEC2EP15pthread_mutex_t@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12ctype_bynameIcEC1EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt12ctype_bynameIcEC2EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt12ctype_bynameIcED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12ctype_bynameIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12ctype_bynameIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12ctype_bynameIwEC1EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt12ctype_bynameIwEC2EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt12ctype_bynameIwED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12ctype_bynameIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12ctype_bynameIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12domain_errorC1ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt12domain_errorC2ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt12domain_errorD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12domain_errorD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12length_errorC1ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt12length_errorC2ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt12length_errorD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12length_errorD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12out_of_rangeC1ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt12out_of_rangeC2ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt12out_of_rangeD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12out_of_rangeD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambuf3strEv@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambuf6freezeEb@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambuf6setbufEPcl@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambuf7_M_freeEPc@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambuf7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambuf7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambuf8_M_allocEm@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambuf8_M_setupEPcS0_l@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambuf8overflowEi@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambuf9pbackfailEi@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambuf9underflowEv@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC1EPFPvmEPFvS0_E@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC1EPKal@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC1EPKcl@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC1EPKhl@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC1EPalS0_@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC1EPclS0_@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC1EPhlS0_@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC1El@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC2EPFPvmEPFvS0_E@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC2EPKal@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC2EPKcl@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC2EPKhl@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC2EPalS0_@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC2EPclS0_@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC2EPhlS0_@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufC2El@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12strstreambufD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13bad_exceptionD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13bad_exceptionD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13bad_exceptionD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE13_M_set_bufferEl@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE15_M_create_pbackEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE16_M_destroy_pbackEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE19_M_terminate_outputEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE22_M_convert_to_externalEPcl@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE26_M_destroy_internal_bufferEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE27_M_allocate_internal_bufferEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4syncEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5closeEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6setbufEPcl@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsgetnEPcl@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsputnEPKcl@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7_M_seekElSt12_Ios_Seekdir11__mbstate_t@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE8overflowEi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9pbackfailEi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9showmanycEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9underflowEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE13_M_set_bufferEl@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE15_M_create_pbackEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE16_M_destroy_pbackEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE19_M_terminate_outputEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE22_M_convert_to_externalEPwl@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE26_M_destroy_internal_bufferEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE27_M_allocate_internal_bufferEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4syncEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5closeEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6setbufEPwl@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6xsgetnEPwl@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6xsputnEPKwl@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7_M_seekElSt12_Ios_Seekdir11__mbstate_t@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE8overflowEj@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9pbackfailEj@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9showmanycEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9underflowEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE5closeEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE5closeEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwl@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwlw@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERSt15basic_streambufIwS1_Ew@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERw@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4peekEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4readEPwl@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4syncEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgESt4fposI11__mbstate_tE@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgElSt12_Ios_Seekdir@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5tellgEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5ungetEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreElj@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentryC1ERS2_b@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentryC2ERS2_b@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwl@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwlw@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7putbackEw@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE8readsomeEPwl@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRS2_S3_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRSt8ios_baseS4_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRSt9basic_iosIwS1_ES5_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERPv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERb@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERd@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERe@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERf@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERj@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERl@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERm@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERs@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERt@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERx@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERy@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE3putEw@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5flushEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpESt4fposI11__mbstate_tE@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpElSt12_Ios_Seekdir@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5tellpEv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5writeEPKwl@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryC1ERS2_@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryC2ERS2_@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE8_M_writeEPKwl@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRS2_S3_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRSt8ios_baseS4_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRSt9basic_iosIwS1_ES5_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPKv@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEb@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEd@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEe@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEf@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEi@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEj@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEl@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEm@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEs@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEt@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEx@@GLIBCXX_3.4
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEy@@GLIBCXX_3.4
+FUNC:_ZNSt13runtime_errorC1ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt13runtime_errorC2ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt13runtime_errorD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13runtime_errorD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt13runtime_errorD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE5closeEv@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE5closeEv@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE5closeEv@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC1EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC2EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC1EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC2EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14collate_bynameIcEC1EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt14collate_bynameIcEC2EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt14collate_bynameIcED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14collate_bynameIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14collate_bynameIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14collate_bynameIwEC1EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt14collate_bynameIwEC2EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt14collate_bynameIwED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14collate_bynameIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14collate_bynameIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14overflow_errorC1ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt14overflow_errorC2ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt14overflow_errorD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt14overflow_errorD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15_List_node_base4hookEPS_@@GLIBCXX_3.4
+FUNC:_ZNSt15_List_node_base4swapERS_S0_@@GLIBCXX_3.4
+FUNC:_ZNSt15_List_node_base6unhookEv@@GLIBCXX_3.4
+FUNC:_ZNSt15_List_node_base7reverseEv@@GLIBCXX_3.4
+FUNC:_ZNSt15_List_node_base8transferEPS_S0_@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setgEPcS3_S3_@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setpEPcS3_@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4syncEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5gbumpEi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5pbumpEi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetcEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetnEPcl@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sputcEc@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sputnEPKcl@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5uflowEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6sbumpcEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6setbufEPcl@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6snextcEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsgetnEPcl@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsputnEPKcl@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7pubsyncEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7sungetcEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8in_availEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8overflowEi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8pubimbueERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9pbackfailEi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9pubsetbufEPcl@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9showmanycEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9sputbackcEc@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9underflowEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC1ERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC2ERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEaSERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setgEPwS3_S3_@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setpEPwS3_@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4syncEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5gbumpEi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5pbumpEi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetcEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetnEPwl@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sputcEw@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sputnEPKwl@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5uflowEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6sbumpcEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6setbufEPwl@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6snextcEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6xsgetnEPwl@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6xsputnEPKwl@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7pubsyncEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7sungetcEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8in_availEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8overflowEj@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8pubimbueERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pbackfailEj@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pubsetbufEPwl@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9showmanycEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9sputbackcEw@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9underflowEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC1ERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC2ERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEaSERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE15_M_update_egptrEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPcl@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7_M_syncEPcmm@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9pbackfailEi@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9underflowEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE15_M_update_egptrEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE6setbufEPwl@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7_M_syncEPwmm@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE8overflowEj@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9pbackfailEj@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9underflowEv@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15messages_bynameIcEC1EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt15messages_bynameIcEC2EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt15messages_bynameIcED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15messages_bynameIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15messages_bynameIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15messages_bynameIwEC1EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt15messages_bynameIwEC2EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt15messages_bynameIwED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15messages_bynameIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15messages_bynameIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15numpunct_bynameIcEC1EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt15numpunct_bynameIcEC2EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt15numpunct_bynameIcED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15numpunct_bynameIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15numpunct_bynameIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15numpunct_bynameIwEC1EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt15numpunct_bynameIwEC2EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt15numpunct_bynameIwED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15numpunct_bynameIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15numpunct_bynameIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15underflow_errorC1ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt15underflow_errorC2ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt15underflow_errorD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt15underflow_errorD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIcE8_M_cacheERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIcEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIcEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIcED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIwE8_M_cacheERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIwEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIwEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIwED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt16__numpunct_cacheIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt16invalid_argumentC1ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt16invalid_argumentC2ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt16invalid_argumentD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt16invalid_argumentD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17__timepunct_cacheIcEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt17__timepunct_cacheIcEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt17__timepunct_cacheIcED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17__timepunct_cacheIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17__timepunct_cacheIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17__timepunct_cacheIwEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt17__timepunct_cacheIwEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt17__timepunct_cacheIwED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17__timepunct_cacheIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17__timepunct_cacheIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIcLb0EEC1EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIcLb0EEC2EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIcLb0EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIcLb0EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIcLb0EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIcLb1EEC1EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIcLb1EEC2EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIcLb1EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIcLb1EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIcLb1EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIwLb0EEC1EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIwLb0EEC2EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIwLb0EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIwLb0EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIwLb0EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIwLb1EEC1EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIwLb1EEC2EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIwLb1EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIwLb1EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt17moneypunct_bynameIwLb1EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb0EE8_M_cacheERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb0EEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb0EEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb0EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb0EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb0EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb1EE8_M_cacheERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb1EEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb1EEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb1EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb1EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIcLb1EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb0EE8_M_cacheERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb0EEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb0EEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb0EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb0EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb0EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb1EE8_M_cacheERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb1EEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb1EEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb1EED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb1EED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18__moneypunct_cacheIwLb1EED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIcE13classic_tableEv@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIcEC1EP15__locale_structPKtbm@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIcEC1EPKtbm@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIcEC2EP15__locale_structPKtbm@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIcEC2EPKtbm@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIcED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIwE19_M_initialize_ctypeEv@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIwEC1EP15__locale_structm@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIwEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIwEC2EP15__locale_structm@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIwEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIwED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt5ctypeIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt6gslice8_IndexerC1EmRKSt8valarrayImES4_@@GLIBCXX_3.4
+FUNC:_ZNSt6gslice8_IndexerC2EmRKSt8valarrayImES4_@@GLIBCXX_3.4
+FUNC:_ZNSt6locale11_M_coalesceERKS_S1_i@@GLIBCXX_3.4
+FUNC:_ZNSt6locale21_S_normalize_categoryEi@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_Impl16_M_install_facetEPKNS_2idEPKNS_5facetE@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_Impl16_M_replace_facetEPKS0_PKNS_2idE@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_Impl19_M_replace_categoryEPKS0_PKPKNS_2idE@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_Impl21_M_replace_categoriesEPKS0_i@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_ImplC1EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_ImplC1ERKS0_m@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_ImplC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_ImplC2EPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_ImplC2ERKS0_m@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_ImplC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_ImplD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5_ImplD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5facet15_S_get_c_localeEv@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5facet17_S_clone_c_localeERP15__locale_struct@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5facet18_S_create_c_localeERP15__locale_structPKcS2_@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5facet19_S_destroy_c_localeERP15__locale_struct@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5facetD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5facetD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt6locale5facetD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt6locale6globalERKS_@@GLIBCXX_3.4
+FUNC:_ZNSt6locale7classicEv@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC1EPKc@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC1EPNS_5_ImplE@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC1ERKS_@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC1ERKS_PKci@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC1ERKS_S1_i@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC2EPKc@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC2EPNS_5_ImplE@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC2ERKS_@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC2ERKS_PKci@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC2ERKS_S1_i@@GLIBCXX_3.4
+FUNC:_ZNSt6localeC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt6localeD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt6localeD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt6localeaSERKS_@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIcc11__mbstate_tEC1EP15__locale_structm@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIcc11__mbstate_tEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIcc11__mbstate_tEC2EP15__locale_structm@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIcc11__mbstate_tEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIcc11__mbstate_tED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIcc11__mbstate_tED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIcc11__mbstate_tED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIwc11__mbstate_tEC1EP15__locale_structm@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIwc11__mbstate_tEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIwc11__mbstate_tEC2EP15__locale_structm@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIwc11__mbstate_tEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIwc11__mbstate_tED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIwc11__mbstate_tED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7codecvtIwc11__mbstate_tED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIcEC1EP15__locale_structm@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIcEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIcEC2EP15__locale_structm@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIcEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIcED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIwEC1EP15__locale_structm@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIwEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIwEC2EP15__locale_structm@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIwEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIwED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7collateIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8bad_castD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8bad_castD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8bad_castD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base13_M_grow_wordsEib@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base15sync_with_stdioEb@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base17register_callbackEPFvNS_5eventERS_iEi@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base4InitC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base4InitC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base4InitD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base5imbueERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base6xallocEv@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base7_M_initEv@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base7failureC1ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base7failureC2ERKSs@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base7failureD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base7failureD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_base7failureD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_baseC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_baseC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_baseD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_baseD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8ios_baseD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIcEC1EP15__locale_structPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIcEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIcEC2EP15__locale_structPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIcEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIcED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIwEC1EP15__locale_structPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIwEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIwEC2EP15__locale_structPKcm@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIwEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIwED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8messagesIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIcE22_M_initialize_numpunctEP15__locale_struct@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIcEC1EP15__locale_structm@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIcEC1EPSt16__numpunct_cacheIcEm@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIcEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIcEC2EP15__locale_structm@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIcEC2EPSt16__numpunct_cacheIcEm@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIcEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIcED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIcED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIwE22_M_initialize_numpunctEP15__locale_struct@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIwEC1EP15__locale_structm@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIwEC1EPSt16__numpunct_cacheIwEm@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIwEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIwEC2EP15__locale_structm@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIwEC2EPSt16__numpunct_cacheIwEm@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIwEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIwED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIwED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8numpunctIwED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8valarrayImEC1ERKS0_@@GLIBCXX_3.4
+FUNC:_ZNSt8valarrayImEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt8valarrayImEC2ERKS0_@@GLIBCXX_3.4
+FUNC:_ZNSt8valarrayImEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt8valarrayImED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8valarrayImED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt8valarrayImEixEm@@GLIBCXX_3.4
+FUNC:_ZNSt9bad_allocD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9bad_allocD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9bad_allocD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE10exceptionsESt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE11_M_setstateESt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE15_M_cache_localeERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE3tieEPSo@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4fillEc@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5rdbufEPSt15basic_streambufIcS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE7copyfmtERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC1EPSt15basic_streambufIcS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC2EPSt15basic_streambufIcS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE10exceptionsESt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE11_M_setstateESt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE15_M_cache_localeERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE3tieEPSt13basic_ostreamIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4fillEw@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4initEPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5clearESt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5rdbufEPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE7copyfmtERKS2_@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE8setstateESt12_Ios_Iostate@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9exceptionD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9exceptionD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9exceptionD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCXX_3.4
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCXX_3.4
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9strstream3strEv@@GLIBCXX_3.4
+FUNC:_ZNSt9strstream6freezeEb@@GLIBCXX_3.4
+FUNC:_ZNSt9strstreamC1EPciSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt9strstreamC1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9strstreamC2EPciSt13_Ios_Openmode@@GLIBCXX_3.4
+FUNC:_ZNSt9strstreamC2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9strstreamD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9strstreamD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9strstreamD2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9type_infoD0Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9type_infoD1Ev@@GLIBCXX_3.4
+FUNC:_ZNSt9type_infoD2Ev@@GLIBCXX_3.4
+FUNC:_ZSt10unexpectedv@@GLIBCXX_3.4
+FUNC:_ZSt13set_terminatePFvvE@@GLIBCXX_3.4
+FUNC:_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct@@GLIBCXX_3.4
+FUNC:_ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct@@GLIBCXX_3.4
+FUNC:_ZSt14__convert_to_vIfEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct@@GLIBCXX_3.4
+FUNC:_ZSt14set_unexpectedPFvvE@@GLIBCXX_3.4
+FUNC:_ZSt15set_new_handlerPFvvE@@GLIBCXX_3.4
+FUNC:_ZSt16__throw_bad_castv@@GLIBCXX_3.4
+FUNC:_ZSt17__throw_bad_allocv@@GLIBCXX_3.4
+FUNC:_ZSt18_Rb_tree_decrementPKSt18_Rb_tree_node_base@@GLIBCXX_3.4
+FUNC:_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base@@GLIBCXX_3.4
+FUNC:_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base@@GLIBCXX_3.4
+FUNC:_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base@@GLIBCXX_3.4
+FUNC:_ZSt18__throw_bad_typeidv@@GLIBCXX_3.4
+FUNC:_ZSt18uncaught_exceptionv@@GLIBCXX_3.4
+FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCXX_3.4
+FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCXX_3.4
+FUNC:_ZSt19__throw_range_errorPKc@@GLIBCXX_3.4
+FUNC:_ZSt20_Rb_tree_black_countPKSt18_Rb_tree_node_baseS1_@@GLIBCXX_3.4
+FUNC:_ZSt20_Rb_tree_rotate_leftPSt18_Rb_tree_node_baseRS0_@@GLIBCXX_3.4
+FUNC:_ZSt20__throw_domain_errorPKc@@GLIBCXX_3.4
+FUNC:_ZSt20__throw_length_errorPKc@@GLIBCXX_3.4
+FUNC:_ZSt20__throw_out_of_rangePKc@@GLIBCXX_3.4
+FUNC:_ZSt21_Rb_tree_rotate_rightPSt18_Rb_tree_node_baseRS0_@@GLIBCXX_3.4
+FUNC:_ZSt21__throw_bad_exceptionv@@GLIBCXX_3.4
+FUNC:_ZSt21__throw_runtime_errorPKc@@GLIBCXX_3.4
+FUNC:_ZSt22__throw_overflow_errorPKc@@GLIBCXX_3.4
+FUNC:_ZSt23__throw_underflow_errorPKc@@GLIBCXX_3.4
+FUNC:_ZSt24__throw_invalid_argumentPKc@@GLIBCXX_3.4
+FUNC:_ZSt28_Rb_tree_rebalance_for_erasePSt18_Rb_tree_node_baseRS_@@GLIBCXX_3.4
+FUNC:_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_@@GLIBCXX_3.4
+FUNC:_ZSt2wsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_@@GLIBCXX_3.4
+FUNC:_ZSt2wsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_@@GLIBCXX_3.4
+FUNC:_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCXX_3.4
+FUNC:_ZSt4endlIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCXX_3.4
+FUNC:_ZSt4endsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCXX_3.4
+FUNC:_ZSt4endsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCXX_3.4
+FUNC:_ZSt5flushIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCXX_3.4
+FUNC:_ZSt5flushIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCXX_3.4
+FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCXX_3.4
+FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_@@GLIBCXX_3.4
+FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCXX_3.4
+FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt10moneypunctIcLb0EEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt10moneypunctIwLb0EEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt11__timepunctIcEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt11__timepunctIwEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt5ctypeIcEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt5ctypeIwEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt7codecvtIcc11__mbstate_tEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt7codecvtIwc11__mbstate_tEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt7collateIcEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt7collateIwEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt8messagesIcEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt8messagesIwEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt8numpunctIcEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt8numpunctIwEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9has_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9terminatev@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt10moneypunctIcLb0EEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt10moneypunctIcLb1EEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt10moneypunctIwLb0EEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt10moneypunctIwLb1EEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt11__timepunctIcEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt11__timepunctIwEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt5ctypeIcEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt5ctypeIwEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt7codecvtIcc11__mbstate_tEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt7codecvtIwc11__mbstate_tEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt7collateIcEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt7collateIwEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt8messagesIcEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt8messagesIwEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt8numpunctIcEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt8numpunctIwEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZSt9use_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCXX_3.4
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKa@@GLIBCXX_3.4
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@@GLIBCXX_3.4
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKh@@GLIBCXX_3.4
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_a@@GLIBCXX_3.4
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@@GLIBCXX_3.4
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_h@@GLIBCXX_3.4
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags@@GLIBCXX_3.4
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision@@GLIBCXX_3.4
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags@@GLIBCXX_3.4
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St5_Setw@@GLIBCXX_3.4
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_Setbase@@GLIBCXX_3.4
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCXX_3.4
+FUNC:_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E@@GLIBCXX_3.4
+FUNC:_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStlsIdwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStlsIecSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStlsIewSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStlsIfcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStlsIfwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKS3_@@GLIBCXX_3.4
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKc@@GLIBCXX_3.4
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_S3_@@GLIBCXX_3.4
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags@@GLIBCXX_3.4
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision@@GLIBCXX_3.4
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags@@GLIBCXX_3.4
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St5_Setw@@GLIBCXX_3.4
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_Setbase@@GLIBCXX_3.4
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCXX_3.4
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_c@@GLIBCXX_3.4
+FUNC:_ZStlsIwSt11char_traitsIwESaIwEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E@@GLIBCXX_3.4
+FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_@@GLIBCXX_3.4
+FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8_@@GLIBCXX_3.4
+FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ES3_RKS6_@@GLIBCXX_3.4
+FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_EPKS3_RKS6_@@GLIBCXX_3.4
+FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ERKS6_S8_@@GLIBCXX_3.4
+FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ES3_RKS6_@@GLIBCXX_3.4
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Pa@@GLIBCXX_3.4
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ph@@GLIBCXX_3.4
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ra@@GLIBCXX_3.4
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Rh@@GLIBCXX_3.4
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_PS3_@@GLIBCXX_3.4
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_RS3_@@GLIBCXX_3.4
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags@@GLIBCXX_3.4
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St13_Setprecision@@GLIBCXX_3.4
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags@@GLIBCXX_3.4
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St5_Setw@@GLIBCXX_3.4
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_Setbase@@GLIBCXX_3.4
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCXX_3.4
+FUNC:_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCXX_3.4
+FUNC:_ZStrsIdcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStrsIdwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStrsIecSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStrsIewSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStrsIfcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStrsIfwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCXX_3.4
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_PS3_@@GLIBCXX_3.4
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_RS3_@@GLIBCXX_3.4
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags@@GLIBCXX_3.4
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St13_Setprecision@@GLIBCXX_3.4
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags@@GLIBCXX_3.4
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St5_Setw@@GLIBCXX_3.4
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St8_Setbase@@GLIBCXX_3.4
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCXX_3.4
+FUNC:_ZStrsIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCXX_3.4
+FUNC:_ZThn16_NSdD0Ev@@GLIBCXX_3.4
+FUNC:_ZThn16_NSdD1Ev@@GLIBCXX_3.4
+FUNC:_ZThn16_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZThn16_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZThn16_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZThn16_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZThn16_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZThn16_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZThn16_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZThn16_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZThn16_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZThn16_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZThn16_NSt9strstreamD0Ev@@GLIBCXX_3.4
+FUNC:_ZThn16_NSt9strstreamD1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSdD0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSdD1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSiD0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSiD1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSoD0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSoD1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt10istrstreamD0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt10istrstreamD1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt10ostrstreamD0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt10ostrstreamD1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt13basic_istreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt13basic_istreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt13basic_ostreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt13basic_ostreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt9strstreamD0Ev@@GLIBCXX_3.4
+FUNC:_ZTv0_n24_NSt9strstreamD1Ev@@GLIBCXX_3.4
+FUNC:_ZdaPv@@GLIBCXX_3.4
+FUNC:_ZdaPvRKSt9nothrow_t@@GLIBCXX_3.4
+FUNC:_ZdlPv@@GLIBCXX_3.4
+FUNC:_ZdlPvRKSt9nothrow_t@@GLIBCXX_3.4
+FUNC:_Znam@@GLIBCXX_3.4
+FUNC:_ZnamRKSt9nothrow_t@@GLIBCXX_3.4
+FUNC:_Znwm@@GLIBCXX_3.4
+FUNC:_ZnwmRKSt9nothrow_t@@GLIBCXX_3.4
+FUNC:__cxa_allocate_exception@@CXXABI_1.3
+FUNC:__cxa_bad_cast@@CXXABI_1.3
+FUNC:__cxa_bad_typeid@@CXXABI_1.3
+FUNC:__cxa_begin_catch@@CXXABI_1.3
+FUNC:__cxa_call_unexpected@@CXXABI_1.3
+FUNC:__cxa_current_exception_type@@CXXABI_1.3
+FUNC:__cxa_demangle@@CXXABI_1.3
+FUNC:__cxa_end_catch@@CXXABI_1.3
+FUNC:__cxa_free_exception@@CXXABI_1.3
+FUNC:__cxa_get_globals@@CXXABI_1.3
+FUNC:__cxa_get_globals_fast@@CXXABI_1.3
+FUNC:__cxa_guard_abort@@CXXABI_1.3
+FUNC:__cxa_guard_acquire@@CXXABI_1.3
+FUNC:__cxa_guard_release@@CXXABI_1.3
+FUNC:__cxa_pure_virtual@@CXXABI_1.3
+FUNC:__cxa_rethrow@@CXXABI_1.3
+FUNC:__cxa_throw@@CXXABI_1.3
+FUNC:__cxa_vec_cctor@@CXXABI_1.3
+FUNC:__cxa_vec_cleanup@@CXXABI_1.3
+FUNC:__cxa_vec_ctor@@CXXABI_1.3
+FUNC:__cxa_vec_delete2@@CXXABI_1.3
+FUNC:__cxa_vec_delete3@@CXXABI_1.3
+FUNC:__cxa_vec_delete@@CXXABI_1.3
+FUNC:__cxa_vec_dtor@@CXXABI_1.3
+FUNC:__cxa_vec_new2@@CXXABI_1.3
+FUNC:__cxa_vec_new3@@CXXABI_1.3
+FUNC:__cxa_vec_new@@CXXABI_1.3
+FUNC:__dynamic_cast@@CXXABI_1.3
+FUNC:__gxx_personality_v0@@CXXABI_1.3
+FUNC:atan2l@@GLIBCXX_3.4
+FUNC:coshl@@GLIBCXX_3.4
+FUNC:cosl@@GLIBCXX_3.4
+FUNC:expl@@GLIBCXX_3.4
+FUNC:hypotl@@GLIBCXX_3.4
+FUNC:log10l@@GLIBCXX_3.4
+FUNC:logl@@GLIBCXX_3.4
+FUNC:powl@@GLIBCXX_3.4
+FUNC:sinhl@@GLIBCXX_3.4
+FUNC:sinl@@GLIBCXX_3.4
+FUNC:sqrtl@@GLIBCXX_3.4
+FUNC:tanhl@@GLIBCXX_3.4
+FUNC:tanl@@GLIBCXX_3.4
+OBJECT:0:CXXABI_1.3
+OBJECT:0:GLIBCXX_3.4
+OBJECT:104:_ZTVSt10moneypunctIcLb0EE@@GLIBCXX_3.4
+OBJECT:104:_ZTVSt10moneypunctIcLb1EE@@GLIBCXX_3.4
+OBJECT:104:_ZTVSt10moneypunctIwLb0EE@@GLIBCXX_3.4
+OBJECT:104:_ZTVSt10moneypunctIwLb1EE@@GLIBCXX_3.4
+OBJECT:104:_ZTVSt17moneypunct_bynameIcLb0EE@@GLIBCXX_3.4
+OBJECT:104:_ZTVSt17moneypunct_bynameIcLb1EE@@GLIBCXX_3.4
+OBJECT:104:_ZTVSt17moneypunct_bynameIwLb0EE@@GLIBCXX_3.4
+OBJECT:104:_ZTVSt17moneypunct_bynameIwLb1EE@@GLIBCXX_3.4
+OBJECT:112:_ZNSt17__timepunct_cacheIcE12_S_timezonesE@@GLIBCXX_3.4
+OBJECT:112:_ZNSt17__timepunct_cacheIwE12_S_timezonesE@@GLIBCXX_3.4
+OBJECT:120:_ZTVSd@@GLIBCXX_3.4
+OBJECT:120:_ZTVSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:120:_ZTVSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:120:_ZTVSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:120:_ZTVSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:120:_ZTVSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:120:_ZTVSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:120:_ZTVSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:120:_ZTVSt9strstream@@GLIBCXX_3.4
+OBJECT:128:_ZTVN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:128:_ZTVN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:128:_ZTVSt12ctype_bynameIwE@@GLIBCXX_3.4
+OBJECT:128:_ZTVSt12strstreambuf@@GLIBCXX_3.4
+OBJECT:128:_ZTVSt13basic_filebufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:128:_ZTVSt13basic_filebufIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:128:_ZTVSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:128:_ZTVSt15basic_streambufIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:128:_ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:128:_ZTVSt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:128:_ZTVSt21__ctype_abstract_baseIcE@@GLIBCXX_3.4
+OBJECT:128:_ZTVSt21__ctype_abstract_baseIwE@@GLIBCXX_3.4
+OBJECT:128:_ZTVSt5ctypeIwE@@GLIBCXX_3.4
+OBJECT:12:_ZTSSt5ctypeIcE@@GLIBCXX_3.4
+OBJECT:12:_ZTSSt5ctypeIwE@@GLIBCXX_3.4
+OBJECT:12:_ZTSSt8bad_cast@@GLIBCXX_3.4
+OBJECT:12:_ZTSSt8ios_base@@GLIBCXX_3.4
+OBJECT:13:_ZTSSt9bad_alloc@@GLIBCXX_3.4
+OBJECT:13:_ZTSSt9exception@@GLIBCXX_3.4
+OBJECT:13:_ZTSSt9strstream@@GLIBCXX_3.4
+OBJECT:13:_ZTSSt9time_base@@GLIBCXX_3.4
+OBJECT:13:_ZTSSt9type_info@@GLIBCXX_3.4
+OBJECT:14:_ZTSSt7collateIcE@@GLIBCXX_3.4
+OBJECT:14:_ZTSSt7collateIwE@@GLIBCXX_3.4
+OBJECT:15:_ZTSSt10bad_typeid@@GLIBCXX_3.4
+OBJECT:15:_ZTSSt10ctype_base@@GLIBCXX_3.4
+OBJECT:15:_ZTSSt10istrstream@@GLIBCXX_3.4
+OBJECT:15:_ZTSSt10money_base@@GLIBCXX_3.4
+OBJECT:15:_ZTSSt10ostrstream@@GLIBCXX_3.4
+OBJECT:15:_ZTSSt8messagesIcE@@GLIBCXX_3.4
+OBJECT:15:_ZTSSt8messagesIwE@@GLIBCXX_3.4
+OBJECT:15:_ZTSSt8numpunctIcE@@GLIBCXX_3.4
+OBJECT:15:_ZTSSt8numpunctIwE@@GLIBCXX_3.4
+OBJECT:16:_ZTINSt6locale5facetE@@GLIBCXX_3.4
+OBJECT:16:_ZTISt10ctype_base@@GLIBCXX_3.4
+OBJECT:16:_ZTISt10money_base@@GLIBCXX_3.4
+OBJECT:16:_ZTISt12codecvt_base@@GLIBCXX_3.4
+OBJECT:16:_ZTISt13messages_base@@GLIBCXX_3.4
+OBJECT:16:_ZTISt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:16:_ZTISt15basic_streambufIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:16:_ZTISt8ios_base@@GLIBCXX_3.4
+OBJECT:16:_ZTISt9exception@@GLIBCXX_3.4
+OBJECT:16:_ZTISt9time_base@@GLIBCXX_3.4
+OBJECT:16:_ZTISt9type_info@@GLIBCXX_3.4
+OBJECT:16:_ZTIa@@CXXABI_1.3
+OBJECT:16:_ZTIb@@CXXABI_1.3
+OBJECT:16:_ZTIc@@CXXABI_1.3
+OBJECT:16:_ZTId@@CXXABI_1.3
+OBJECT:16:_ZTIe@@CXXABI_1.3
+OBJECT:16:_ZTIf@@CXXABI_1.3
+OBJECT:16:_ZTIh@@CXXABI_1.3
+OBJECT:16:_ZTIi@@CXXABI_1.3
+OBJECT:16:_ZTIj@@CXXABI_1.3
+OBJECT:16:_ZTIl@@CXXABI_1.3
+OBJECT:16:_ZTIm@@CXXABI_1.3
+OBJECT:16:_ZTIs@@CXXABI_1.3
+OBJECT:16:_ZTIt@@CXXABI_1.3
+OBJECT:16:_ZTIv@@CXXABI_1.3
+OBJECT:16:_ZTIw@@CXXABI_1.3
+OBJECT:16:_ZTIx@@CXXABI_1.3
+OBJECT:16:_ZTIy@@CXXABI_1.3
+OBJECT:16:_ZTSSt11logic_error@@GLIBCXX_3.4
+OBJECT:16:_ZTSSt11range_error@@GLIBCXX_3.4
+OBJECT:16:_ZTTSi@@GLIBCXX_3.4
+OBJECT:16:_ZTTSo@@GLIBCXX_3.4
+OBJECT:16:_ZTTSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:16:_ZTTSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:17:_ZTSSt12codecvt_base@@GLIBCXX_3.4
+OBJECT:17:_ZTSSt12domain_error@@GLIBCXX_3.4
+OBJECT:17:_ZTSSt12length_error@@GLIBCXX_3.4
+OBJECT:17:_ZTSSt12out_of_range@@GLIBCXX_3.4
+OBJECT:17:_ZTSSt12strstreambuf@@GLIBCXX_3.4
+OBJECT:18:_ZTSNSt6locale5facetE@@GLIBCXX_3.4
+OBJECT:18:_ZTSSt13bad_exception@@GLIBCXX_3.4
+OBJECT:18:_ZTSSt13messages_base@@GLIBCXX_3.4
+OBJECT:18:_ZTSSt13runtime_error@@GLIBCXX_3.4
+OBJECT:19:_ZTSSt11__timepunctIcE@@GLIBCXX_3.4
+OBJECT:19:_ZTSSt11__timepunctIwE@@GLIBCXX_3.4
+OBJECT:19:_ZTSSt14overflow_error@@GLIBCXX_3.4
+OBJECT:1:_ZNSs4_Rep11_S_terminalE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt10moneypunctIcLb0EE4intlE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt10moneypunctIcLb1EE4intlE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt10moneypunctIwLb0EE4intlE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt10moneypunctIwLb1EE4intlE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIaE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIbE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIcE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIdE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIeE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIfE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIhE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIiE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIjE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIlE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsImE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIsE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsItE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIwE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIxE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt14numeric_limitsIyE9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt17moneypunct_bynameIcLb0EE4intlE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt17moneypunct_bynameIcLb1EE4intlE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt17moneypunct_bynameIwLb0EE4intlE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt17moneypunct_bynameIwLb1EE4intlE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base10is_boundedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base10is_integerE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base12has_infinityE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base13has_quiet_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base14is_specializedE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base15has_denorm_lossE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base15tinyness_beforeE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base17has_signaling_NaNE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base5trapsE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base8is_exactE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base9is_iec559E@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base9is_moduloE@@GLIBCXX_3.4
+OBJECT:1:_ZNSt21__numeric_limits_base9is_signedE@@GLIBCXX_3.4
+OBJECT:1:_ZSt7nothrow@@GLIBCXX_3.4
+OBJECT:20:_ZTSSt12ctype_bynameIcE@@GLIBCXX_3.4
+OBJECT:20:_ZTSSt12ctype_bynameIwE@@GLIBCXX_3.4
+OBJECT:20:_ZTSSt15underflow_error@@GLIBCXX_3.4
+OBJECT:21:_ZTSSt16invalid_argument@@GLIBCXX_3.4
+OBJECT:22:_ZTSNSt8ios_base7failureE@@GLIBCXX_3.4
+OBJECT:22:_ZTSSt10moneypunctIcLb0EE@@GLIBCXX_3.4
+OBJECT:22:_ZTSSt10moneypunctIcLb1EE@@GLIBCXX_3.4
+OBJECT:22:_ZTSSt10moneypunctIwLb0EE@@GLIBCXX_3.4
+OBJECT:22:_ZTSSt10moneypunctIwLb1EE@@GLIBCXX_3.4
+OBJECT:22:_ZTSSt14collate_bynameIcE@@GLIBCXX_3.4
+OBJECT:22:_ZTSSt14collate_bynameIwE@@GLIBCXX_3.4
+OBJECT:23:_ZTSSt15messages_bynameIcE@@GLIBCXX_3.4
+OBJECT:23:_ZTSSt15messages_bynameIwE@@GLIBCXX_3.4
+OBJECT:23:_ZTSSt15numpunct_bynameIcE@@GLIBCXX_3.4
+OBJECT:23:_ZTSSt15numpunct_bynameIwE@@GLIBCXX_3.4
+OBJECT:24:_ZTIN10__cxxabiv116__enum_type_infoE@@CXXABI_1.3
+OBJECT:24:_ZTIN10__cxxabiv117__array_type_infoE@@CXXABI_1.3
+OBJECT:24:_ZTIN10__cxxabiv117__class_type_infoE@@CXXABI_1.3
+OBJECT:24:_ZTIN10__cxxabiv117__pbase_type_infoE@@CXXABI_1.3
+OBJECT:24:_ZTIN10__cxxabiv119__pointer_type_infoE@@CXXABI_1.3
+OBJECT:24:_ZTIN10__cxxabiv120__function_type_infoE@@CXXABI_1.3
+OBJECT:24:_ZTIN10__cxxabiv120__si_class_type_infoE@@CXXABI_1.3
+OBJECT:24:_ZTIN10__cxxabiv121__vmi_class_type_infoE@@CXXABI_1.3
+OBJECT:24:_ZTIN10__cxxabiv123__fundamental_type_infoE@@CXXABI_1.3
+OBJECT:24:_ZTIN10__cxxabiv129__pointer_to_member_type_infoE@@CXXABI_1.3
+OBJECT:24:_ZTIN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:24:_ZTIN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:24:_ZTIN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:24:_ZTIN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:24:_ZTINSt8ios_base7failureE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt10bad_typeid@@GLIBCXX_3.4
+OBJECT:24:_ZTISt10istrstream@@GLIBCXX_3.4
+OBJECT:24:_ZTISt10ostrstream@@GLIBCXX_3.4
+OBJECT:24:_ZTISt11__timepunctIcE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt11__timepunctIwE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt11logic_error@@GLIBCXX_3.4
+OBJECT:24:_ZTISt11range_error@@GLIBCXX_3.4
+OBJECT:24:_ZTISt12ctype_bynameIcE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt12ctype_bynameIwE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt12domain_error@@GLIBCXX_3.4
+OBJECT:24:_ZTISt12length_error@@GLIBCXX_3.4
+OBJECT:24:_ZTISt12out_of_range@@GLIBCXX_3.4
+OBJECT:24:_ZTISt12strstreambuf@@GLIBCXX_3.4
+OBJECT:24:_ZTISt13bad_exception@@GLIBCXX_3.4
+OBJECT:24:_ZTISt13basic_filebufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt13basic_filebufIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt13runtime_error@@GLIBCXX_3.4
+OBJECT:24:_ZTISt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt14codecvt_bynameIcc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt14codecvt_bynameIwc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt14collate_bynameIcE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt14collate_bynameIwE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt14overflow_error@@GLIBCXX_3.4
+OBJECT:24:_ZTISt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt15messages_bynameIcE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt15messages_bynameIwE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt15numpunct_bynameIcE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt15numpunct_bynameIwE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt15underflow_error@@GLIBCXX_3.4
+OBJECT:24:_ZTISt16invalid_argument@@GLIBCXX_3.4
+OBJECT:24:_ZTISt17moneypunct_bynameIcLb0EE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt17moneypunct_bynameIcLb1EE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt17moneypunct_bynameIwLb0EE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt17moneypunct_bynameIwLb1EE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt5ctypeIwE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt7codecvtIcc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt7codecvtIwc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt7collateIcE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt7collateIwE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt8bad_cast@@GLIBCXX_3.4
+OBJECT:24:_ZTISt8numpunctIcE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt8numpunctIwE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt9bad_alloc@@GLIBCXX_3.4
+OBJECT:24:_ZTISt9basic_iosIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt9basic_iosIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:24:_ZTISt9strstream@@GLIBCXX_3.4
+OBJECT:272:_ZSt4cerr@@GLIBCXX_3.4
+OBJECT:272:_ZSt4clog@@GLIBCXX_3.4
+OBJECT:272:_ZSt4cout@@GLIBCXX_3.4
+OBJECT:272:_ZSt5wcerr@@GLIBCXX_3.4
+OBJECT:272:_ZSt5wclog@@GLIBCXX_3.4
+OBJECT:272:_ZSt5wcout@@GLIBCXX_3.4
+OBJECT:280:_ZSt3cin@@GLIBCXX_3.4
+OBJECT:280:_ZSt4wcin@@GLIBCXX_3.4
+OBJECT:28:_ZTSSt7codecvtIcc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:28:_ZTSSt7codecvtIwc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:29:_ZTSSt17moneypunct_bynameIcLb0EE@@GLIBCXX_3.4
+OBJECT:29:_ZTSSt17moneypunct_bynameIcLb1EE@@GLIBCXX_3.4
+OBJECT:29:_ZTSSt17moneypunct_bynameIwLb0EE@@GLIBCXX_3.4
+OBJECT:29:_ZTSSt17moneypunct_bynameIwLb1EE@@GLIBCXX_3.4
+OBJECT:29:_ZTSSt21__ctype_abstract_baseIcE@@GLIBCXX_3.4
+OBJECT:29:_ZTSSt21__ctype_abstract_baseIwE@@GLIBCXX_3.4
+OBJECT:2:_ZNSt10ctype_base5alnumE@@GLIBCXX_3.4
+OBJECT:2:_ZNSt10ctype_base5alphaE@@GLIBCXX_3.4
+OBJECT:2:_ZNSt10ctype_base5cntrlE@@GLIBCXX_3.4
+OBJECT:2:_ZNSt10ctype_base5digitE@@GLIBCXX_3.4
+OBJECT:2:_ZNSt10ctype_base5graphE@@GLIBCXX_3.4
+OBJECT:2:_ZNSt10ctype_base5lowerE@@GLIBCXX_3.4
+OBJECT:2:_ZNSt10ctype_base5printE@@GLIBCXX_3.4
+OBJECT:2:_ZNSt10ctype_base5punctE@@GLIBCXX_3.4
+OBJECT:2:_ZNSt10ctype_base5spaceE@@GLIBCXX_3.4
+OBJECT:2:_ZNSt10ctype_base5upperE@@GLIBCXX_3.4
+OBJECT:2:_ZNSt10ctype_base6xdigitE@@GLIBCXX_3.4
+OBJECT:2:_ZTSa@@CXXABI_1.3
+OBJECT:2:_ZTSb@@CXXABI_1.3
+OBJECT:2:_ZTSc@@CXXABI_1.3
+OBJECT:2:_ZTSd@@CXXABI_1.3
+OBJECT:2:_ZTSe@@CXXABI_1.3
+OBJECT:2:_ZTSf@@CXXABI_1.3
+OBJECT:2:_ZTSh@@CXXABI_1.3
+OBJECT:2:_ZTSi@@CXXABI_1.3
+OBJECT:2:_ZTSj@@CXXABI_1.3
+OBJECT:2:_ZTSl@@CXXABI_1.3
+OBJECT:2:_ZTSm@@CXXABI_1.3
+OBJECT:2:_ZTSs@@CXXABI_1.3
+OBJECT:2:_ZTSt@@CXXABI_1.3
+OBJECT:2:_ZTSv@@CXXABI_1.3
+OBJECT:2:_ZTSw@@CXXABI_1.3
+OBJECT:2:_ZTSx@@CXXABI_1.3
+OBJECT:2:_ZTSy@@CXXABI_1.3
+OBJECT:32:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4
+OBJECT:32:_ZNSs4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4
+OBJECT:32:_ZTIPKa@@CXXABI_1.3
+OBJECT:32:_ZTIPKb@@CXXABI_1.3
+OBJECT:32:_ZTIPKc@@CXXABI_1.3
+OBJECT:32:_ZTIPKd@@CXXABI_1.3
+OBJECT:32:_ZTIPKe@@CXXABI_1.3
+OBJECT:32:_ZTIPKf@@CXXABI_1.3
+OBJECT:32:_ZTIPKh@@CXXABI_1.3
+OBJECT:32:_ZTIPKi@@CXXABI_1.3
+OBJECT:32:_ZTIPKj@@CXXABI_1.3
+OBJECT:32:_ZTIPKl@@CXXABI_1.3
+OBJECT:32:_ZTIPKm@@CXXABI_1.3
+OBJECT:32:_ZTIPKs@@CXXABI_1.3
+OBJECT:32:_ZTIPKt@@CXXABI_1.3
+OBJECT:32:_ZTIPKv@@CXXABI_1.3
+OBJECT:32:_ZTIPKw@@CXXABI_1.3
+OBJECT:32:_ZTIPKx@@CXXABI_1.3
+OBJECT:32:_ZTIPKy@@CXXABI_1.3
+OBJECT:32:_ZTIPa@@CXXABI_1.3
+OBJECT:32:_ZTIPb@@CXXABI_1.3
+OBJECT:32:_ZTIPc@@CXXABI_1.3
+OBJECT:32:_ZTIPd@@CXXABI_1.3
+OBJECT:32:_ZTIPe@@CXXABI_1.3
+OBJECT:32:_ZTIPf@@CXXABI_1.3
+OBJECT:32:_ZTIPh@@CXXABI_1.3
+OBJECT:32:_ZTIPi@@CXXABI_1.3
+OBJECT:32:_ZTIPj@@CXXABI_1.3
+OBJECT:32:_ZTIPl@@CXXABI_1.3
+OBJECT:32:_ZTIPm@@CXXABI_1.3
+OBJECT:32:_ZTIPs@@CXXABI_1.3
+OBJECT:32:_ZTIPt@@CXXABI_1.3
+OBJECT:32:_ZTIPv@@CXXABI_1.3
+OBJECT:32:_ZTIPw@@CXXABI_1.3
+OBJECT:32:_ZTIPx@@CXXABI_1.3
+OBJECT:32:_ZTIPy@@CXXABI_1.3
+OBJECT:32:_ZTTSt10istrstream@@GLIBCXX_3.4
+OBJECT:32:_ZTTSt10ostrstream@@GLIBCXX_3.4
+OBJECT:32:_ZTTSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:32:_ZTTSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:32:_ZTTSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:32:_ZTTSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:32:_ZTTSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:32:_ZTTSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:32:_ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:32:_ZTTSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:32:_ZTVNSt6locale5facetE@@GLIBCXX_3.4
+OBJECT:32:_ZTVSt11__timepunctIcE@@GLIBCXX_3.4
+OBJECT:32:_ZTVSt11__timepunctIwE@@GLIBCXX_3.4
+OBJECT:32:_ZTVSt8ios_base@@GLIBCXX_3.4
+OBJECT:32:_ZTVSt9basic_iosIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:32:_ZTVSt9basic_iosIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:33:_ZTSN10__cxxabiv116__enum_type_infoE@@CXXABI_1.3
+OBJECT:34:_ZTSN10__cxxabiv117__array_type_infoE@@CXXABI_1.3
+OBJECT:34:_ZTSN10__cxxabiv117__class_type_infoE@@CXXABI_1.3
+OBJECT:34:_ZTSN10__cxxabiv117__pbase_type_infoE@@CXXABI_1.3
+OBJECT:34:_ZTSSt9basic_iosIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:34:_ZTSSt9basic_iosIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:36:_ZTSN10__cxxabiv119__pointer_type_infoE@@CXXABI_1.3
+OBJECT:36:_ZTSSt14codecvt_bynameIcc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:36:_ZTSSt14codecvt_bynameIwc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:37:_ZTSN10__cxxabiv120__function_type_infoE@@CXXABI_1.3
+OBJECT:37:_ZTSN10__cxxabiv120__si_class_type_infoE@@CXXABI_1.3
+OBJECT:38:_ZTSN10__cxxabiv121__vmi_class_type_infoE@@CXXABI_1.3
+OBJECT:39:_ZTSSt13basic_filebufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:39:_ZTSSt13basic_filebufIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:39:_ZTSSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:39:_ZTSSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:39:_ZTSSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:39:_ZTSSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:3:_ZTSPa@@CXXABI_1.3
+OBJECT:3:_ZTSPb@@CXXABI_1.3
+OBJECT:3:_ZTSPc@@CXXABI_1.3
+OBJECT:3:_ZTSPd@@CXXABI_1.3
+OBJECT:3:_ZTSPe@@CXXABI_1.3
+OBJECT:3:_ZTSPf@@CXXABI_1.3
+OBJECT:3:_ZTSPh@@CXXABI_1.3
+OBJECT:3:_ZTSPi@@CXXABI_1.3
+OBJECT:3:_ZTSPj@@CXXABI_1.3
+OBJECT:3:_ZTSPl@@CXXABI_1.3
+OBJECT:3:_ZTSPm@@CXXABI_1.3
+OBJECT:3:_ZTSPs@@CXXABI_1.3
+OBJECT:3:_ZTSPt@@CXXABI_1.3
+OBJECT:3:_ZTSPv@@CXXABI_1.3
+OBJECT:3:_ZTSPw@@CXXABI_1.3
+OBJECT:3:_ZTSPx@@CXXABI_1.3
+OBJECT:3:_ZTSPy@@CXXABI_1.3
+OBJECT:3:_ZTSSd@@GLIBCXX_3.4
+OBJECT:3:_ZTSSi@@GLIBCXX_3.4
+OBJECT:3:_ZTSSo@@GLIBCXX_3.4
+OBJECT:40:_ZTISi@@GLIBCXX_3.4
+OBJECT:40:_ZTISo@@GLIBCXX_3.4
+OBJECT:40:_ZTISt13basic_istreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:40:_ZTISt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:40:_ZTSN10__cxxabiv123__fundamental_type_infoE@@CXXABI_1.3
+OBJECT:40:_ZTSSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:40:_ZTSSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:40:_ZTSSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:40:_ZTSSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:40:_ZTSSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:40:_ZTVNSt8ios_base7failureE@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt10bad_typeid@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt11logic_error@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt11range_error@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt12domain_error@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt12length_error@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt12out_of_range@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt13bad_exception@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt13runtime_error@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt14overflow_error@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt15underflow_error@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt16invalid_argument@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt8bad_cast@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt9bad_alloc@@GLIBCXX_3.4
+OBJECT:40:_ZTVSt9exception@@GLIBCXX_3.4
+OBJECT:41:_ZTSSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:41:_ZTSSt15basic_streambufIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:45:_ZTSSt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:45:_ZTSSt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:46:_ZTSN10__cxxabiv129__pointer_to_member_type_infoE@@CXXABI_1.3
+OBJECT:46:_ZTSSt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:46:_ZTSSt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:48:_ZTVSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:48:_ZTVSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:48:_ZTVSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:48:_ZTVSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:49:_ZTSN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:49:_ZTSN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:49:_ZTSSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:49:_ZTSSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_terminalE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt10money_base18_S_default_patternE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIaE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIaE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIaE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIaE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIaE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIaE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIaE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIaE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIaE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIbE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIbE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIbE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIbE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIbE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIbE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIbE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIbE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIbE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIcE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIcE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIcE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIcE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIcE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIcE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIcE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIcE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIcE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIdE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIdE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIdE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIdE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIdE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIdE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIdE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIdE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIdE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIeE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIeE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIeE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIeE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIeE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIeE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIeE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIeE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIeE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIfE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIfE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIfE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIfE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIfE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIfE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIfE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIfE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIfE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIhE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIhE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIhE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIhE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIhE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIhE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIhE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIhE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIhE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIiE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIiE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIiE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIiE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIiE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIiE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIiE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIiE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIiE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIjE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIjE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIjE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIjE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIjE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIjE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIjE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIjE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIjE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIlE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIlE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIlE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIlE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIlE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIlE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIlE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIlE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIlE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsImE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsImE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsImE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsImE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsImE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsImE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsImE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsImE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsImE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIsE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIsE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIsE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIsE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIsE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIsE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIsE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIsE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIsE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsItE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsItE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsItE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsItE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsItE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsItE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsItE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsItE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsItE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIwE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIwE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIwE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIwE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIwE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIwE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIwE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIwE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIwE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIxE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIxE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIxE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIxE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIxE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIxE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIxE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIxE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIxE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIyE10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIyE11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIyE12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIyE12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIyE14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIyE14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIyE5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIyE6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt14numeric_limitsIyE8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt21__numeric_limits_base10has_denormE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt21__numeric_limits_base11round_styleE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt21__numeric_limits_base12max_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt21__numeric_limits_base12min_exponentE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt21__numeric_limits_base14max_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt21__numeric_limits_base14min_exponent10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt21__numeric_limits_base5radixE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt21__numeric_limits_base6digitsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt21__numeric_limits_base8digits10E@@GLIBCXX_3.4
+OBJECT:4:_ZNSt6locale3allE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt6locale4noneE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt6locale4timeE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt6locale5ctypeE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt6locale7collateE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt6locale7numericE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt6locale8messagesE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt6locale8monetaryE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base10floatfieldE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base10scientificE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base11adjustfieldE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base2inE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base3appE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base3ateE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base3begE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base3curE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base3decE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base3endE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base3hexE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base3octE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base3outE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base4leftE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base5fixedE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base5rightE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base5truncE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base6badbitE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base6binaryE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base6eofbitE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base6skipwsE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base7failbitE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base7goodbitE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base7showposE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base7unitbufE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base8internalE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base8showbaseE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base9basefieldE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base9boolalphaE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base9showpointE@@GLIBCXX_3.4
+OBJECT:4:_ZNSt8ios_base9uppercaseE@@GLIBCXX_3.4
+OBJECT:4:_ZTSPKa@@CXXABI_1.3
+OBJECT:4:_ZTSPKb@@CXXABI_1.3
+OBJECT:4:_ZTSPKc@@CXXABI_1.3
+OBJECT:4:_ZTSPKd@@CXXABI_1.3
+OBJECT:4:_ZTSPKe@@CXXABI_1.3
+OBJECT:4:_ZTSPKf@@CXXABI_1.3
+OBJECT:4:_ZTSPKh@@CXXABI_1.3
+OBJECT:4:_ZTSPKi@@CXXABI_1.3
+OBJECT:4:_ZTSPKj@@CXXABI_1.3
+OBJECT:4:_ZTSPKl@@CXXABI_1.3
+OBJECT:4:_ZTSPKm@@CXXABI_1.3
+OBJECT:4:_ZTSPKs@@CXXABI_1.3
+OBJECT:4:_ZTSPKt@@CXXABI_1.3
+OBJECT:4:_ZTSPKv@@CXXABI_1.3
+OBJECT:4:_ZTSPKw@@CXXABI_1.3
+OBJECT:4:_ZTSPKx@@CXXABI_1.3
+OBJECT:4:_ZTSPKy@@CXXABI_1.3
+OBJECT:50:_ZTSSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:50:_ZTSSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:50:_ZTSSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:50:_ZTSSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:54:_ZTSN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:54:_ZTSN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:56:_ZTISd@@GLIBCXX_3.4
+OBJECT:56:_ZTISt10moneypunctIcLb0EE@@GLIBCXX_3.4
+OBJECT:56:_ZTISt10moneypunctIcLb1EE@@GLIBCXX_3.4
+OBJECT:56:_ZTISt10moneypunctIwLb0EE@@GLIBCXX_3.4
+OBJECT:56:_ZTISt10moneypunctIwLb1EE@@GLIBCXX_3.4
+OBJECT:56:_ZTISt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:56:_ZTISt21__ctype_abstract_baseIcE@@GLIBCXX_3.4
+OBJECT:56:_ZTISt21__ctype_abstract_baseIwE@@GLIBCXX_3.4
+OBJECT:56:_ZTISt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:56:_ZTISt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:56:_ZTISt5ctypeIcE@@GLIBCXX_3.4
+OBJECT:56:_ZTISt8messagesIcE@@GLIBCXX_3.4
+OBJECT:56:_ZTISt8messagesIwE@@GLIBCXX_3.4
+OBJECT:56:_ZTISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:56:_ZTISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:56:_ZTTSd@@GLIBCXX_3.4
+OBJECT:56:_ZTTSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:56:_ZTVSt14collate_bynameIcE@@GLIBCXX_3.4
+OBJECT:56:_ZTVSt14collate_bynameIwE@@GLIBCXX_3.4
+OBJECT:56:_ZTVSt15messages_bynameIcE@@GLIBCXX_3.4
+OBJECT:56:_ZTVSt15messages_bynameIwE@@GLIBCXX_3.4
+OBJECT:56:_ZTVSt7collateIcE@@GLIBCXX_3.4
+OBJECT:56:_ZTVSt7collateIwE@@GLIBCXX_3.4
+OBJECT:56:_ZTVSt8messagesIcE@@GLIBCXX_3.4
+OBJECT:56:_ZTVSt8messagesIwE@@GLIBCXX_3.4
+OBJECT:58:_ZTSSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:58:_ZTSSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:58:_ZTSSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:58:_ZTSSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:59:_ZTSSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:59:_ZTSSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:59:_ZTSSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:59:_ZTSSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:60:_ZTSSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:60:_ZTSSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:60:_ZTSSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:60:_ZTSSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:64:_ZTVN10__cxxabiv116__enum_type_infoE@@CXXABI_1.3
+OBJECT:64:_ZTVN10__cxxabiv117__array_type_infoE@@CXXABI_1.3
+OBJECT:64:_ZTVN10__cxxabiv120__function_type_infoE@@CXXABI_1.3
+OBJECT:64:_ZTVN10__cxxabiv123__fundamental_type_infoE@@CXXABI_1.3
+OBJECT:64:_ZTVSt9type_info@@GLIBCXX_3.4
+OBJECT:67:_ZTSSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:67:_ZTSSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:67:_ZTSSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:67:_ZTSSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:72:_ZTVN10__cxxabiv117__pbase_type_infoE@@CXXABI_1.3
+OBJECT:72:_ZTVN10__cxxabiv119__pointer_type_infoE@@CXXABI_1.3
+OBJECT:72:_ZTVN10__cxxabiv129__pointer_to_member_type_infoE@@CXXABI_1.3
+OBJECT:72:_ZTVSt15numpunct_bynameIcE@@GLIBCXX_3.4
+OBJECT:72:_ZTVSt15numpunct_bynameIwE@@GLIBCXX_3.4
+OBJECT:72:_ZTVSt8numpunctIcE@@GLIBCXX_3.4
+OBJECT:72:_ZTVSt8numpunctIwE@@GLIBCXX_3.4
+OBJECT:80:_ZTTSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:80:_ZTTSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:80:_ZTTSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:80:_ZTTSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:80:_ZTTSt9strstream@@GLIBCXX_3.4
+OBJECT:80:_ZTVSi@@GLIBCXX_3.4
+OBJECT:80:_ZTVSo@@GLIBCXX_3.4
+OBJECT:80:_ZTVSt10istrstream@@GLIBCXX_3.4
+OBJECT:80:_ZTVSt10ostrstream@@GLIBCXX_3.4
+OBJECT:80:_ZTVSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:80:_ZTVSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:80:_ZTVSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:80:_ZTVSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:80:_ZTVSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
+OBJECT:80:_ZTVSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
+OBJECT:80:_ZTVSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:80:_ZTVSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:80:_ZTVSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:80:_ZTVSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:80:_ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
+OBJECT:80:_ZTVSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
+OBJECT:80:_ZTVSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:80:_ZTVSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
+OBJECT:88:_ZTVN10__cxxabiv117__class_type_infoE@@CXXABI_1.3
+OBJECT:88:_ZTVN10__cxxabiv120__si_class_type_infoE@@CXXABI_1.3
+OBJECT:88:_ZTVN10__cxxabiv121__vmi_class_type_infoE@@CXXABI_1.3
+OBJECT:88:_ZTVSt14codecvt_bynameIcc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:88:_ZTVSt14codecvt_bynameIwc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:88:_ZTVSt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:88:_ZTVSt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:88:_ZTVSt7codecvtIcc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:88:_ZTVSt7codecvtIwc11__mbstate_tE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt10moneypunctIcLb0EE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt10moneypunctIcLb1EE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt10moneypunctIwLb0EE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt10moneypunctIwLb1EE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt11__timepunctIcE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt11__timepunctIwE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt7collateIcE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt7collateIwE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt8messagesIcE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt8messagesIwE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt8numpunctIcE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt8numpunctIwE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZGVNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_max_sizeE@@GLIBCXX_3.4
+OBJECT:8:_ZNSbIwSt11char_traitsIwESaIwEE4nposE@@GLIBCXX_3.4
+OBJECT:8:_ZNSs4_Rep11_S_max_sizeE@@GLIBCXX_3.4
+OBJECT:8:_ZNSs4nposE@@GLIBCXX_3.4
+OBJECT:8:_ZNSt10__num_base11_S_atoms_inE@@GLIBCXX_3.4
+OBJECT:8:_ZNSt10__num_base12_S_atoms_outE@@GLIBCXX_3.4
+OBJECT:8:_ZNSt10money_base8_S_atomsE@@GLIBCXX_3.4
+OBJECT:8:_ZNSt10moneypunctIcLb0EE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZNSt10moneypunctIcLb1EE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZNSt10moneypunctIwLb0EE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZNSt10moneypunctIwLb1EE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZNSt11__timepunctIcE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZNSt11__timepunctIwE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZNSt5ctypeIcE10table_sizeE@@GLIBCXX_3.4
+OBJECT:8:_ZNSt5ctypeIcE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZNSt5ctypeIwE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZNSt7codecvtIcc11__mbstate_tE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZNSt7codecvtIwc11__mbstate_tE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZNSt7collateIcE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZNSt7collateIwE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZNSt8messagesIcE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZNSt8messagesIwE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZNSt8numpunctIcE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZNSt8numpunctIwE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
+OBJECT:8:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+OBJECT:96:_ZTVSt12ctype_bynameIcE@@GLIBCXX_3.4
+OBJECT:96:_ZTVSt5ctypeIcE@@GLIBCXX_3.4
+OBJECT:96:_ZTVSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
+OBJECT:96:_ZTVSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
diff --git a/libstdc++-v3/config/allocator/bitmap_allocator_base.h b/libstdc++-v3/config/allocator/bitmap_allocator_base.h
index bf84ae06d7f..2a674cff04c 100644
--- a/libstdc++-v3/config/allocator/bitmap_allocator_base.h
+++ b/libstdc++-v3/config/allocator/bitmap_allocator_base.h
@@ -1,6 +1,6 @@
// Base to std::allocator -*- C++ -*-
-// Copyright (C) 2004 Free Software Foundation, Inc.
+// Copyright (C) 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -32,6 +32,6 @@
// Define bitmap_allocator as the base class to std::allocator.
#include <ext/bitmap_allocator.h>
-#define ___glibcxx_base_allocator __gnu_cxx::bitmap_allocator
+#define __glibcxx_base_allocator __gnu_cxx::bitmap_allocator
#endif
diff --git a/libstdc++-v3/config/allocator/malloc_allocator_base.h b/libstdc++-v3/config/allocator/malloc_allocator_base.h
index 4a82ec362c5..bc5e6b79042 100644
--- a/libstdc++-v3/config/allocator/malloc_allocator_base.h
+++ b/libstdc++-v3/config/allocator/malloc_allocator_base.h
@@ -1,6 +1,6 @@
// Base to std::allocator -*- C++ -*-
-// Copyright (C) 2004 Free Software Foundation, Inc.
+// Copyright (C) 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -32,6 +32,6 @@
// Define new_allocator as the base class to std::allocator.
#include <ext/malloc_allocator.h>
-#define ___glibcxx_base_allocator __gnu_cxx::malloc_allocator
+#define __glibcxx_base_allocator __gnu_cxx::malloc_allocator
#endif
diff --git a/libstdc++-v3/config/allocator/mt_allocator_base.h b/libstdc++-v3/config/allocator/mt_allocator_base.h
index 52b4421a439..df39e2a2584 100644
--- a/libstdc++-v3/config/allocator/mt_allocator_base.h
+++ b/libstdc++-v3/config/allocator/mt_allocator_base.h
@@ -1,6 +1,6 @@
// Base to std::allocator -*- C++ -*-
-// Copyright (C) 2004 Free Software Foundation, Inc.
+// Copyright (C) 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -32,6 +32,6 @@
// Define mt_allocator as the base class to std::allocator.
#include <ext/mt_allocator.h>
-#define ___glibcxx_base_allocator __gnu_cxx::__mt_alloc
+#define __glibcxx_base_allocator __gnu_cxx::__mt_alloc
#endif
diff --git a/libstdc++-v3/config/allocator/new_allocator_base.h b/libstdc++-v3/config/allocator/new_allocator_base.h
index 442f89cc535..c9b3bb20673 100644
--- a/libstdc++-v3/config/allocator/new_allocator_base.h
+++ b/libstdc++-v3/config/allocator/new_allocator_base.h
@@ -1,6 +1,6 @@
// Base to std::allocator -*- C++ -*-
-// Copyright (C) 2004 Free Software Foundation, Inc.
+// Copyright (C) 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -32,6 +32,6 @@
// Define new_allocator as the base class to std::allocator.
#include <ext/new_allocator.h>
-#define ___glibcxx_base_allocator __gnu_cxx::new_allocator
+#define __glibcxx_base_allocator __gnu_cxx::new_allocator
#endif
diff --git a/libstdc++-v3/config/allocator/pool_allocator_base.h b/libstdc++-v3/config/allocator/pool_allocator_base.h
index 77c74b2d512..27432e86e32 100644
--- a/libstdc++-v3/config/allocator/pool_allocator_base.h
+++ b/libstdc++-v3/config/allocator/pool_allocator_base.h
@@ -1,6 +1,6 @@
// Base to std::allocator -*- C++ -*-
-// Copyright (C) 2004 Free Software Foundation, Inc.
+// Copyright (C) 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -32,6 +32,6 @@
// Define new_allocator as the base class to std::allocator.
#include <ext/pool_allocator.h>
-#define ___glibcxx_base_allocator __gnu_cxx::__pool_alloc
+#define __glibcxx_base_allocator __gnu_cxx::__pool_alloc
#endif
diff --git a/libstdc++-v3/config/cpu/alpha/atomicity.h b/libstdc++-v3/config/cpu/alpha/atomicity.h
index 4eb311b509a..24a4feb1b64 100644
--- a/libstdc++-v3/config/cpu/alpha/atomicity.h
+++ b/libstdc++-v3/config/cpu/alpha/atomicity.h
@@ -1,6 +1,7 @@
// Low-level functions for atomic operations: Alpha version -*- C++ -*-
-// Copyright (C) 1999, 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005
+// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -29,47 +30,16 @@
#include <bits/atomicity.h>
-/* @@@ With gas we can play nice .subsection games to get the
- non-predicted branch pointing forward. But Digital assemblers
- don't understand those directives. This isn't a terribly
- important issue, so just ignore it. */
-
namespace __gnu_cxx
{
_Atomic_word
__attribute__ ((__unused__))
__exchange_and_add(volatile _Atomic_word* __mem, int __val)
- {
- register int __result, __tmp;
-
- __asm__ __volatile__ (
- "\n$Lxadd_%=:\n\t"
- "ldl_l %0,%3\n\t"
- "addl %0,%4,%1\n\t"
- "stl_c %1,%2\n\t"
- "beq %1,$Lxadd_%=\n\t"
- "mb"
- : "=&r"(__result), "=&r"(__tmp), "=m"(*__mem)
- : "m" (*__mem), "r"(__val));
-
- return __result;
- }
+ { return __sync_fetch_and_add(__mem, __val); }
void
__attribute__ ((__unused__))
__atomic_add(volatile _Atomic_word* __mem, int __val)
- {
- register _Atomic_word __result;
-
- __asm__ __volatile__ (
- "\n$Ladd_%=:\n\t"
- "ldl_l %0,%2\n\t"
- "addl %0,%3,%0\n\t"
- "stl_c %0,%1\n\t"
- "beq %0,$Ladd_%=\n\t"
- "mb"
- : "=&r"(__result), "=m"(*__mem)
- : "m" (*__mem), "r"(__val));
- }
+ { __sync_fetch_and_add(__mem, __val); }
} // namespace __gnu_cxx
diff --git a/libstdc++-v3/config/cpu/ia64/atomicity.h b/libstdc++-v3/config/cpu/ia64/atomicity.h
index 0c3ab3343e9..c651b846e99 100644
--- a/libstdc++-v3/config/cpu/ia64/atomicity.h
+++ b/libstdc++-v3/config/cpu/ia64/atomicity.h
@@ -1,6 +1,7 @@
// Low-level functions for atomic operations: IA64 version -*- C++ -*-
-// Copyright (C) 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2000, 2001, 2003, 2004, 2005
+// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -28,7 +29,6 @@
// the GNU General Public License.
#include <bits/atomicity.h>
-#include <ia64intrin.h>
namespace __gnu_cxx
{
diff --git a/libstdc++-v3/config/cpu/powerpc/atomicity.h b/libstdc++-v3/config/cpu/powerpc/atomicity.h
index 73149441dd8..d3e1e7464e4 100644
--- a/libstdc++-v3/config/cpu/powerpc/atomicity.h
+++ b/libstdc++-v3/config/cpu/powerpc/atomicity.h
@@ -1,6 +1,7 @@
// Low-level functions for atomic operations: PowerPC version -*- C++ -*-
-// Copyright (C) 1999, 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005
+// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -29,48 +30,15 @@
#include <bits/atomicity.h>
-#ifdef __PPC405__
-#define _STWCX "sync \n\tstwcx. "
-#else
-#define _STWCX "stwcx. "
-#endif
-
namespace __gnu_cxx
{
_Atomic_word
__attribute__ ((__unused__))
__exchange_and_add(volatile _Atomic_word* __mem, int __val)
- {
- _Atomic_word __tmp, __res;
- __asm__ __volatile__ (
- "/* Inline exchange & add */\n"
- "0:\t"
- "lwarx %0,0,%3 \n\t"
- "add%I4 %1,%0,%4 \n\t"
- _STWCX " %1,0,%3 \n\t"
- "bne- 0b \n\t"
- "/* End exchange & add */"
- : "=&b"(__res), "=&r"(__tmp), "=m" (*__mem)
- : "r" (__mem), "Ir"(__val), "m" (*__mem)
- : "cr0");
- return __res;
- }
+ { return __sync_fetch_and_add(__mem, __val); }
void
__attribute__ ((__unused__))
__atomic_add(volatile _Atomic_word* __mem, int __val)
- {
- _Atomic_word __tmp;
- __asm__ __volatile__ (
- "/* Inline atomic add */\n"
- "0:\t"
- "lwarx %0,0,%2 \n\t"
- "add%I3 %0,%0,%3 \n\t"
- _STWCX " %0,0,%2 \n\t"
- "bne- 0b \n\t"
- "/* End atomic add */"
- : "=&b"(__tmp), "=m" (*__mem)
- : "r" (__mem), "Ir"(__val), "m" (*__mem)
- : "cr0");
- }
+ { __sync_fetch_and_add(__mem, __val); }
} // namespace __gnu_cxx
diff --git a/libstdc++-v3/config/cpu/s390/atomicity.h b/libstdc++-v3/config/cpu/s390/atomicity.h
index cf903b321f4..5a235940c8c 100644
--- a/libstdc++-v3/config/cpu/s390/atomicity.h
+++ b/libstdc++-v3/config/cpu/s390/atomicity.h
@@ -34,22 +34,10 @@ namespace __gnu_cxx
_Atomic_word
__attribute__ ((__unused__))
__exchange_and_add(volatile _Atomic_word* __mem, int __val)
- {
- register _Atomic_word __old_val, __new_val;
-
- __asm__ __volatile__ (" l %0,0(%3)\n"
- "0: lr %1,%0\n"
- " ar %1,%4\n"
- " cs %0,%1,0(%3)\n"
- " jl 0b"
- : "=&d" (__old_val), "=&d" (__new_val), "=m" (*__mem)
- : "a" (__mem), "d" (__val), "m" (*__mem)
- : "cc", "memory");
- return __old_val;
- }
+ { return __sync_fetch_and_add(__mem, __val); }
void
__attribute__ ((__unused__))
__atomic_add(volatile _Atomic_word* __mem, int __val)
- { __exchange_and_add(__mem, __val); }
+ { __sync_fetch_and_add(__mem, __val); }
} // namespace __gnu_cxx
diff --git a/libstdc++-v3/config/linker-map.gnu b/libstdc++-v3/config/linker-map.gnu
index a6f631a8d97..a9d20abe21e 100644
--- a/libstdc++-v3/config/linker-map.gnu
+++ b/libstdc++-v3/config/linker-map.gnu
@@ -1,6 +1,6 @@
## Linker script for GNU ld 2.13.91+ only.
##
-## Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+## Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
##
## This file is part of the libstdc++ version 3 distribution.
##
@@ -40,7 +40,7 @@ GLIBCXX_3.4 {
std::logic_error*;
std::locale::[A-Za-e]*;
std::locale::facet::[A-Za-z]*;
- std::locale::facet::_S_get_c_locale*;
+ std::locale::facet::_S_get_c_locale*;
std::locale::facet::_S_clone_c_locale*;
std::locale::facet::_S_create_c_locale*;
std::locale::facet::_S_destroy_c_locale*;
@@ -304,6 +304,16 @@ GLIBCXX_3.4.4 {
} GLIBCXX_3.4.3;
+GLIBCXX_3.4.5 {
+
+ _ZSt17__copy_streambufsI[cw]St11char_traitsI[cw]EEiPSt15basic_streambuf*;
+ _ZNSt8ios_base17_M_call_callbacksENS_5eventE;
+ _ZNSt8ios_base20_M_dispose_callbacksEv;
+ _ZNSt6locale5facet13_S_get_c_nameEv;
+ _ZN11__gnu_debug13__fancy_abortEPKciS1_S1_;
+
+} GLIBCXX_3.4.4;
+
# Symbols in the support library (libsupc++) have their own tag.
CXXABI_1.3 {
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index 053980648f8..aa584fd1657 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
@@ -1376,7 +1376,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
### am handles this now? ORIGINAL_LD_FOR_MULTILIBS=$LD
# For libtool versioning info, format is CURRENT:REVISION:AGE
-libtool_VERSION=6:4:0
+libtool_VERSION=6:5:0
# Find the rest of the source tree framework.
@@ -6715,14 +6715,10 @@ _ACEOF
fi
- # Check for the existence of <complex.h> complex functions.
+ # Check for the existence of <complex.h> complex math functions.
# This is necessary even though libstdc++ uses the builtin versions
# of these functions, because if the builtin cannot be used, a reference
# to the library function is emitted.
- # In addition, need to explicitly specify "C" compilation for this
- # one, or else the backwards C++ <complex.h> include will be selected.
- save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -x c"
for ac_header in complex.h
do
@@ -6895,6 +6891,7 @@ typedef __complex__ float float_type; float_type tmpf;
ccosf(tmpf);
ccoshf(tmpf);
cexpf(tmpf);
+ clogf(tmpf);
csinf(tmpf);
csinhf(tmpf);
csqrtf(tmpf);
@@ -6907,6 +6904,7 @@ typedef __complex__ float float_type; float_type tmpf;
ccos(tmpd);
ccosh(tmpd);
cexp(tmpd);
+ clog(tmpd);
csin(tmpd);
csinh(tmpd);
csqrt(tmpd);
@@ -6919,6 +6917,7 @@ typedef __complex__ float float_type; float_type tmpf;
ccosl(tmpld);
ccoshl(tmpld);
cexpl(tmpld);
+ clogl(tmpld);
csinl(tmpld);
csinhl(tmpld);
csqrtl(tmpld);
@@ -6961,7 +6960,6 @@ ac_c99_complex=no
fi
rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
- CXXFLAGS="$save_CXXFLAGS"
echo "$as_me:$LINENO: result: $ac_c99_complex" >&5
echo "${ECHO_T}$ac_c99_complex" >&6
if test x"$ac_c99_complex" = x"yes"; then
@@ -7059,7 +7057,9 @@ main ()
char* tmp;
strtof("gnu", &tmp);
strtold("gnu", &tmp);
- llabs(10);
+ strtoll("gnu", &tmp, 10);
+ strtoull("gnu", &tmp, 10);
+ llabs(10);
lldiv(10,1);
atoll("10");
_Exit(0);
@@ -30156,7 +30156,7 @@ rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
ac_cv_func_mmap_fixed_mapped=no
fi
fi
-if test "x${ac_cv_func_mmap_fixed_mapped+set}" != xset; then
+if test "x${ac_cv_func_mmap_fixed_mapped}" != xno; then
for ac_header in stdlib.h unistd.h
diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac
index f5a5c4c3d80..b0e72fc644e 100644
--- a/libstdc++-v3/configure.ac
+++ b/libstdc++-v3/configure.ac
@@ -12,7 +12,7 @@ AC_CONFIG_HEADER(config.h)
### am handles this now? ORIGINAL_LD_FOR_MULTILIBS=$LD
# For libtool versioning info, format is CURRENT:REVISION:AGE
-libtool_VERSION=6:4:0
+libtool_VERSION=6:5:0
AC_SUBST(libtool_VERSION)
# Find the rest of the source tree framework.
diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host
index b3582a41d79..d12e964bddb 100644
--- a/libstdc++-v3/configure.host
+++ b/libstdc++-v3/configure.host
@@ -270,6 +270,9 @@ case "${host}" in
abi_baseline_pair="mips-linux-gnu"
cpu_include_dir="cpu/mips"
;;
+ powerpc64-*-linux*)
+ abi_baseline_pair="powerpc64-linux-gnu"
+ ;;
s390-*-linux*)
abi_baseline_pair="s390-linux-gnu"
;;
diff --git a/libstdc++-v3/docs/html/abi.html b/libstdc++-v3/docs/html/abi.html
index e48bb4b8bf7..1971b3aa63d 100644
--- a/libstdc++-v3/docs/html/abi.html
+++ b/libstdc++-v3/docs/html/abi.html
@@ -734,11 +734,18 @@ Use the 'make check-abi' rule in the libstdc++-v3 Makefile.
<p>
This is a proactive check the library ABI. Currently, exported symbol
names that are either weak or defined are checked against a last known
-good baseline. Currently, this baseline is keyed off of 3.2.0
+good baseline. Currently, this baseline is keyed off of 3.4.0
binaries, as this was the last time the .so number was incremented. In
addition, all exported names are demangled, and the exported objects
are checked to make sure they are the same size as the same object in
the baseline.
+
+Notice that each baseline is relative to a <strong>default</strong>
+configured library and compiler: in particular, if options such as
+--enable-clocale, or --with-cpu, in case of multilibs, are used at
+configure time, the check may fail, either because of substantive
+differences or because of limitations of the current checking
+machinery.
</p>
<p>
diff --git a/libstdc++-v3/docs/html/debug.html b/libstdc++-v3/docs/html/debug.html
index af1177bd2d2..0242d4363e3 100644
--- a/libstdc++-v3/docs/html/debug.html
+++ b/libstdc++-v3/docs/html/debug.html
@@ -286,7 +286,10 @@
under pedantic debug mode libstdc++ would signal an error. To enable
the pedantic debug mode, compile your program with
both <code>-D_GLIBCXX_DEBUG</code>
- and <code>-D_GLIBCXX_DEBUG_PEDANTIC</code> .</p>
+ and <code>-D_GLIBCXX_DEBUG_PEDANTIC</code> .
+ (N.B. In GCC 3.4.x and 4.0.0, due to a bug,
+ <code>-D_GLIBXX_DEBUG_PEDANTIC</code> was also needed. The problem has
+ been fixed in GCC 4.0.1 and later versions.) </p>
<p>The following library components provide extra debugging
capabilities in debug mode:</p>
diff --git a/libstdc++-v3/docs/html/test.html b/libstdc++-v3/docs/html/test.html
index d15dc427180..41e0529e6c6 100644
--- a/libstdc++-v3/docs/html/test.html
+++ b/libstdc++-v3/docs/html/test.html
@@ -427,8 +427,8 @@ Example 4: Testing for compilation errors on line 41
Example 5: Testing with special command line settings, or without the
use of pre-compiled headers, in particular the stdc++.h.gch file. Any
-options here will override the DEFAULT_CXXFLAGS set up in the
-normal.exp file.
+options here will override the DEFAULT_CXXFLAGS and PCH_CXXFLAGS set
+up in the normal.exp file.
// { dg-options "-O0" { target *-*-* } }
</pre>
diff --git a/libstdc++-v3/include/Makefile.am b/libstdc++-v3/include/Makefile.am
index abd9abf4e70..797afb619c8 100644
--- a/libstdc++-v3/include/Makefile.am
+++ b/libstdc++-v3/include/Makefile.am
@@ -321,6 +321,7 @@ debug_headers = \
${debug_srcdir}/debug.h \
${debug_srcdir}/deque \
${debug_srcdir}/formatter.h \
+ ${debug_srcdir}/functions.h \
${debug_srcdir}/hash_map \
${debug_srcdir}/hash_map.h \
${debug_srcdir}/hash_multimap.h \
@@ -329,6 +330,7 @@ debug_headers = \
${debug_srcdir}/hash_set.h \
${debug_srcdir}/list \
${debug_srcdir}/map \
+ ${debug_srcdir}/macros.h \
${debug_srcdir}/map.h \
${debug_srcdir}/multimap.h \
${debug_srcdir}/multiset.h \
diff --git a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in
index 60bf72bf3c4..ef6f242f0d5 100644
--- a/libstdc++-v3/include/Makefile.in
+++ b/libstdc++-v3/include/Makefile.in
@@ -40,7 +40,8 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(top_srcdir)/fragment.am
subdir = include
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/../config/no-executables.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/../config/lead-dot.m4 \
+ $(top_srcdir)/../config/no-executables.m4 \
$(top_srcdir)/../libtool.m4 $(top_srcdir)/crossconfig.m4 \
$(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/configure.ac
@@ -538,6 +539,7 @@ debug_headers = \
${debug_srcdir}/debug.h \
${debug_srcdir}/deque \
${debug_srcdir}/formatter.h \
+ ${debug_srcdir}/functions.h \
${debug_srcdir}/hash_map \
${debug_srcdir}/hash_map.h \
${debug_srcdir}/hash_multimap.h \
@@ -546,6 +548,7 @@ debug_headers = \
${debug_srcdir}/hash_set.h \
${debug_srcdir}/list \
${debug_srcdir}/map \
+ ${debug_srcdir}/macros.h \
${debug_srcdir}/map.h \
${debug_srcdir}/multimap.h \
${debug_srcdir}/multiset.h \
diff --git a/libstdc++-v3/include/bits/allocator.h b/libstdc++-v3/include/bits/allocator.h
index c28442fc6fa..598048d0df3 100644
--- a/libstdc++-v3/include/bits/allocator.h
+++ b/libstdc++-v3/include/bits/allocator.h
@@ -1,6 +1,6 @@
// Allocators -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -79,7 +79,7 @@ namespace std
* http://gcc.gnu.org/onlinedocs/libstdc++/20_util/allocator.html
*/
template<typename _Tp>
- class allocator: public ___glibcxx_base_allocator<_Tp>
+ class allocator: public __glibcxx_base_allocator<_Tp>
{
public:
typedef size_t size_type;
@@ -97,7 +97,7 @@ namespace std
allocator() throw() { }
allocator(const allocator& __a) throw()
- : ___glibcxx_base_allocator<_Tp>(__a) { }
+ : __glibcxx_base_allocator<_Tp>(__a) { }
template<typename _Tp1>
allocator(const allocator<_Tp1>&) throw() { }
@@ -126,7 +126,7 @@ namespace std
#endif
// Undefine.
-#undef ___glibcxx_base_allocator
+#undef __glibcxx_base_allocator
} // namespace std
#endif
diff --git a/libstdc++-v3/include/bits/basic_string.h b/libstdc++-v3/include/bits/basic_string.h
index 35dd364d969..07b66d6d615 100644
--- a/libstdc++-v3/include/bits/basic_string.h
+++ b/libstdc++-v3/include/bits/basic_string.h
@@ -109,17 +109,19 @@ namespace std
template<typename _CharT, typename _Traits, typename _Alloc>
class basic_string
{
+ typedef typename _Alloc::template rebind<_CharT>::other _CharT_alloc_type;
+
// Types:
public:
typedef _Traits traits_type;
typedef typename _Traits::char_type value_type;
typedef _Alloc allocator_type;
- typedef typename _Alloc::size_type size_type;
- typedef typename _Alloc::difference_type difference_type;
- typedef typename _Alloc::reference reference;
- typedef typename _Alloc::const_reference const_reference;
- typedef typename _Alloc::pointer pointer;
- typedef typename _Alloc::const_pointer const_pointer;
+ typedef typename _CharT_alloc_type::size_type size_type;
+ typedef typename _CharT_alloc_type::difference_type difference_type;
+ typedef typename _CharT_alloc_type::reference reference;
+ typedef typename _CharT_alloc_type::const_reference const_reference;
+ typedef typename _CharT_alloc_type::pointer pointer;
+ typedef typename _CharT_alloc_type::const_pointer const_pointer;
typedef __gnu_cxx::__normal_iterator<pointer, basic_string> iterator;
typedef __gnu_cxx::__normal_iterator<const_pointer, basic_string>
const_iterator;
@@ -151,7 +153,7 @@ namespace std
struct _Rep : _Rep_base
{
// Types:
- typedef typename _Alloc::template rebind<size_type>::other _Raw_alloc;
+ typedef typename _Alloc::template rebind<char>::other _Raw_bytes_alloc;
// (Public) Data members:
@@ -198,7 +200,8 @@ namespace std
{
this->_M_set_sharable(); // One reference.
this->_M_length = __n;
- this->_M_refdata()[__n] = _S_terminal; // grrr. (per 21.3.4)
+ traits_type::assign(this->_M_refdata()[__n], _S_terminal);
+ // grrr. (per 21.3.4)
// You cannot leave those LWG people alone for a second.
}
diff --git a/libstdc++-v3/include/bits/basic_string.tcc b/libstdc++-v3/include/bits/basic_string.tcc
index 672457f9be9..41db0dff438 100644
--- a/libstdc++-v3/include/bits/basic_string.tcc
+++ b/libstdc++-v3/include/bits/basic_string.tcc
@@ -425,10 +425,9 @@ namespace std
basic_string<_CharT, _Traits, _Alloc>::_Rep::
_M_destroy(const _Alloc& __a) throw ()
{
- const size_type __size = ((this->_M_capacity + 1) * sizeof(_CharT)
- + sizeof(_Rep_base) + sizeof(size_type) - 1);
- _Raw_alloc(__a).deallocate(reinterpret_cast<size_type*>(this), __size
- / sizeof(size_type));
+ const size_type __size = sizeof(_Rep_base) +
+ (this->_M_capacity + 1) * sizeof(_CharT);
+ _Raw_bytes_alloc(__a).deallocate(reinterpret_cast<char*>(this), __size);
}
template<typename _CharT, typename _Traits, typename _Alloc>
@@ -569,12 +568,9 @@ namespace std
__capacity = 2 * __old_capacity;
// NB: Need an array of char_type[__capacity], plus a terminating
- // null char_type() element, plus enough for the _Rep data structure,
- // plus sizeof(size_type) - 1 to upper round to a size multiple
- // of sizeof(size_type).
+ // null char_type() element, plus enough for the _Rep data structure.
// Whew. Seemingly so needy, yet so elemental.
- size_type __size = ((__capacity + 1) * sizeof(_CharT) + sizeof(_Rep)
- + sizeof(size_type) - 1);
+ size_type __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep);
const size_type __adj_size = __size + __malloc_header_size;
if (__adj_size > __pagesize && __capacity > __old_capacity)
@@ -584,14 +580,12 @@ namespace std
// Never allocate a string bigger than _S_max_size.
if (__capacity > _S_max_size)
__capacity = _S_max_size;
- __size = ((__capacity + 1) * sizeof(_CharT) + sizeof(_Rep)
- + sizeof(size_type) - 1);
+ __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep);
}
// NB: Might throw, but no worries about a leak, mate: _Rep()
// does not throw.
- void* __place = _Raw_alloc(__alloc).allocate(__size
- / sizeof(size_type));
+ void* __place = _Raw_bytes_alloc(__alloc).allocate(__size);
_Rep *__p = new (__place) _Rep;
__p->_M_capacity = __capacity;
return __p;
diff --git a/libstdc++-v3/include/bits/c++config b/libstdc++-v3/include/bits/c++config
index 526ab8c7355..16c3194ba67 100644
--- a/libstdc++-v3/include/bits/c++config
+++ b/libstdc++-v3/include/bits/c++config
@@ -1,6 +1,6 @@
// Predefined symbols and macros -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -34,27 +34,6 @@
// Pick up any OS-specific definitions.
#include <bits/os_defines.h>
-// Allow use of "export template." This is currently not a feature
-// that g++ supports.
-// #define _GLIBCXX_EXPORT_TEMPLATE 1
-
-// Allow use of the GNU syntax extension, "extern template." This
-// extension is fully documented in the g++ manual, but in a nutshell,
-// it inhibits all implicit instantiations and is used throughout the
-// library to avoid multiple weak definitions for required types that
-// are already explicitly instantiated in the library binary. This
-// substantially reduces the binary size of resulting executables.
-#ifndef _GLIBCXX_EXTERN_TEMPLATE
-# define _GLIBCXX_EXTERN_TEMPLATE 1
-#endif
-
-// Certain function definitions that are meant to be overridable from
-// user code are decorated with this macro. For some targets, this
-// macro causes these definitions to be weak.
-#ifndef _GLIBCXX_WEAK_DEFINITION
-# define _GLIBCXX_WEAK_DEFINITION
-#endif
-
// Debug mode support. Debug mode basic_string is not allowed to be
// associated with std, because of locale and exception link
// dependence.
@@ -66,7 +45,10 @@ namespace __gnu_debug
}
#ifdef _GLIBCXX_DEBUG
-# define _GLIBCXX_STD __gnu_norm
+# if __GXX_WEAK__
+# define _GLIBCXX_STD __gnu_norm
+# define _GLIBCXX_EXTERN_TEMPLATE 0
+
namespace __gnu_norm
{
using namespace std;
@@ -75,10 +57,33 @@ namespace std
{
using namespace __gnu_debug_def __attribute__ ((strong));
}
+# else
+# warning debug mode disabled due to lack of weak symbol support
+# endif
#else
# define _GLIBCXX_STD std
#endif
+// Allow use of "export template." This is currently not a feature
+// that g++ supports.
+// #define _GLIBCXX_EXPORT_TEMPLATE 1
+
+// Allow use of the GNU syntax extension, "extern template." This
+// extension is fully documented in the g++ manual, but in a nutshell,
+// it inhibits all implicit instantiations and is used throughout the
+// library to avoid multiple weak definitions for required types that
+// are already explicitly instantiated in the library binary. This
+// substantially reduces the binary size of resulting executables.
+#ifndef _GLIBCXX_EXTERN_TEMPLATE
+# define _GLIBCXX_EXTERN_TEMPLATE 1
+#endif
+
+// Certain function definitions that are meant to be overridable from
+// user code are decorated with this macro. For some targets, this
+// macro causes these definitions to be weak.
+#ifndef _GLIBCXX_WEAK_DEFINITION
+# define _GLIBCXX_WEAK_DEFINITION
+#endif
// The remainder of the prewritten config is automatic; all the
// user hooks are listed above.
diff --git a/libstdc++-v3/include/bits/deque.tcc b/libstdc++-v3/include/bits/deque.tcc
index c5440b22419..e69c79a4f34 100644
--- a/libstdc++-v3/include/bits/deque.tcc
+++ b/libstdc++-v3/include/bits/deque.tcc
@@ -147,7 +147,7 @@ namespace _GLIBCXX_STD
std::copy_backward(this->_M_impl._M_start, __first, __last);
iterator __new_start = this->_M_impl._M_start + __n;
std::_Destroy(this->_M_impl._M_start, __new_start,
- this->get_allocator());
+ _M_get_Tp_allocator());
_M_destroy_nodes(this->_M_impl._M_start._M_node,
__new_start._M_node);
this->_M_impl._M_start = __new_start;
@@ -157,7 +157,7 @@ namespace _GLIBCXX_STD
std::copy(__last, this->_M_impl._M_finish, __first);
iterator __new_finish = this->_M_impl._M_finish - __n;
std::_Destroy(__new_finish, this->_M_impl._M_finish,
- this->get_allocator());
+ _M_get_Tp_allocator());
_M_destroy_nodes(__new_finish._M_node + 1,
this->_M_impl._M_finish._M_node + 1);
this->_M_impl._M_finish = __new_finish;
@@ -176,7 +176,7 @@ namespace _GLIBCXX_STD
++__node)
{
std::_Destroy(*__node, *__node + _S_buffer_size(),
- this->get_allocator());
+ _M_get_Tp_allocator());
_M_deallocate_node(*__node);
}
@@ -184,16 +184,16 @@ namespace _GLIBCXX_STD
{
std::_Destroy(this->_M_impl._M_start._M_cur,
this->_M_impl._M_start._M_last,
- this->get_allocator());
+ _M_get_Tp_allocator());
std::_Destroy(this->_M_impl._M_finish._M_first,
this->_M_impl._M_finish._M_cur,
- this->get_allocator());
+ _M_get_Tp_allocator());
_M_deallocate_node(this->_M_impl._M_finish._M_first);
}
else
std::_Destroy(this->_M_impl._M_start._M_cur,
this->_M_impl._M_finish._M_cur,
- this->get_allocator());
+ _M_get_Tp_allocator());
this->_M_impl._M_finish = this->_M_impl._M_start;
}
@@ -201,9 +201,9 @@ namespace _GLIBCXX_STD
template <typename _Tp, class _Alloc>
template <typename _InputIterator>
void
- deque<_Tp, _Alloc>
- ::_M_assign_aux(_InputIterator __first, _InputIterator __last,
- std::input_iterator_tag)
+ deque<_Tp, _Alloc>::
+ _M_assign_aux(_InputIterator __first, _InputIterator __last,
+ std::input_iterator_tag)
{
iterator __cur = begin();
for (; __first != __last && __cur != end(); ++__cur, ++__first)
@@ -226,7 +226,7 @@ namespace _GLIBCXX_STD
{
std::__uninitialized_fill_a(__new_start, this->_M_impl._M_start,
__x,
- this->get_allocator());
+ _M_get_Tp_allocator());
this->_M_impl._M_start = __new_start;
}
catch(...)
@@ -243,7 +243,7 @@ namespace _GLIBCXX_STD
{
std::__uninitialized_fill_a(this->_M_impl._M_finish,
__new_finish, __x,
- this->get_allocator());
+ _M_get_Tp_allocator());
this->_M_impl._M_finish = __new_finish;
}
catch(...)
@@ -269,15 +269,15 @@ namespace _GLIBCXX_STD
__cur < this->_M_impl._M_finish._M_node;
++__cur)
std::__uninitialized_fill_a(*__cur, *__cur + _S_buffer_size(),
- __value, this->get_allocator());
+ __value, _M_get_Tp_allocator());
std::__uninitialized_fill_a(this->_M_impl._M_finish._M_first,
this->_M_impl._M_finish._M_cur,
- __value, this->get_allocator());
+ __value, _M_get_Tp_allocator());
}
catch(...)
{
std::_Destroy(this->_M_impl._M_start, iterator(*__cur, __cur),
- this->get_allocator());
+ _M_get_Tp_allocator());
__throw_exception_again;
}
}
@@ -322,18 +322,18 @@ namespace _GLIBCXX_STD
_ForwardIterator __mid = __first;
std::advance(__mid, _S_buffer_size());
std::__uninitialized_copy_a(__first, __mid, *__cur_node,
- this->get_allocator());
+ _M_get_Tp_allocator());
__first = __mid;
}
std::__uninitialized_copy_a(__first, __last,
this->_M_impl._M_finish._M_first,
- this->get_allocator());
+ _M_get_Tp_allocator());
}
catch(...)
{
std::_Destroy(this->_M_impl._M_start,
iterator(*__cur_node, __cur_node),
- this->get_allocator());
+ _M_get_Tp_allocator());
__throw_exception_again;
}
}
@@ -435,7 +435,7 @@ namespace _GLIBCXX_STD
try
{
std::__uninitialized_copy_a(__first, __last, __new_start,
- this->get_allocator());
+ _M_get_Tp_allocator());
this->_M_impl._M_start = __new_start;
}
catch(...)
@@ -452,7 +452,7 @@ namespace _GLIBCXX_STD
{
std::__uninitialized_copy_a(__first, __last,
this->_M_impl._M_finish,
- this->get_allocator());
+ _M_get_Tp_allocator());
this->_M_impl._M_finish = __new_finish;
}
catch(...)
@@ -520,7 +520,7 @@ namespace _GLIBCXX_STD
+ difference_type(__n));
std::__uninitialized_copy_a(this->_M_impl._M_start,
__start_n, __new_start,
- this->get_allocator());
+ _M_get_Tp_allocator());
this->_M_impl._M_start = __new_start;
std::copy(__start_n, __pos, __old_start);
fill(__pos - difference_type(__n), __pos, __x_copy);
@@ -531,7 +531,7 @@ namespace _GLIBCXX_STD
__pos, __new_start,
this->_M_impl._M_start,
__x_copy,
- this->get_allocator());
+ _M_get_Tp_allocator());
this->_M_impl._M_start = __new_start;
std::fill(__old_start, __pos, __x_copy);
}
@@ -559,7 +559,7 @@ namespace _GLIBCXX_STD
std::__uninitialized_copy_a(__finish_n,
this->_M_impl._M_finish,
this->_M_impl._M_finish,
- this->get_allocator());
+ _M_get_Tp_allocator());
this->_M_impl._M_finish = __new_finish;
std::copy_backward(__pos, __finish_n, __old_finish);
std::fill(__pos, __pos + difference_type(__n), __x_copy);
@@ -570,7 +570,7 @@ namespace _GLIBCXX_STD
__pos + difference_type(__n),
__x_copy, __pos,
this->_M_impl._M_finish,
- this->get_allocator());
+ _M_get_Tp_allocator());
this->_M_impl._M_finish = __new_finish;
std::fill(__pos, __old_finish, __x_copy);
}
@@ -607,7 +607,7 @@ namespace _GLIBCXX_STD
+ difference_type(__n));
std::__uninitialized_copy_a(this->_M_impl._M_start,
__start_n, __new_start,
- this->get_allocator());
+ _M_get_Tp_allocator());
this->_M_impl._M_start = __new_start;
std::copy(__start_n, __pos, __old_start);
std::copy(__first, __last, __pos - difference_type(__n));
@@ -619,7 +619,7 @@ namespace _GLIBCXX_STD
std::__uninitialized_copy_copy(this->_M_impl._M_start,
__pos, __first, __mid,
__new_start,
- this->get_allocator());
+ _M_get_Tp_allocator());
this->_M_impl._M_start = __new_start;
std::copy(__mid, __last, __old_start);
}
@@ -647,7 +647,7 @@ namespace _GLIBCXX_STD
std::__uninitialized_copy_a(__finish_n,
this->_M_impl._M_finish,
this->_M_impl._M_finish,
- this->get_allocator());
+ _M_get_Tp_allocator());
this->_M_impl._M_finish = __new_finish;
std::copy_backward(__pos, __finish_n, __old_finish);
std::copy(__first, __last, __pos);
@@ -659,7 +659,7 @@ namespace _GLIBCXX_STD
std::__uninitialized_copy_copy(__mid, __last, __pos,
this->_M_impl._M_finish,
this->_M_impl._M_finish,
- this->get_allocator());
+ _M_get_Tp_allocator());
this->_M_impl._M_finish = __new_finish;
std::copy(__first, __mid, __pos);
}
diff --git a/libstdc++-v3/include/bits/fstream.tcc b/libstdc++-v3/include/bits/fstream.tcc
index 40bf428e2c1..0228322f2ea 100644
--- a/libstdc++-v3/include/bits/fstream.tcc
+++ b/libstdc++-v3/include/bits/fstream.tcc
@@ -203,8 +203,7 @@ namespace std
return traits_type::to_int_type(*this->gptr());
// Get and convert input sequence.
- const size_t __buflen = _M_buf_size > 1
- ? _M_buf_size - 1 : 1;
+ const size_t __buflen = _M_buf_size > 1 ? _M_buf_size - 1 : 1;
// Will be set to true if ::read() returns 0 indicating EOF.
bool __got_eof = false;
diff --git a/libstdc++-v3/include/bits/list.tcc b/libstdc++-v3/include/bits/list.tcc
index 59f9d1ad703..d65f73c0bee 100644
--- a/libstdc++-v3/include/bits/list.tcc
+++ b/libstdc++-v3/include/bits/list.tcc
@@ -1,6 +1,6 @@
// List implementation (out of line) -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -74,7 +74,7 @@ namespace _GLIBCXX_STD
{
_Node* __tmp = __cur;
__cur = static_cast<_Node*>(__cur->_M_next);
- this->get_allocator().destroy(&__tmp->_M_data);
+ _M_get_Tp_allocator().destroy(&__tmp->_M_data);
_M_put_node(__tmp);
}
}
@@ -102,7 +102,7 @@ namespace _GLIBCXX_STD
template<typename _Tp, typename _Alloc>
void
list<_Tp, _Alloc>::
- resize(size_type __new_size, const value_type& __x)
+ resize(size_type __new_size, value_type __x)
{
iterator __i = begin();
size_type __len = 0;
diff --git a/libstdc++-v3/include/bits/stl_algo.h b/libstdc++-v3/include/bits/stl_algo.h
index c0eaf5cd516..ee73321f6e2 100644
--- a/libstdc++-v3/include/bits/stl_algo.h
+++ b/libstdc++-v3/include/bits/stl_algo.h
@@ -1,6 +1,6 @@
// Algorithm implementation -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -413,9 +413,8 @@ namespace std
{
// concept requirements
__glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
- __glibcxx_function_requires(_EqualityComparableConcept<
- typename iterator_traits<_InputIterator>::value_type >)
- __glibcxx_function_requires(_EqualityComparableConcept<_Tp>)
+ __glibcxx_function_requires(_EqualOpConcept<
+ typename iterator_traits<_InputIterator>::value_type, _Tp>)
__glibcxx_requires_valid_range(__first, __last);
typename iterator_traits<_InputIterator>::difference_type __n = 0;
for ( ; __first != __last; ++__first)
@@ -627,9 +626,8 @@ namespace std
{
// concept requirements
__glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
- __glibcxx_function_requires(_EqualityComparableConcept<
- typename iterator_traits<_ForwardIterator>::value_type>)
- __glibcxx_function_requires(_EqualityComparableConcept<_Tp>)
+ __glibcxx_function_requires(_EqualOpConcept<
+ typename iterator_traits<_ForwardIterator>::value_type, _Tp>)
__glibcxx_requires_valid_range(__first, __last);
if (__count <= 0)
@@ -918,7 +916,10 @@ namespace std
__glibcxx_requires_valid_range(__first, __last);
for ( ; __first != __last; ++__first, ++__result)
- *__result = *__first == __old_value ? __new_value : *__first;
+ if (*__first == __old_value)
+ *__result = __new_value;
+ else
+ *__result = *__first;
return __result;
}
@@ -952,7 +953,10 @@ namespace std
__glibcxx_requires_valid_range(__first, __last);
for ( ; __first != __last; ++__first, ++__result)
- *__result = __pred(*__first) ? __new_value : *__first;
+ if (__pred(*__first))
+ *__result = __new_value;
+ else
+ *__result = *__first;
return __result;
}
@@ -1637,7 +1641,7 @@ namespace std
for (_Distance __i = 0; __i < __d; __i++)
{
- const _ValueType __tmp = *__first;
+ _ValueType __tmp = *__first;
_RandomAccessIterator __p = __first;
if (__k < __l)
diff --git a/libstdc++-v3/include/bits/stl_algobase.h b/libstdc++-v3/include/bits/stl_algobase.h
index 426fcba0298..a0f7c5041c3 100644
--- a/libstdc++-v3/include/bits/stl_algobase.h
+++ b/libstdc++-v3/include/bits/stl_algobase.h
@@ -94,7 +94,7 @@ namespace std
// concept requirements
__glibcxx_function_requires(_SGIAssignableConcept<_Tp>)
- const _Tp __tmp = __a;
+ _Tp __tmp = __a;
__a = __b;
__b = __tmp;
}
@@ -111,7 +111,7 @@ namespace std
{
typedef typename iterator_traits<_ForwardIterator1>::value_type
_ValueType1;
- const _ValueType1 __tmp = *__a;
+ _ValueType1 __tmp = *__a;
*__a = *__b;
*__b = __tmp;
}
diff --git a/libstdc++-v3/include/bits/stl_deque.h b/libstdc++-v3/include/bits/stl_deque.h
index fdee3d5aedf..5a20b657a5f 100644
--- a/libstdc++-v3/include/bits/stl_deque.h
+++ b/libstdc++-v3/include/bits/stl_deque.h
@@ -358,7 +358,7 @@ namespace _GLIBCXX_STD
allocator_type
get_allocator() const
- { return *static_cast<const _Alloc*>(&this->_M_impl); }
+ { return _M_get_Tp_allocator(); }
typedef _Deque_iterator<_Tp, _Tp&, _Tp*> iterator;
typedef _Deque_iterator<_Tp, const _Tp&, const _Tp*> const_iterator;
@@ -377,30 +377,43 @@ namespace _GLIBCXX_STD
//This struct encapsulates the implementation of the std::deque
//standard container and at the same time makes use of the EBO
//for empty allocators.
+ typedef typename _Alloc::template rebind<_Tp*>::other _Map_alloc_type;
+
+ typedef typename _Alloc::template rebind<_Tp>::other _Tp_alloc_type;
+
struct _Deque_impl
- : public _Alloc
+ : public _Tp_alloc_type
{
_Tp** _M_map;
size_t _M_map_size;
iterator _M_start;
iterator _M_finish;
- _Deque_impl(const _Alloc& __a)
- : _Alloc(__a), _M_map(0), _M_map_size(0), _M_start(), _M_finish()
+ _Deque_impl(const _Tp_alloc_type& __a)
+ : _Tp_alloc_type(__a), _M_map(0), _M_map_size(0),
+ _M_start(), _M_finish()
{ }
};
- typedef typename _Alloc::template rebind<_Tp*>::other _Map_alloc_type;
- _Map_alloc_type _M_get_map_allocator() const
- { return _Map_alloc_type(this->get_allocator()); }
+ _Tp_alloc_type
+ _M_get_Tp_allocator() const
+ { return *static_cast<const _Tp_alloc_type*>(&this->_M_impl); }
+
+ _Map_alloc_type
+ _M_get_map_allocator() const
+ { return _M_get_Tp_allocator(); }
_Tp*
_M_allocate_node()
- { return _M_impl._Alloc::allocate(__deque_buf_size(sizeof(_Tp))); }
+ {
+ return _M_impl._Tp_alloc_type::allocate(__deque_buf_size(sizeof(_Tp)));
+ }
void
_M_deallocate_node(_Tp* __p)
- { _M_impl._Alloc::deallocate(__p, __deque_buf_size(sizeof(_Tp))); }
+ {
+ _M_impl._Tp_alloc_type::deallocate(__p, __deque_buf_size(sizeof(_Tp)));
+ }
_Tp**
_M_allocate_map(size_t __n)
@@ -595,23 +608,26 @@ namespace _GLIBCXX_STD
class deque : protected _Deque_base<_Tp, _Alloc>
{
// concept requirements
+ typedef typename _Alloc::value_type _Alloc_value_type;
__glibcxx_class_requires(_Tp, _SGIAssignableConcept)
+ __glibcxx_class_requires2(_Tp, _Alloc_value_type, _SameTypeConcept)
typedef _Deque_base<_Tp, _Alloc> _Base;
+ typedef typename _Base::_Tp_alloc_type _Tp_alloc_type;
public:
- typedef _Tp value_type;
- typedef typename _Alloc::pointer pointer;
- typedef typename _Alloc::const_pointer const_pointer;
- typedef typename _Alloc::reference reference;
- typedef typename _Alloc::const_reference const_reference;
- typedef typename _Base::iterator iterator;
- typedef typename _Base::const_iterator const_iterator;
- typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
- typedef std::reverse_iterator<iterator> reverse_iterator;
+ typedef _Tp value_type;
+ typedef typename _Tp_alloc_type::pointer pointer;
+ typedef typename _Tp_alloc_type::const_pointer const_pointer;
+ typedef typename _Tp_alloc_type::reference reference;
+ typedef typename _Tp_alloc_type::const_reference const_reference;
+ typedef typename _Base::iterator iterator;
+ typedef typename _Base::const_iterator const_iterator;
+ typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
+ typedef std::reverse_iterator<iterator> reverse_iterator;
typedef size_t size_type;
typedef ptrdiff_t difference_type;
- typedef typename _Base::allocator_type allocator_type;
+ typedef _Alloc allocator_type;
protected:
typedef pointer* _Map_pointer;
@@ -627,6 +643,7 @@ namespace _GLIBCXX_STD
using _Base::_M_deallocate_node;
using _Base::_M_allocate_map;
using _Base::_M_deallocate_map;
+ using _Base::_M_get_Tp_allocator;
/** @if maint
* A total of four data members accumulated down the heirarchy.
@@ -652,24 +669,13 @@ namespace _GLIBCXX_STD
*
* This constructor fills the %deque with @a n copies of @a value.
*/
- deque(size_type __n, const value_type& __value,
+ explicit
+ deque(size_type __n, const value_type& __value = value_type(),
const allocator_type& __a = allocator_type())
: _Base(__a, __n)
{ _M_fill_initialize(__value); }
/**
- * @brief Create a %deque with default elements.
- * @param n The number of elements to initially create.
- *
- * This constructor fills the %deque with @a n copies of a
- * default-constructed element.
- */
- explicit
- deque(size_type __n)
- : _Base(allocator_type(), __n)
- { _M_fill_initialize(value_type()); }
-
- /**
* @brief %Deque copy constructor.
* @param x A %deque of identical element and allocator types.
*
@@ -680,7 +686,7 @@ namespace _GLIBCXX_STD
: _Base(__x.get_allocator(), __x.size())
{ std::__uninitialized_copy_a(__x.begin(), __x.end(),
this->_M_impl._M_start,
- this->get_allocator()); }
+ _M_get_Tp_allocator()); }
/**
* @brief Builds a %deque from a range.
@@ -713,7 +719,7 @@ namespace _GLIBCXX_STD
*/
~deque()
{ std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
- this->get_allocator()); }
+ _M_get_Tp_allocator()); }
/**
* @brief %Deque assignment operator.
@@ -857,7 +863,7 @@ namespace _GLIBCXX_STD
* data.
*/
void
- resize(size_type __new_size, const value_type& __x)
+ resize(size_type __new_size, value_type __x = value_type())
{
const size_type __len = size();
if (__new_size < __len)
@@ -867,19 +873,6 @@ namespace _GLIBCXX_STD
}
/**
- * @brief Resizes the %deque to the specified number of elements.
- * @param new_size Number of elements the %deque should contain.
- *
- * This function will resize the %deque to the specified number
- * of elements. If the number is smaller than the %deque's
- * current size the %deque is truncated, otherwise the %deque
- * is extended and new elements are default-constructed.
- */
- void
- resize(size_type new_size)
- { resize(new_size, value_type()); }
-
- /**
* Returns true if the %deque is empty. (Thus begin() would
* equal end().)
*/
diff --git a/libstdc++-v3/include/bits/stl_function.h b/libstdc++-v3/include/bits/stl_function.h
index 74ddcce9d8b..fbd22c3c8b5 100644
--- a/libstdc++-v3/include/bits/stl_function.h
+++ b/libstdc++-v3/include/bits/stl_function.h
@@ -1,6 +1,6 @@
// Functor implementations -*- C++ -*-
-// Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -88,7 +88,7 @@ namespace std
* \endcode
* The addition and negation functions will be inlined directly.
*
- * The standard functiors are derived from structs named @c unary_function
+ * The standard functors are derived from structs named @c unary_function
* and @c binary_function. These two classes contain nothing but typedefs,
* to aid in generic (template) programming. If you write your own
* functors, you might consider doing the same.
@@ -360,7 +360,7 @@ namespace std
/** @defgroup s20_3_6_binder Binder Classes
* Binders turn functions/functors with two arguments into functors with
* a single argument, storing an argument to be applied later. For
- * example, an variable @c B of type @c binder1st is constructed from a
+ * example, a variable @c B of type @c binder1st is constructed from a
* functor @c f and an argument @c x. Later, B's @c operator() is called
* with a single argument @c y. The return value is the value of @c f(x,y).
* @c B can be "called" with various arguments (y1, y2, ...) and will in
diff --git a/libstdc++-v3/include/bits/stl_list.h b/libstdc++-v3/include/bits/stl_list.h
index ce167ef80e4..e17ec2b4606 100644
--- a/libstdc++-v3/include/bits/stl_list.h
+++ b/libstdc++-v3/include/bits/stl_list.h
@@ -290,18 +290,19 @@ namespace _GLIBCXX_STD
//
// We put this to the test in the constructors and in
// get_allocator, where we use conversions between
- // allocator_type and _Node_Alloc_type. The conversion is
+ // allocator_type and _Node_alloc_type. The conversion is
// required by table 32 in [20.1.5].
typedef typename _Alloc::template rebind<_List_node<_Tp> >::other
+ _Node_alloc_type;
- _Node_Alloc_type;
+ typedef typename _Alloc::template rebind<_Tp>::other _Tp_alloc_type;
struct _List_impl
- : public _Node_Alloc_type
+ : public _Node_alloc_type
{
_List_node_base _M_node;
- _List_impl (const _Node_Alloc_type& __a)
- : _Node_Alloc_type(__a)
+ _List_impl(const _Node_alloc_type& __a)
+ : _Node_alloc_type(__a)
{ }
};
@@ -309,19 +310,22 @@ namespace _GLIBCXX_STD
_List_node<_Tp>*
_M_get_node()
- { return _M_impl._Node_Alloc_type::allocate(1); }
+ { return _M_impl._Node_alloc_type::allocate(1); }
void
_M_put_node(_List_node<_Tp>* __p)
- { _M_impl._Node_Alloc_type::deallocate(__p, 1); }
+ { _M_impl._Node_alloc_type::deallocate(__p, 1); }
public:
typedef _Alloc allocator_type;
+ _Tp_alloc_type
+ _M_get_Tp_allocator() const
+ { return *static_cast<const _Node_alloc_type*>(&this->_M_impl); }
+
allocator_type
get_allocator() const
- { return allocator_type(*static_cast<
- const _Node_Alloc_type*>(&this->_M_impl)); }
+ { return _M_get_Tp_allocator(); }
_List_base(const allocator_type& __a)
: _M_impl(__a)
@@ -391,28 +395,31 @@ namespace _GLIBCXX_STD
class list : protected _List_base<_Tp, _Alloc>
{
// concept requirements
+ typedef typename _Alloc::value_type _Alloc_value_type;
__glibcxx_class_requires(_Tp, _SGIAssignableConcept)
+ __glibcxx_class_requires2(_Tp, _Alloc_value_type, _SameTypeConcept)
- typedef _List_base<_Tp, _Alloc> _Base;
+ typedef _List_base<_Tp, _Alloc> _Base;
+ typedef typename _Base::_Tp_alloc_type _Tp_alloc_type;
public:
typedef _Tp value_type;
- typedef typename _Alloc::pointer pointer;
- typedef typename _Alloc::const_pointer const_pointer;
- typedef typename _Alloc::reference reference;
- typedef typename _Alloc::const_reference const_reference;
+ typedef typename _Tp_alloc_type::pointer pointer;
+ typedef typename _Tp_alloc_type::const_pointer const_pointer;
+ typedef typename _Tp_alloc_type::reference reference;
+ typedef typename _Tp_alloc_type::const_reference const_reference;
typedef _List_iterator<_Tp> iterator;
typedef _List_const_iterator<_Tp> const_iterator;
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
typedef std::reverse_iterator<iterator> reverse_iterator;
typedef size_t size_type;
typedef ptrdiff_t difference_type;
- typedef typename _Base::allocator_type allocator_type;
+ typedef _Alloc allocator_type;
protected:
// Note that pointers-to-_Node's can be ctor-converted to
// iterator types.
- typedef _List_node<_Tp> _Node;
+ typedef _List_node<_Tp> _Node;
/** @if maint
* One data member plus two memory-handling functions. If the
@@ -423,6 +430,7 @@ namespace _GLIBCXX_STD
using _Base::_M_impl;
using _Base::_M_put_node;
using _Base::_M_get_node;
+ using _Base::_M_get_Tp_allocator;
/**
* @if maint
@@ -437,7 +445,7 @@ namespace _GLIBCXX_STD
_Node* __p = this->_M_get_node();
try
{
- this->get_allocator().construct(&__p->_M_data, __x);
+ _M_get_Tp_allocator().construct(&__p->_M_data, __x);
}
catch(...)
{
@@ -464,24 +472,13 @@ namespace _GLIBCXX_STD
*
* This constructor fills the %list with @a n copies of @a value.
*/
- list(size_type __n, const value_type& __value,
+ explicit
+ list(size_type __n, const value_type& __value = value_type(),
const allocator_type& __a = allocator_type())
: _Base(__a)
{ this->insert(begin(), __n, __value); }
/**
- * @brief Create a %list with default elements.
- * @param n The number of elements to initially create.
- *
- * This constructor fills the %list with @a n copies of a
- * default-constructed element.
- */
- explicit
- list(size_type __n)
- : _Base(allocator_type())
- { this->insert(begin(), __n, value_type()); }
-
- /**
* @brief %List copy constructor.
* @param x A %list of identical element and allocator types.
*
@@ -671,20 +668,7 @@ namespace _GLIBCXX_STD
* extended and new elements are populated with given data.
*/
void
- resize(size_type __new_size, const value_type& __x);
-
- /**
- * @brief Resizes the %list to the specified number of elements.
- * @param new_size Number of elements the %list should contain.
- *
- * This function will resize the %list to the specified number of
- * elements. If the number is smaller than the %list's current
- * size the %list is truncated, otherwise the %list is extended
- * and new elements are default-constructed.
- */
- void
- resize(size_type __new_size)
- { this->resize(__new_size, value_type()); }
+ resize(size_type __new_size, value_type __x = value_type());
// element access
/**
@@ -1158,7 +1142,7 @@ namespace _GLIBCXX_STD
{
__position._M_node->unhook();
_Node* __n = static_cast<_Node*>(__position._M_node);
- this->get_allocator().destroy(&__n->_M_data);
+ _M_get_Tp_allocator().destroy(&__n->_M_data);
_M_put_node(__n);
}
};
diff --git a/libstdc++-v3/include/bits/stl_map.h b/libstdc++-v3/include/bits/stl_map.h
index a0834a763bc..5f4be568a69 100644
--- a/libstdc++-v3/include/bits/stl_map.h
+++ b/libstdc++-v3/include/bits/stl_map.h
@@ -90,21 +90,26 @@ namespace _GLIBCXX_STD
typename _Alloc = std::allocator<std::pair<const _Key, _Tp> > >
class map
{
- // concept requirements
- __glibcxx_class_requires(_Tp, _SGIAssignableConcept)
- __glibcxx_class_requires4(_Compare, bool, _Key, _Key,
- _BinaryFunctionConcept)
-
public:
typedef _Key key_type;
typedef _Tp mapped_type;
typedef std::pair<const _Key, _Tp> value_type;
typedef _Compare key_compare;
+ typedef _Alloc allocator_type;
+
+ private:
+ // concept requirements
+ typedef typename _Alloc::value_type _Alloc_value_type;
+ __glibcxx_class_requires(_Tp, _SGIAssignableConcept)
+ __glibcxx_class_requires4(_Compare, bool, _Key, _Key,
+ _BinaryFunctionConcept)
+ __glibcxx_class_requires2(value_type, _Alloc_value_type, _SameTypeConcept)
+ public:
class value_compare
: public std::binary_function<value_type, value_type, bool>
{
- friend class map<_Key,_Tp,_Compare,_Alloc>;
+ friend class map<_Key, _Tp, _Compare, _Alloc>;
protected:
_Compare comp;
@@ -118,19 +123,22 @@ namespace _GLIBCXX_STD
private:
/// @if maint This turns a red-black tree into a [multi]map. @endif
- typedef _Rb_tree<key_type, value_type,
- _Select1st<value_type>, key_compare, _Alloc> _Rep_type;
+ typedef typename _Alloc::template rebind<value_type>::other
+ _Pair_alloc_type;
+
+ typedef _Rb_tree<key_type, value_type, _Select1st<value_type>,
+ key_compare, _Pair_alloc_type> _Rep_type;
+
/// @if maint The actual tree structure. @endif
_Rep_type _M_t;
public:
// many of these are specified differently in ISO, but the following are
// "functionally equivalent"
- typedef typename _Alloc::pointer pointer;
- typedef typename _Alloc::const_pointer const_pointer;
- typedef typename _Alloc::reference reference;
- typedef typename _Alloc::const_reference const_reference;
- typedef typename _Rep_type::allocator_type allocator_type;
+ typedef typename _Pair_alloc_type::pointer pointer;
+ typedef typename _Pair_alloc_type::const_pointer const_pointer;
+ typedef typename _Pair_alloc_type::reference reference;
+ typedef typename _Pair_alloc_type::const_reference const_reference;
typedef typename _Rep_type::iterator iterator;
typedef typename _Rep_type::const_iterator const_iterator;
typedef typename _Rep_type::size_type size_type;
@@ -589,7 +597,7 @@ namespace _GLIBCXX_STD
*
* This function probably only makes sense for multimaps.
*/
- std::pair<iterator,iterator>
+ std::pair<iterator, iterator>
equal_range(const key_type& __x)
{ return _M_t.equal_range(__x); }
@@ -608,19 +616,19 @@ namespace _GLIBCXX_STD
*
* This function probably only makes sense for multimaps.
*/
- std::pair<const_iterator,const_iterator>
+ std::pair<const_iterator, const_iterator>
equal_range(const key_type& __x) const
{ return _M_t.equal_range(__x); }
template <typename _K1, typename _T1, typename _C1, typename _A1>
friend bool
- operator== (const map<_K1,_T1,_C1,_A1>&,
- const map<_K1,_T1,_C1,_A1>&);
+ operator== (const map<_K1, _T1, _C1, _A1>&,
+ const map<_K1, _T1, _C1, _A1>&);
template <typename _K1, typename _T1, typename _C1, typename _A1>
friend bool
- operator< (const map<_K1,_T1,_C1,_A1>&,
- const map<_K1,_T1,_C1,_A1>&);
+ operator< (const map<_K1, _T1, _C1, _A1>&,
+ const map<_K1, _T1, _C1, _A1>&);
};
/**
@@ -635,8 +643,8 @@ namespace _GLIBCXX_STD
*/
template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
inline bool
- operator==(const map<_Key,_Tp,_Compare,_Alloc>& __x,
- const map<_Key,_Tp,_Compare,_Alloc>& __y)
+ operator==(const map<_Key, _Tp, _Compare, _Alloc>& __x,
+ const map<_Key, _Tp, _Compare, _Alloc>& __y)
{ return __x._M_t == __y._M_t; }
/**
@@ -652,42 +660,43 @@ namespace _GLIBCXX_STD
*/
template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
inline bool
- operator<(const map<_Key,_Tp,_Compare,_Alloc>& __x,
- const map<_Key,_Tp,_Compare,_Alloc>& __y)
+ operator<(const map<_Key, _Tp, _Compare, _Alloc>& __x,
+ const map<_Key, _Tp, _Compare, _Alloc>& __y)
{ return __x._M_t < __y._M_t; }
/// Based on operator==
template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
inline bool
- operator!=(const map<_Key,_Tp,_Compare,_Alloc>& __x,
- const map<_Key,_Tp,_Compare,_Alloc>& __y)
+ operator!=(const map<_Key, _Tp, _Compare, _Alloc>& __x,
+ const map<_Key, _Tp, _Compare, _Alloc>& __y)
{ return !(__x == __y); }
/// Based on operator<
template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
inline bool
- operator>(const map<_Key,_Tp,_Compare,_Alloc>& __x,
- const map<_Key,_Tp,_Compare,_Alloc>& __y)
+ operator>(const map<_Key, _Tp, _Compare, _Alloc>& __x,
+ const map<_Key, _Tp, _Compare, _Alloc>& __y)
{ return __y < __x; }
/// Based on operator<
template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
inline bool
- operator<=(const map<_Key,_Tp,_Compare,_Alloc>& __x,
- const map<_Key,_Tp,_Compare,_Alloc>& __y)
+ operator<=(const map<_Key, _Tp, _Compare, _Alloc>& __x,
+ const map<_Key, _Tp, _Compare, _Alloc>& __y)
{ return !(__y < __x); }
/// Based on operator<
template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
inline bool
- operator>=(const map<_Key,_Tp,_Compare,_Alloc>& __x,
- const map<_Key,_Tp,_Compare,_Alloc>& __y)
+ operator>=(const map<_Key, _Tp, _Compare, _Alloc>& __x,
+ const map<_Key, _Tp, _Compare, _Alloc>& __y)
{ return !(__x < __y); }
/// See std::map::swap().
template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
inline void
- swap(map<_Key,_Tp,_Compare,_Alloc>& __x, map<_Key,_Tp,_Compare,_Alloc>& __y)
+ swap(map<_Key, _Tp, _Compare, _Alloc>& __x,
+ map<_Key, _Tp, _Compare, _Alloc>& __y)
{ __x.swap(__y); }
} // namespace std
diff --git a/libstdc++-v3/include/bits/stl_multimap.h b/libstdc++-v3/include/bits/stl_multimap.h
index 524b2366813..dca95563343 100644
--- a/libstdc++-v3/include/bits/stl_multimap.h
+++ b/libstdc++-v3/include/bits/stl_multimap.h
@@ -74,13 +74,13 @@ namespace _GLIBCXX_STD
template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
inline bool
- operator==(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,
- const multimap<_Key,_Tp,_Compare,_Alloc>& __y);
+ operator==(const multimap<_Key, _Tp, _Compare, _Alloc>& __x,
+ const multimap<_Key, _Tp, _Compare, _Alloc>& __y);
template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
inline bool
- operator<(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,
- const multimap<_Key,_Tp,_Compare,_Alloc>& __y);
+ operator<(const multimap<_Key, _Tp, _Compare, _Alloc>& __x,
+ const multimap<_Key, _Tp, _Compare, _Alloc>& __y);
/**
* @brief A standard container made up of (key,value) pairs, which can be
@@ -106,21 +106,26 @@ namespace _GLIBCXX_STD
template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
class multimap
{
- // concept requirements
- __glibcxx_class_requires(_Tp, _SGIAssignableConcept)
- __glibcxx_class_requires4(_Compare, bool, _Key, _Key,
- _BinaryFunctionConcept)
-
public:
typedef _Key key_type;
typedef _Tp mapped_type;
typedef std::pair<const _Key, _Tp> value_type;
typedef _Compare key_compare;
+ typedef _Alloc allocator_type;
+ private:
+ // concept requirements
+ typedef typename _Alloc::value_type _Alloc_value_type;
+ __glibcxx_class_requires(_Tp, _SGIAssignableConcept)
+ __glibcxx_class_requires4(_Compare, bool, _Key, _Key,
+ _BinaryFunctionConcept)
+ __glibcxx_class_requires2(value_type, _Alloc_value_type, _SameTypeConcept)
+
+ public:
class value_compare
: public std::binary_function<value_type, value_type, bool>
{
- friend class multimap<_Key,_Tp,_Compare,_Alloc>;
+ friend class multimap<_Key, _Tp, _Compare, _Alloc>;
protected:
_Compare comp;
@@ -134,19 +139,21 @@ namespace _GLIBCXX_STD
private:
/// @if maint This turns a red-black tree into a [multi]map. @endif
- typedef _Rb_tree<key_type, value_type,
- _Select1st<value_type>, key_compare, _Alloc> _Rep_type;
+ typedef typename _Alloc::template rebind<value_type>::other
+ _Pair_alloc_type;
+
+ typedef _Rb_tree<key_type, value_type, _Select1st<value_type>,
+ key_compare, _Pair_alloc_type> _Rep_type;
/// @if maint The actual tree structure. @endif
_Rep_type _M_t;
public:
// many of these are specified differently in ISO, but the following are
// "functionally equivalent"
- typedef typename _Alloc::pointer pointer;
- typedef typename _Alloc::const_pointer const_pointer;
- typedef typename _Alloc::reference reference;
- typedef typename _Alloc::const_reference const_reference;
- typedef typename _Rep_type::allocator_type allocator_type;
+ typedef typename _Pair_alloc_type::pointer pointer;
+ typedef typename _Pair_alloc_type::const_pointer const_pointer;
+ typedef typename _Pair_alloc_type::reference reference;
+ typedef typename _Pair_alloc_type::const_reference const_reference;
typedef typename _Rep_type::iterator iterator;
typedef typename _Rep_type::const_iterator const_iterator;
typedef typename _Rep_type::size_type size_type;
@@ -573,7 +580,7 @@ namespace _GLIBCXX_STD
* @endcode
* (but is faster than making the calls separately).
*/
- std::pair<iterator,iterator>
+ std::pair<iterator, iterator>
equal_range(const key_type& __x)
{ return _M_t.equal_range(__x); }
@@ -590,19 +597,19 @@ namespace _GLIBCXX_STD
* @endcode
* (but is faster than making the calls separately).
*/
- std::pair<const_iterator,const_iterator>
+ std::pair<const_iterator, const_iterator>
equal_range(const key_type& __x) const
{ return _M_t.equal_range(__x); }
template <typename _K1, typename _T1, typename _C1, typename _A1>
friend bool
- operator== (const multimap<_K1,_T1,_C1,_A1>&,
- const multimap<_K1,_T1,_C1,_A1>&);
+ operator== (const multimap<_K1, _T1, _C1, _A1>&,
+ const multimap<_K1, _T1, _C1, _A1>&);
template <typename _K1, typename _T1, typename _C1, typename _A1>
friend bool
- operator< (const multimap<_K1,_T1,_C1,_A1>&,
- const multimap<_K1,_T1,_C1,_A1>&);
+ operator< (const multimap<_K1, _T1, _C1, _A1>&,
+ const multimap<_K1, _T1, _C1, _A1>&);
};
/**
@@ -617,8 +624,8 @@ namespace _GLIBCXX_STD
*/
template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
inline bool
- operator==(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,
- const multimap<_Key,_Tp,_Compare,_Alloc>& __y)
+ operator==(const multimap<_Key, _Tp, _Compare, _Alloc>& __x,
+ const multimap<_Key, _Tp, _Compare, _Alloc>& __y)
{ return __x._M_t == __y._M_t; }
/**
@@ -634,43 +641,43 @@ namespace _GLIBCXX_STD
*/
template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
inline bool
- operator<(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,
- const multimap<_Key,_Tp,_Compare,_Alloc>& __y)
+ operator<(const multimap<_Key, _Tp, _Compare, _Alloc>& __x,
+ const multimap<_Key, _Tp, _Compare, _Alloc>& __y)
{ return __x._M_t < __y._M_t; }
/// Based on operator==
template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
inline bool
- operator!=(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,
- const multimap<_Key,_Tp,_Compare,_Alloc>& __y)
+ operator!=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x,
+ const multimap<_Key, _Tp, _Compare, _Alloc>& __y)
{ return !(__x == __y); }
/// Based on operator<
template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
inline bool
- operator>(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,
- const multimap<_Key,_Tp,_Compare,_Alloc>& __y)
+ operator>(const multimap<_Key, _Tp, _Compare, _Alloc>& __x,
+ const multimap<_Key, _Tp, _Compare, _Alloc>& __y)
{ return __y < __x; }
/// Based on operator<
template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
inline bool
- operator<=(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,
- const multimap<_Key,_Tp,_Compare,_Alloc>& __y)
+ operator<=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x,
+ const multimap<_Key, _Tp, _Compare, _Alloc>& __y)
{ return !(__y < __x); }
/// Based on operator<
template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
inline bool
- operator>=(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,
- const multimap<_Key,_Tp,_Compare,_Alloc>& __y)
+ operator>=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x,
+ const multimap<_Key, _Tp, _Compare, _Alloc>& __y)
{ return !(__x < __y); }
/// See std::multimap::swap().
template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
inline void
- swap(multimap<_Key,_Tp,_Compare,_Alloc>& __x,
- multimap<_Key,_Tp,_Compare,_Alloc>& __y)
+ swap(multimap<_Key, _Tp, _Compare, _Alloc>& __x,
+ multimap<_Key, _Tp, _Compare, _Alloc>& __y)
{ __x.swap(__y); }
} // namespace std
diff --git a/libstdc++-v3/include/bits/stl_multiset.h b/libstdc++-v3/include/bits/stl_multiset.h
index 3f42ef4c38d..f401db76fd5 100644
--- a/libstdc++-v3/include/bits/stl_multiset.h
+++ b/libstdc++-v3/include/bits/stl_multiset.h
@@ -73,13 +73,13 @@ namespace _GLIBCXX_STD
template <class _Key, class _Compare, class _Alloc>
inline bool
- operator==(const multiset<_Key,_Compare,_Alloc>& __x,
- const multiset<_Key,_Compare,_Alloc>& __y);
+ operator==(const multiset<_Key, _Compare, _Alloc>& __x,
+ const multiset<_Key, _Compare, _Alloc>& __y);
template <class _Key, class _Compare, class _Alloc>
inline bool
- operator<(const multiset<_Key,_Compare,_Alloc>& __x,
- const multiset<_Key,_Compare,_Alloc>& __y);
+ operator<(const multiset<_Key, _Compare, _Alloc>& __x,
+ const multiset<_Key, _Compare, _Alloc>& __y);
/**
* @brief A standard container made up of elements, which can be retrieved
@@ -105,9 +105,11 @@ namespace _GLIBCXX_STD
class multiset
{
// concept requirements
+ typedef typename _Alloc::value_type _Alloc_value_type;
__glibcxx_class_requires(_Key, _SGIAssignableConcept)
__glibcxx_class_requires4(_Compare, bool, _Key, _Key,
_BinaryFunctionConcept)
+ __glibcxx_class_requires2(_Key, _Alloc_value_type, _SameTypeConcept)
public:
// typedefs:
@@ -115,35 +117,37 @@ namespace _GLIBCXX_STD
typedef _Key value_type;
typedef _Compare key_compare;
typedef _Compare value_compare;
+ typedef _Alloc allocator_type;
private:
/// @if maint This turns a red-black tree into a [multi]set. @endif
- typedef _Rb_tree<key_type, value_type,
- _Identity<value_type>, key_compare, _Alloc> _Rep_type;
+ typedef typename _Alloc::template rebind<_Key>::other _Key_alloc_type;
+
+ typedef _Rb_tree<key_type, value_type, _Identity<value_type>,
+ key_compare, _Key_alloc_type> _Rep_type;
/// @if maint The actual tree structure. @endif
_Rep_type _M_t;
public:
- typedef typename _Alloc::pointer pointer;
- typedef typename _Alloc::const_pointer const_pointer;
- typedef typename _Alloc::reference reference;
- typedef typename _Alloc::const_reference const_reference;
+ typedef typename _Key_alloc_type::pointer pointer;
+ typedef typename _Key_alloc_type::const_pointer const_pointer;
+ typedef typename _Key_alloc_type::reference reference;
+ typedef typename _Key_alloc_type::const_reference const_reference;
// _GLIBCXX_RESOLVE_LIB_DEFECTS
// DR 103. set::iterator is required to be modifiable,
// but this allows modification of keys.
- typedef typename _Rep_type::const_iterator iterator;
- typedef typename _Rep_type::const_iterator const_iterator;
- typedef typename _Rep_type::const_reverse_iterator reverse_iterator;
- typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator;
- typedef typename _Rep_type::size_type size_type;
- typedef typename _Rep_type::difference_type difference_type;
- typedef typename _Rep_type::allocator_type allocator_type;
-
- // allocation/deallocation
-
- /**
- * @brief Default constructor creates no elements.
- */
+ typedef typename _Rep_type::const_iterator iterator;
+ typedef typename _Rep_type::const_iterator const_iterator;
+ typedef typename _Rep_type::const_reverse_iterator reverse_iterator;
+ typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator;
+ typedef typename _Rep_type::size_type size_type;
+ typedef typename _Rep_type::difference_type difference_type;
+
+ // allocation/deallocation
+
+ /**
+ * @brief Default constructor creates no elements.
+ */
multiset()
: _M_t(_Compare(), allocator_type()) { }
@@ -286,7 +290,7 @@ namespace _GLIBCXX_STD
* std::swap(s1,s2) will feed to this function.
*/
void
- swap(multiset<_Key,_Compare,_Alloc>& __x)
+ swap(multiset<_Key, _Compare, _Alloc>& __x)
{ _M_t.swap(__x._M_t); }
// insert/erase
@@ -492,23 +496,23 @@ namespace _GLIBCXX_STD
*
* This function probably only makes sense for multisets.
*/
- std::pair<iterator,iterator>
+ std::pair<iterator, iterator>
equal_range(const key_type& __x)
{ return _M_t.equal_range(__x); }
- std::pair<const_iterator,const_iterator>
+ std::pair<const_iterator, const_iterator>
equal_range(const key_type& __x) const
{ return _M_t.equal_range(__x); }
template <class _K1, class _C1, class _A1>
friend bool
- operator== (const multiset<_K1,_C1,_A1>&,
- const multiset<_K1,_C1,_A1>&);
+ operator== (const multiset<_K1, _C1, _A1>&,
+ const multiset<_K1, _C1, _A1>&);
template <class _K1, class _C1, class _A1>
friend bool
- operator< (const multiset<_K1,_C1,_A1>&,
- const multiset<_K1,_C1,_A1>&);
+ operator< (const multiset<_K1, _C1, _A1>&,
+ const multiset<_K1, _C1, _A1>&);
};
/**
@@ -524,8 +528,8 @@ namespace _GLIBCXX_STD
*/
template <class _Key, class _Compare, class _Alloc>
inline bool
- operator==(const multiset<_Key,_Compare,_Alloc>& __x,
- const multiset<_Key,_Compare,_Alloc>& __y)
+ operator==(const multiset<_Key, _Compare, _Alloc>& __x,
+ const multiset<_Key, _Compare, _Alloc>& __y)
{ return __x._M_t == __y._M_t; }
/**
@@ -541,15 +545,15 @@ namespace _GLIBCXX_STD
*/
template <class _Key, class _Compare, class _Alloc>
inline bool
- operator<(const multiset<_Key,_Compare,_Alloc>& __x,
- const multiset<_Key,_Compare,_Alloc>& __y)
+ operator<(const multiset<_Key, _Compare, _Alloc>& __x,
+ const multiset<_Key, _Compare, _Alloc>& __y)
{ return __x._M_t < __y._M_t; }
/// Returns !(x == y).
template <class _Key, class _Compare, class _Alloc>
inline bool
- operator!=(const multiset<_Key,_Compare,_Alloc>& __x,
- const multiset<_Key,_Compare,_Alloc>& __y)
+ operator!=(const multiset<_Key, _Compare, _Alloc>& __x,
+ const multiset<_Key, _Compare, _Alloc>& __y)
{ return !(__x == __y); }
/// Returns y < x.
@@ -562,22 +566,22 @@ namespace _GLIBCXX_STD
/// Returns !(y < x)
template <class _Key, class _Compare, class _Alloc>
inline bool
- operator<=(const multiset<_Key,_Compare,_Alloc>& __x,
- const multiset<_Key,_Compare,_Alloc>& __y)
+ operator<=(const multiset<_Key, _Compare, _Alloc>& __x,
+ const multiset<_Key, _Compare, _Alloc>& __y)
{ return !(__y < __x); }
/// Returns !(x < y)
template <class _Key, class _Compare, class _Alloc>
inline bool
- operator>=(const multiset<_Key,_Compare,_Alloc>& __x,
- const multiset<_Key,_Compare,_Alloc>& __y)
+ operator>=(const multiset<_Key, _Compare, _Alloc>& __x,
+ const multiset<_Key, _Compare, _Alloc>& __y)
{ return !(__x < __y); }
/// See std::multiset::swap().
template <class _Key, class _Compare, class _Alloc>
inline void
- swap(multiset<_Key,_Compare,_Alloc>& __x,
- multiset<_Key,_Compare,_Alloc>& __y)
+ swap(multiset<_Key, _Compare, _Alloc>& __x,
+ multiset<_Key, _Compare, _Alloc>& __y)
{ __x.swap(__y); }
} // namespace std
diff --git a/libstdc++-v3/include/bits/stl_set.h b/libstdc++-v3/include/bits/stl_set.h
index 1a15d1172c8..c76e55475c6 100644
--- a/libstdc++-v3/include/bits/stl_set.h
+++ b/libstdc++-v3/include/bits/stl_set.h
@@ -72,13 +72,13 @@ namespace _GLIBCXX_STD
template<class _Key, class _Compare, class _Alloc>
inline bool
- operator==(const set<_Key,_Compare,_Alloc>& __x,
- const set<_Key,_Compare,_Alloc>& __y);
+ operator==(const set<_Key, _Compare, _Alloc>& __x,
+ const set<_Key, _Compare, _Alloc>& __y);
template<class _Key, class _Compare, class _Alloc>
inline bool
- operator<(const set<_Key,_Compare,_Alloc>& __x,
- const set<_Key,_Compare,_Alloc>& __y);
+ operator<(const set<_Key, _Compare, _Alloc>& __x,
+ const set<_Key, _Compare, _Alloc>& __y);
/**
* @brief A standard container made up of unique keys, which can be
@@ -107,9 +107,11 @@ namespace _GLIBCXX_STD
class set
{
// concept requirements
+ typedef typename _Alloc::value_type _Alloc_value_type;
__glibcxx_class_requires(_Key, _SGIAssignableConcept)
__glibcxx_class_requires4(_Compare, bool, _Key, _Key,
_BinaryFunctionConcept)
+ __glibcxx_class_requires2(_Key, _Alloc_value_type, _SameTypeConcept)
public:
// typedefs:
@@ -119,29 +121,32 @@ namespace _GLIBCXX_STD
typedef _Key value_type;
typedef _Compare key_compare;
typedef _Compare value_compare;
+ typedef _Alloc allocator_type;
//@}
private:
- typedef _Rb_tree<key_type, value_type,
- _Identity<value_type>, key_compare, _Alloc> _Rep_type;
+ typedef typename _Alloc::template rebind<_Key>::other _Key_alloc_type;
+
+ typedef _Rb_tree<key_type, value_type, _Identity<value_type>,
+ key_compare, _Key_alloc_type> _Rep_type;
_Rep_type _M_t; // red-black tree representing set
+
public:
//@{
/// Iterator-related typedefs.
- typedef typename _Alloc::pointer pointer;
- typedef typename _Alloc::const_pointer const_pointer;
- typedef typename _Alloc::reference reference;
- typedef typename _Alloc::const_reference const_reference;
+ typedef typename _Key_alloc_type::pointer pointer;
+ typedef typename _Key_alloc_type::const_pointer const_pointer;
+ typedef typename _Key_alloc_type::reference reference;
+ typedef typename _Key_alloc_type::const_reference const_reference;
// _GLIBCXX_RESOLVE_LIB_DEFECTS
// DR 103. set::iterator is required to be modifiable,
// but this allows modification of keys.
- typedef typename _Rep_type::const_iterator iterator;
- typedef typename _Rep_type::const_iterator const_iterator;
- typedef typename _Rep_type::const_reverse_iterator reverse_iterator;
- typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator;
- typedef typename _Rep_type::size_type size_type;
- typedef typename _Rep_type::difference_type difference_type;
- typedef typename _Rep_type::allocator_type allocator_type;
+ typedef typename _Rep_type::const_iterator iterator;
+ typedef typename _Rep_type::const_iterator const_iterator;
+ typedef typename _Rep_type::const_reverse_iterator reverse_iterator;
+ typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator;
+ typedef typename _Rep_type::size_type size_type;
+ typedef typename _Rep_type::difference_type difference_type;
//@}
// allocation/deallocation
@@ -155,8 +160,9 @@ namespace _GLIBCXX_STD
* @param comp Comparator to use.
* @param a Allocator to use.
*/
- explicit set(const _Compare& __comp,
- const allocator_type& __a = allocator_type())
+ explicit
+ set(const _Compare& __comp,
+ const allocator_type& __a = allocator_type())
: _M_t(__comp, __a) {}
/**
@@ -503,22 +509,22 @@ namespace _GLIBCXX_STD
*
* This function probably only makes sense for multisets.
*/
- std::pair<iterator,iterator>
+ std::pair<iterator, iterator>
equal_range(const key_type& __x)
{ return _M_t.equal_range(__x); }
- std::pair<const_iterator,const_iterator>
+ std::pair<const_iterator, const_iterator>
equal_range(const key_type& __x) const
{ return _M_t.equal_range(__x); }
//@}
template<class _K1, class _C1, class _A1>
friend bool
- operator== (const set<_K1,_C1,_A1>&, const set<_K1,_C1,_A1>&);
+ operator== (const set<_K1, _C1, _A1>&, const set<_K1, _C1, _A1>&);
template<class _K1, class _C1, class _A1>
friend bool
- operator< (const set<_K1,_C1,_A1>&, const set<_K1,_C1,_A1>&);
+ operator< (const set<_K1, _C1, _A1>&, const set<_K1, _C1, _A1>&);
};
@@ -534,8 +540,8 @@ namespace _GLIBCXX_STD
*/
template<class _Key, class _Compare, class _Alloc>
inline bool
- operator==(const set<_Key,_Compare,_Alloc>& __x,
- const set<_Key,_Compare,_Alloc>& __y)
+ operator==(const set<_Key, _Compare, _Alloc>& __x,
+ const set<_Key, _Compare, _Alloc>& __y)
{ return __x._M_t == __y._M_t; }
/**
@@ -551,42 +557,42 @@ namespace _GLIBCXX_STD
*/
template<class _Key, class _Compare, class _Alloc>
inline bool
- operator<(const set<_Key,_Compare,_Alloc>& __x,
- const set<_Key,_Compare,_Alloc>& __y)
+ operator<(const set<_Key, _Compare, _Alloc>& __x,
+ const set<_Key, _Compare, _Alloc>& __y)
{ return __x._M_t < __y._M_t; }
/// Returns !(x == y).
template<class _Key, class _Compare, class _Alloc>
inline bool
- operator!=(const set<_Key,_Compare,_Alloc>& __x,
- const set<_Key,_Compare,_Alloc>& __y)
+ operator!=(const set<_Key, _Compare, _Alloc>& __x,
+ const set<_Key, _Compare, _Alloc>& __y)
{ return !(__x == __y); }
/// Returns y < x.
template<class _Key, class _Compare, class _Alloc>
inline bool
- operator>(const set<_Key,_Compare,_Alloc>& __x,
- const set<_Key,_Compare,_Alloc>& __y)
+ operator>(const set<_Key, _Compare, _Alloc>& __x,
+ const set<_Key, _Compare, _Alloc>& __y)
{ return __y < __x; }
/// Returns !(y < x)
template<class _Key, class _Compare, class _Alloc>
inline bool
- operator<=(const set<_Key,_Compare,_Alloc>& __x,
- const set<_Key,_Compare,_Alloc>& __y)
+ operator<=(const set<_Key, _Compare, _Alloc>& __x,
+ const set<_Key, _Compare, _Alloc>& __y)
{ return !(__y < __x); }
/// Returns !(x < y)
template<class _Key, class _Compare, class _Alloc>
inline bool
- operator>=(const set<_Key,_Compare,_Alloc>& __x,
- const set<_Key,_Compare,_Alloc>& __y)
+ operator>=(const set<_Key, _Compare, _Alloc>& __x,
+ const set<_Key, _Compare, _Alloc>& __y)
{ return !(__x < __y); }
/// See std::set::swap().
template<class _Key, class _Compare, class _Alloc>
inline void
- swap(set<_Key,_Compare,_Alloc>& __x, set<_Key,_Compare,_Alloc>& __y)
+ swap(set<_Key, _Compare, _Alloc>& __x, set<_Key, _Compare, _Alloc>& __y)
{ __x.swap(__y); }
} // namespace std
diff --git a/libstdc++-v3/include/bits/stl_vector.h b/libstdc++-v3/include/bits/stl_vector.h
index d532c2dc910..06b94017c01 100644
--- a/libstdc++-v3/include/bits/stl_vector.h
+++ b/libstdc++-v3/include/bits/stl_vector.h
@@ -75,23 +75,29 @@ namespace _GLIBCXX_STD
template<typename _Tp, typename _Alloc>
struct _Vector_base
{
+ typedef typename _Alloc::template rebind<_Tp>::other _Tp_alloc_type;
+
struct _Vector_impl
- : public _Alloc
+ : public _Tp_alloc_type
{
_Tp* _M_start;
_Tp* _M_finish;
_Tp* _M_end_of_storage;
- _Vector_impl(_Alloc const& __a)
- : _Alloc(__a), _M_start(0), _M_finish(0), _M_end_of_storage(0)
+ _Vector_impl(_Tp_alloc_type const& __a)
+ : _Tp_alloc_type(__a), _M_start(0), _M_finish(0), _M_end_of_storage(0)
{ }
};
public:
typedef _Alloc allocator_type;
+ _Tp_alloc_type
+ _M_get_Tp_allocator() const
+ { return *static_cast<const _Tp_alloc_type*>(&this->_M_impl); }
+
allocator_type
get_allocator() const
- { return *static_cast<const _Alloc*>(&this->_M_impl); }
+ { return _M_get_Tp_allocator(); }
_Vector_base(const allocator_type& __a)
: _M_impl(__a)
@@ -148,17 +154,20 @@ namespace _GLIBCXX_STD
class vector : protected _Vector_base<_Tp, _Alloc>
{
// Concept requirements.
+ typedef typename _Alloc::value_type _Alloc_value_type;
__glibcxx_class_requires(_Tp, _SGIAssignableConcept)
-
- typedef _Vector_base<_Tp, _Alloc> _Base;
- typedef vector<_Tp, _Alloc> vector_type;
+ __glibcxx_class_requires2(_Tp, _Alloc_value_type, _SameTypeConcept)
+
+ typedef _Vector_base<_Tp, _Alloc> _Base;
+ typedef vector<_Tp, _Alloc> vector_type;
+ typedef typename _Base::_Tp_alloc_type _Tp_alloc_type;
public:
typedef _Tp value_type;
- typedef typename _Alloc::pointer pointer;
- typedef typename _Alloc::const_pointer const_pointer;
- typedef typename _Alloc::reference reference;
- typedef typename _Alloc::const_reference const_reference;
+ typedef typename _Tp_alloc_type::pointer pointer;
+ typedef typename _Tp_alloc_type::const_pointer const_pointer;
+ typedef typename _Tp_alloc_type::reference reference;
+ typedef typename _Tp_alloc_type::const_reference const_reference;
typedef __gnu_cxx::__normal_iterator<pointer, vector_type> iterator;
typedef __gnu_cxx::__normal_iterator<const_pointer, vector_type>
const_iterator;
@@ -166,7 +175,7 @@ namespace _GLIBCXX_STD
typedef std::reverse_iterator<iterator> reverse_iterator;
typedef size_t size_type;
typedef ptrdiff_t difference_type;
- typedef typename _Base::allocator_type allocator_type;
+ typedef _Alloc allocator_type;
protected:
/** @if maint
@@ -177,6 +186,7 @@ namespace _GLIBCXX_STD
using _Base::_M_allocate;
using _Base::_M_deallocate;
using _Base::_M_impl;
+ using _Base::_M_get_Tp_allocator;
public:
// [23.2.4.1] construct/copy/destroy
@@ -196,32 +206,17 @@ namespace _GLIBCXX_STD
*
* This constructor fills the %vector with @a n copies of @a value.
*/
- vector(size_type __n, const value_type& __value,
+ explicit
+ vector(size_type __n, const value_type& __value = value_type(),
const allocator_type& __a = allocator_type())
: _Base(__n, __a)
{
std::__uninitialized_fill_n_a(this->_M_impl._M_start, __n, __value,
- this->get_allocator());
+ _M_get_Tp_allocator());
this->_M_impl._M_finish = this->_M_impl._M_start + __n;
}
/**
- * @brief Create a %vector with default elements.
- * @param n The number of elements to initially create.
- *
- * This constructor fills the %vector with @a n copies of a
- * default-constructed element.
- */
- explicit
- vector(size_type __n)
- : _Base(__n, allocator_type())
- {
- std::__uninitialized_fill_n_a(this->_M_impl._M_start, __n, value_type(),
- this->get_allocator());
- this->_M_impl._M_finish = this->_M_impl._M_start + __n;
- }
-
- /**
* @brief %Vector copy constructor.
* @param x A %vector of identical element and allocator types.
*
@@ -235,7 +230,7 @@ namespace _GLIBCXX_STD
{ this->_M_impl._M_finish =
std::__uninitialized_copy_a(__x.begin(), __x.end(),
this->_M_impl._M_start,
- this->get_allocator());
+ _M_get_Tp_allocator());
}
/**
@@ -271,7 +266,7 @@ namespace _GLIBCXX_STD
*/
~vector()
{ std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
- this->get_allocator());
+ _M_get_Tp_allocator());
}
/**
@@ -419,7 +414,7 @@ namespace _GLIBCXX_STD
* given data.
*/
void
- resize(size_type __new_size, const value_type& __x)
+ resize(size_type __new_size, value_type __x = value_type())
{
if (__new_size < size())
erase(begin() + __new_size, end());
@@ -428,20 +423,6 @@ namespace _GLIBCXX_STD
}
/**
- * @brief Resizes the %vector to the specified number of elements.
- * @param new_size Number of elements the %vector should contain.
- *
- * This function will resize the %vector to the specified
- * number of elements. If the number is smaller than the
- * %vector's current size the %vector is truncated, otherwise
- * the %vector is extended and new elements are
- * default-constructed.
- */
- void
- resize(size_type __new_size)
- { resize(__new_size, value_type()); }
-
- /**
* Returns the total number of elements that the %vector can
* hold before needing to allocate more memory.
*/
@@ -764,7 +745,7 @@ namespace _GLIBCXX_STD
try
{
std::__uninitialized_copy_a(__first, __last, __result,
- this->get_allocator());
+ _M_get_Tp_allocator());
return __result;
}
catch(...)
@@ -785,7 +766,7 @@ namespace _GLIBCXX_STD
this->_M_impl._M_start = _M_allocate(__n);
this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n;
std::__uninitialized_fill_n_a(this->_M_impl._M_start, __n, __value,
- this->get_allocator());
+ _M_get_Tp_allocator());
this->_M_impl._M_finish = this->_M_impl._M_end_of_storage;
}
@@ -822,7 +803,7 @@ namespace _GLIBCXX_STD
this->_M_impl._M_finish =
std::__uninitialized_copy_a(__first, __last,
this->_M_impl._M_start,
- this->get_allocator());
+ _M_get_Tp_allocator());
}
diff --git a/libstdc++-v3/include/bits/vector.tcc b/libstdc++-v3/include/bits/vector.tcc
index f9f5e5ac8a7..aa1634bbc5e 100644
--- a/libstdc++-v3/include/bits/vector.tcc
+++ b/libstdc++-v3/include/bits/vector.tcc
@@ -77,7 +77,7 @@ namespace _GLIBCXX_STD
this->_M_impl._M_start,
this->_M_impl._M_finish);
std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
- this->get_allocator());
+ _M_get_Tp_allocator());
_M_deallocate(this->_M_impl._M_start,
this->_M_impl._M_end_of_storage
- this->_M_impl._M_start);
@@ -122,7 +122,7 @@ namespace _GLIBCXX_STD
erase(iterator __first, iterator __last)
{
iterator __i(std::copy(__last, end(), __first));
- std::_Destroy(__i, end(), this->get_allocator());
+ std::_Destroy(__i, end(), _M_get_Tp_allocator());
this->_M_impl._M_finish = this->_M_impl._M_finish - (__last - __first);
return __first;
}
@@ -140,7 +140,7 @@ namespace _GLIBCXX_STD
pointer __tmp = _M_allocate_and_copy(__xlen, __x.begin(),
__x.end());
std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
- this->get_allocator());
+ _M_get_Tp_allocator());
_M_deallocate(this->_M_impl._M_start,
this->_M_impl._M_end_of_storage
- this->_M_impl._M_start);
@@ -150,7 +150,7 @@ namespace _GLIBCXX_STD
else if (size() >= __xlen)
{
iterator __i(std::copy(__x.begin(), __x.end(), begin()));
- std::_Destroy(__i, end(), this->get_allocator());
+ std::_Destroy(__i, end(), _M_get_Tp_allocator());
}
else
{
@@ -158,7 +158,7 @@ namespace _GLIBCXX_STD
this->_M_impl._M_start);
std::__uninitialized_copy_a(__x.begin() + size(),
__x.end(), this->_M_impl._M_finish,
- this->get_allocator());
+ _M_get_Tp_allocator());
}
this->_M_impl._M_finish = this->_M_impl._M_start + __xlen;
}
@@ -172,7 +172,7 @@ namespace _GLIBCXX_STD
{
if (__n > capacity())
{
- vector __tmp(__n, __val, get_allocator());
+ vector __tmp(__n, __val, _M_get_Tp_allocator());
__tmp.swap(*this);
}
else if (__n > size())
@@ -180,7 +180,7 @@ namespace _GLIBCXX_STD
std::fill(begin(), end(), __val);
std::__uninitialized_fill_n_a(this->_M_impl._M_finish,
__n - size(), __val,
- this->get_allocator());
+ _M_get_Tp_allocator());
this->_M_impl._M_finish += __n - size();
}
else
@@ -216,7 +216,7 @@ namespace _GLIBCXX_STD
{
pointer __tmp(_M_allocate_and_copy(__len, __first, __last));
std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
- this->get_allocator());
+ _M_get_Tp_allocator());
_M_deallocate(this->_M_impl._M_start,
this->_M_impl._M_end_of_storage
- this->_M_impl._M_start);
@@ -228,7 +228,7 @@ namespace _GLIBCXX_STD
{
iterator __new_finish(std::copy(__first, __last,
this->_M_impl._M_start));
- std::_Destroy(__new_finish, end(), this->get_allocator());
+ std::_Destroy(__new_finish, end(), _M_get_Tp_allocator());
this->_M_impl._M_finish = __new_finish.base();
}
else
@@ -239,7 +239,7 @@ namespace _GLIBCXX_STD
this->_M_impl._M_finish =
std::__uninitialized_copy_a(__mid, __last,
this->_M_impl._M_finish,
- this->get_allocator());
+ _M_get_Tp_allocator());
}
}
@@ -280,22 +280,22 @@ namespace _GLIBCXX_STD
std::__uninitialized_copy_a(iterator(this->_M_impl._M_start),
__position,
__new_start,
- this->get_allocator());
+ _M_get_Tp_allocator());
this->_M_impl.construct(__new_finish.base(), __x);
++__new_finish;
__new_finish =
std::__uninitialized_copy_a(__position,
iterator(this->_M_impl._M_finish),
__new_finish,
- this->get_allocator());
+ _M_get_Tp_allocator());
}
catch(...)
{
- std::_Destroy(__new_start, __new_finish, this->get_allocator());
+ std::_Destroy(__new_start, __new_finish, _M_get_Tp_allocator());
_M_deallocate(__new_start.base(),__len);
__throw_exception_again;
}
- std::_Destroy(begin(), end(), this->get_allocator());
+ std::_Destroy(begin(), end(), _M_get_Tp_allocator());
_M_deallocate(this->_M_impl._M_start,
this->_M_impl._M_end_of_storage
- this->_M_impl._M_start);
@@ -323,7 +323,7 @@ namespace _GLIBCXX_STD
std::__uninitialized_copy_a(this->_M_impl._M_finish - __n,
this->_M_impl._M_finish,
this->_M_impl._M_finish,
- this->get_allocator());
+ _M_get_Tp_allocator());
this->_M_impl._M_finish += __n;
std::copy_backward(__position, __old_finish - __n,
__old_finish);
@@ -334,11 +334,11 @@ namespace _GLIBCXX_STD
std::__uninitialized_fill_n_a(this->_M_impl._M_finish,
__n - __elems_after,
__x_copy,
- this->get_allocator());
+ _M_get_Tp_allocator());
this->_M_impl._M_finish += __n - __elems_after;
std::__uninitialized_copy_a(__position, __old_finish,
this->_M_impl._M_finish,
- this->get_allocator());
+ _M_get_Tp_allocator());
this->_M_impl._M_finish += __elems_after;
std::fill(__position, __old_finish, __x_copy);
}
@@ -361,23 +361,23 @@ namespace _GLIBCXX_STD
__new_finish =
std::__uninitialized_copy_a(begin(), __position,
__new_start,
- this->get_allocator());
+ _M_get_Tp_allocator());
std::__uninitialized_fill_n_a(__new_finish, __n, __x,
- this->get_allocator());
+ _M_get_Tp_allocator());
__new_finish += __n;
__new_finish =
std::__uninitialized_copy_a(__position, end(), __new_finish,
- this->get_allocator());
+ _M_get_Tp_allocator());
}
catch(...)
{
std::_Destroy(__new_start, __new_finish,
- this->get_allocator());
+ _M_get_Tp_allocator());
_M_deallocate(__new_start.base(), __len);
__throw_exception_again;
}
std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
- this->get_allocator());
+ _M_get_Tp_allocator());
_M_deallocate(this->_M_impl._M_start,
this->_M_impl._M_end_of_storage
- this->_M_impl._M_start);
@@ -421,7 +421,7 @@ namespace _GLIBCXX_STD
std::__uninitialized_copy_a(this->_M_impl._M_finish - __n,
this->_M_impl._M_finish,
this->_M_impl._M_finish,
- this->get_allocator());
+ _M_get_Tp_allocator());
this->_M_impl._M_finish += __n;
std::copy_backward(__position, __old_finish - __n,
__old_finish);
@@ -433,11 +433,11 @@ namespace _GLIBCXX_STD
std::advance(__mid, __elems_after);
std::__uninitialized_copy_a(__mid, __last,
this->_M_impl._M_finish,
- this->get_allocator());
+ _M_get_Tp_allocator());
this->_M_impl._M_finish += __n - __elems_after;
std::__uninitialized_copy_a(__position, __old_finish,
this->_M_impl._M_finish,
- this->get_allocator());
+ _M_get_Tp_allocator());
this->_M_impl._M_finish += __elems_after;
std::copy(__first, __mid, __position);
}
@@ -461,25 +461,25 @@ namespace _GLIBCXX_STD
std::__uninitialized_copy_a(iterator(this->_M_impl._M_start),
__position,
__new_start,
- this->get_allocator());
+ _M_get_Tp_allocator());
__new_finish =
std::__uninitialized_copy_a(__first, __last, __new_finish,
- this->get_allocator());
+ _M_get_Tp_allocator());
__new_finish =
std::__uninitialized_copy_a(__position,
iterator(this->_M_impl._M_finish),
__new_finish,
- this->get_allocator());
+ _M_get_Tp_allocator());
}
catch(...)
{
std::_Destroy(__new_start,__new_finish,
- this->get_allocator());
+ _M_get_Tp_allocator());
_M_deallocate(__new_start.base(), __len);
__throw_exception_again;
}
std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
- this->get_allocator());
+ _M_get_Tp_allocator());
_M_deallocate(this->_M_impl._M_start,
this->_M_impl._M_end_of_storage
- this->_M_impl._M_start);
diff --git a/libstdc++-v3/include/c_std/std_cstdlib.h b/libstdc++-v3/include/c_std/std_cstdlib.h
index 3fde655621a..cf91f27b2d3 100644
--- a/libstdc++-v3/include/c_std/std_cstdlib.h
+++ b/libstdc++-v3/include/c_std/std_cstdlib.h
@@ -1,6 +1,6 @@
// -*- C++ -*- forwarding header.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -168,17 +168,14 @@ namespace __gnu_cxx
inline long long
abs(long long __x) { return __x >= 0 ? __x : -__x; }
- inline long long
- llabs(long long __x) { return __x >= 0 ? __x : -__x; }
-
#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
+ using ::llabs;
+
inline lldiv_t
div(long long __n, long long __d)
{ lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; }
- inline lldiv_t
- lldiv(long long __n, long long __d)
- { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; }
+ using ::lldiv;
#endif
#if _GLIBCXX_USE_C99_LONG_LONG_CHECK || _GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
@@ -204,8 +201,8 @@ namespace std
#endif
using __gnu_cxx::_Exit;
using __gnu_cxx::abs;
- using __gnu_cxx::llabs;
#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
+ using __gnu_cxx::llabs;
using __gnu_cxx::div;
using __gnu_cxx::lldiv;
#endif
diff --git a/libstdc++-v3/include/debug/debug.h b/libstdc++-v3/include/debug/debug.h
index f371a6a47ca..7cd08cdeca0 100644
--- a/libstdc++-v3/include/debug/debug.h
+++ b/libstdc++-v3/include/debug/debug.h
@@ -31,191 +31,6 @@
#ifndef _GLIBCXX_DEBUG_DEBUG_H
#define _GLIBCXX_DEBUG_DEBUG_H 1
-/**
- * Macros used by the implementation to verify certain
- * properties. These macros may only be used directly by the debug
- * wrappers. Note that these are macros (instead of the more obviously
- * "correct" choice of making them functions) because we need line and
- * file information at the call site, to minimize the distance between
- * the user error and where the error is reported.
- *
- */
-#define _GLIBCXX_DEBUG_VERIFY(_Condition,_ErrorMessage) \
- do { \
- if (! (_Condition)) \
- ::__gnu_debug::_Error_formatter::_M_at(__FILE__, __LINE__) \
- ._ErrorMessage._M_error(); \
- } while (false)
-
-// Verify that [_First, _Last) forms a valid iterator range.
-#define __glibcxx_check_valid_range(_First,_Last) \
-_GLIBCXX_DEBUG_VERIFY(::__gnu_debug::__valid_range(_First, _Last), \
- _M_message(::__gnu_debug::__msg_valid_range) \
- ._M_iterator(_First, #_First) \
- ._M_iterator(_Last, #_Last))
-
-/** Verify that we can insert into *this with the iterator _Position.
- * Insertion into a container at a specific position requires that
- * the iterator be nonsingular (i.e., either dereferenceable or
- * past-the-end) and that it reference the sequence we are inserting
- * into. Note that this macro is only valid when the container is a
- * _Safe_sequence and the iterator is a _Safe_iterator.
-*/
-#define __glibcxx_check_insert(_Position) \
-_GLIBCXX_DEBUG_VERIFY(!_Position._M_singular(), \
- _M_message(::__gnu_debug::__msg_insert_singular) \
- ._M_sequence(*this, "this") \
- ._M_iterator(_Position, #_Position)); \
-_GLIBCXX_DEBUG_VERIFY(_Position._M_attached_to(this), \
- _M_message(::__gnu_debug::__msg_insert_different) \
- ._M_sequence(*this, "this") \
- ._M_iterator(_Position, #_Position))
-
-/** Verify that we can insert the values in the iterator range
- * [_First, _Last) into *this with the iterator _Position. Insertion
- * into a container at a specific position requires that the iterator
- * be nonsingular (i.e., either dereferenceable or past-the-end),
- * that it reference the sequence we are inserting into, and that the
- * iterator range [_First, Last) is a valid (possibly empty)
- * range. Note that this macro is only valid when the container is a
- * _Safe_sequence and the iterator is a _Safe_iterator.
- *
- * @tbd We would like to be able to check for noninterference of
- * _Position and the range [_First, _Last), but that can't (in
- * general) be done.
-*/
-#define __glibcxx_check_insert_range(_Position,_First,_Last) \
-__glibcxx_check_valid_range(_First,_Last); \
-_GLIBCXX_DEBUG_VERIFY(!_Position._M_singular(), \
- _M_message(::__gnu_debug::__msg_insert_singular) \
- ._M_sequence(*this, "this") \
- ._M_iterator(_Position, #_Position)); \
-_GLIBCXX_DEBUG_VERIFY(_Position._M_attached_to(this), \
- _M_message(::__gnu_debug::__msg_insert_different) \
- ._M_sequence(*this, "this") \
- ._M_iterator(_Position, #_Position))
-
-/** Verify that we can erase the element referenced by the iterator
- * _Position. We can erase the element if the _Position iterator is
- * dereferenceable and references this sequence.
-*/
-#define __glibcxx_check_erase(_Position) \
-_GLIBCXX_DEBUG_VERIFY(_Position._M_dereferenceable(), \
- _M_message(::__gnu_debug::__msg_erase_bad) \
- ._M_sequence(*this, "this") \
- ._M_iterator(_Position, #_Position)); \
-_GLIBCXX_DEBUG_VERIFY(_Position._M_attached_to(this), \
- _M_message(::__gnu_debug::__msg_erase_different) \
- ._M_sequence(*this, "this") \
- ._M_iterator(_Position, #_Position))
-
-/** Verify that we can erase the elements in the iterator range
- * [_First, _Last). We can erase the elements if [_First, _Last) is a
- * valid iterator range within this sequence.
-*/
-#define __glibcxx_check_erase_range(_First,_Last) \
-__glibcxx_check_valid_range(_First,_Last); \
-_GLIBCXX_DEBUG_VERIFY(_First._M_attached_to(this), \
- _M_message(::__gnu_debug::__msg_erase_different) \
- ._M_sequence(*this, "this") \
- ._M_iterator(_First, #_First) \
- ._M_iterator(_Last, #_Last))
-
-// Verify that the subscript _N is less than the container's size.
-#define __glibcxx_check_subscript(_N) \
-_GLIBCXX_DEBUG_VERIFY(_N < this->size(), \
- _M_message(::__gnu_debug::__msg_subscript_oob) \
- ._M_sequence(*this, "this") \
- ._M_integer(_N, #_N) \
- ._M_integer(this->size(), "size"))
-
-// Verify that the container is nonempty
-#define __glibcxx_check_nonempty() \
-_GLIBCXX_DEBUG_VERIFY(! this->empty(), \
- _M_message(::__gnu_debug::__msg_empty) \
- ._M_sequence(*this, "this"))
-
-// Verify that the < operator for elements in the sequence is a
-// StrictWeakOrdering by checking that it is irreflexive.
-#define __glibcxx_check_strict_weak_ordering(_First,_Last) \
-_GLIBCXX_DEBUG_ASSERT(_First == _Last || !(*_First < *_First))
-
-// Verify that the predicate is StrictWeakOrdering by checking that it
-// is irreflexive.
-#define __glibcxx_check_strict_weak_ordering_pred(_First,_Last,_Pred) \
-_GLIBCXX_DEBUG_ASSERT(_First == _Last || !_Pred(*_First, *_First))
-
-
-// Verify that the iterator range [_First, _Last) is sorted
-#define __glibcxx_check_sorted(_First,_Last) \
-__glibcxx_check_valid_range(_First,_Last); \
-__glibcxx_check_strict_weak_ordering(_First,_Last); \
-_GLIBCXX_DEBUG_VERIFY(::__gnu_debug::__check_sorted(_First, _Last), \
- _M_message(::__gnu_debug::__msg_unsorted) \
- ._M_iterator(_First, #_First) \
- ._M_iterator(_Last, #_Last))
-
-/** Verify that the iterator range [_First, _Last) is sorted by the
- predicate _Pred. */
-#define __glibcxx_check_sorted_pred(_First,_Last,_Pred) \
-__glibcxx_check_valid_range(_First,_Last); \
-__glibcxx_check_strict_weak_ordering_pred(_First,_Last,_Pred); \
-_GLIBCXX_DEBUG_VERIFY(::__gnu_debug::__check_sorted(_First, _Last, _Pred), \
- _M_message(::__gnu_debug::__msg_unsorted_pred) \
- ._M_iterator(_First, #_First) \
- ._M_iterator(_Last, #_Last) \
- ._M_string(#_Pred))
-
-/** Verify that the iterator range [_First, _Last) is partitioned
- w.r.t. the value _Value. */
-#define __glibcxx_check_partitioned(_First,_Last,_Value) \
-__glibcxx_check_valid_range(_First,_Last); \
-_GLIBCXX_DEBUG_VERIFY(::__gnu_debug::__check_partitioned(_First, _Last, \
- _Value), \
- _M_message(::__gnu_debug::__msg_unpartitioned) \
- ._M_iterator(_First, #_First) \
- ._M_iterator(_Last, #_Last) \
- ._M_string(#_Value))
-
-/** Verify that the iterator range [_First, _Last) is partitioned
- w.r.t. the value _Value and predicate _Pred. */
-#define __glibcxx_check_partitioned_pred(_First,_Last,_Value,_Pred) \
-__glibcxx_check_valid_range(_First,_Last); \
-_GLIBCXX_DEBUG_VERIFY(::__gnu_debug::__check_partitioned(_First, _Last, \
- _Value, _Pred), \
- _M_message(::__gnu_debug::__msg_unpartitioned_pred) \
- ._M_iterator(_First, #_First) \
- ._M_iterator(_Last, #_Last) \
- ._M_string(#_Pred) \
- ._M_string(#_Value))
-
-// Verify that the iterator range [_First, _Last) is a heap
-#define __glibcxx_check_heap(_First,_Last) \
-__glibcxx_check_valid_range(_First,_Last); \
-_GLIBCXX_DEBUG_VERIFY(::std::__is_heap(_First, _Last), \
- _M_message(::__gnu_debug::__msg_not_heap) \
- ._M_iterator(_First, #_First) \
- ._M_iterator(_Last, #_Last))
-
-/** Verify that the iterator range [_First, _Last) is a heap
- w.r.t. the predicate _Pred. */
-#define __glibcxx_check_heap_pred(_First,_Last,_Pred) \
-__glibcxx_check_valid_range(_First,_Last); \
-_GLIBCXX_DEBUG_VERIFY(::std::__is_heap(_First, _Last, _Pred), \
- _M_message(::__gnu_debug::__msg_not_heap_pred) \
- ._M_iterator(_First, #_First) \
- ._M_iterator(_Last, #_Last) \
- ._M_string(#_Pred))
-
-#ifdef _GLIBCXX_DEBUG_PEDANTIC
-# define __glibcxx_check_string(_String) _GLIBCXX_DEBUG_ASSERT(_String != 0)
-# define __glibcxx_check_string_len(_String,_Len) \
- _GLIBCXX_DEBUG_ASSERT(_String != 0 || _Len == 0)
-#else
-# define __glibcxx_check_string(_String)
-# define __glibcxx_check_string_len(_String,_Len)
-#endif
-
/** Macros used by the implementation outside of debug wrappers to
* verify certain properties. The __glibcxx_requires_xxx macros are
* merely wrappers around the __glibcxx_check_xxx wrappers when we
@@ -223,11 +38,13 @@ _GLIBCXX_DEBUG_VERIFY(::std::__is_heap(_First, _Last, _Pred), \
* release mode so that there is no checking performed in, e.g., the
* standard library algorithms.
*/
+
#ifdef _GLIBCXX_DEBUG
-# define _GLIBCXX_DEBUG_ASSERT(_Condition) assert(_Condition)
+# include <debug/macros.h>
+# define _GLIBCXX_DEBUG_ASSERT(_Condition) _GLIBCXX_DEBUG_ABORT(_Condition)
# ifdef _GLIBCXX_DEBUG_PEDANTIC
-# define _GLIBCXX_DEBUG_PEDASSERT(_Condition) assert(_Condition)
+# define _GLIBCXX_DEBUG_PEDASSERT(_Condition) _GLIBCXX_DEBUG_ABORT(_Condition)
# else
# define _GLIBCXX_DEBUG_PEDASSERT(_Condition)
# endif
@@ -252,6 +69,9 @@ _GLIBCXX_DEBUG_VERIFY(::std::__is_heap(_First, _Last, _Pred), \
# define __glibcxx_requires_string_len(_String,_Len) \
__glibcxx_check_string_len(_String,_Len)
# define __glibcxx_requires_subscript(_N) __glibcxx_check_subscript(_N)
+
+# include <debug/functions.h>
+# include <debug/formatter.h>
#else
# define _GLIBCXX_DEBUG_ASSERT(_Condition)
# define _GLIBCXX_DEBUG_PEDASSERT(_Condition)
@@ -269,263 +89,4 @@ _GLIBCXX_DEBUG_VERIFY(::std::__is_heap(_First, _Last, _Pred), \
# define __glibcxx_requires_subscript(_N)
#endif
-#include <cassert> // TBD: temporary
-
-#include <stddef.h> // for ptrdiff_t
-#include <bits/stl_iterator_base_types.h> // for iterator_traits, categories
-#include <bits/cpp_type_traits.h> // for __is_integer
-
-namespace __gnu_debug
-{
- template<typename _Iterator, typename _Sequence>
- class _Safe_iterator;
-
- // An arbitrary iterator pointer is not singular.
- inline bool
- __check_singular_aux(const void*) { return false; }
-
- // We may have an iterator that derives from _Safe_iterator_base but isn't
- // a _Safe_iterator.
- template<typename _Iterator>
- inline bool
- __check_singular(_Iterator& __x)
- { return __gnu_debug::__check_singular_aux(&__x); }
-
- /** Non-NULL pointers are nonsingular. */
- template<typename _Tp>
- inline bool
- __check_singular(const _Tp* __ptr)
- { return __ptr == 0; }
-
- /** Safe iterators know if they are singular. */
- template<typename _Iterator, typename _Sequence>
- inline bool
- __check_singular(const _Safe_iterator<_Iterator, _Sequence>& __x)
- { return __x._M_singular(); }
-
- /** Assume that some arbitrary iterator is dereferenceable, because we
- can't prove that it isn't. */
- template<typename _Iterator>
- inline bool
- __check_dereferenceable(_Iterator&)
- { return true; }
-
- /** Non-NULL pointers are dereferenceable. */
- template<typename _Tp>
- inline bool
- __check_dereferenceable(const _Tp* __ptr)
- { return __ptr; }
-
- /** Safe iterators know if they are singular. */
- template<typename _Iterator, typename _Sequence>
- inline bool
- __check_dereferenceable(const _Safe_iterator<_Iterator, _Sequence>& __x)
- { return __x._M_dereferenceable(); }
-
- /** If the distance between two random access iterators is
- * nonnegative, assume the range is valid.
- */
- template<typename _RandomAccessIterator>
- inline bool
- __valid_range_aux2(const _RandomAccessIterator& __first,
- const _RandomAccessIterator& __last,
- std::random_access_iterator_tag)
- { return __last - __first >= 0; }
-
- /** Can't test for a valid range with input iterators, because
- * iteration may be destructive. So we just assume that the range
- * is valid.
- */
- template<typename _InputIterator>
- inline bool
- __valid_range_aux2(const _InputIterator&, const _InputIterator&,
- std::input_iterator_tag)
- { return true; }
-
- /** We say that integral types for a valid range, and defer to other
- * routines to realize what to do with integral types instead of
- * iterators.
- */
- template<typename _Integral>
- inline bool
- __valid_range_aux(const _Integral&, const _Integral&, __true_type)
- { return true; }
-
- /** We have iterators, so figure out what kind of iterators that are
- * to see if we can check the range ahead of time.
- */
- template<typename _InputIterator>
- inline bool
- __valid_range_aux(const _InputIterator& __first,
- const _InputIterator& __last, __false_type)
- {
- typedef typename std::iterator_traits<_InputIterator>::iterator_category
- _Category;
- return __gnu_debug::__valid_range_aux2(__first, __last, _Category());
- }
-
- /** Don't know what these iterators are, or if they are even
- * iterators (we may get an integral type for InputIterator), so
- * see if they are integral and pass them on to the next phase
- * otherwise.
- */
- template<typename _InputIterator>
- inline bool
- __valid_range(const _InputIterator& __first, const _InputIterator& __last)
- {
- typedef typename std::__is_integer<_InputIterator>::__type _Integral;
- return __gnu_debug::__valid_range_aux(__first, __last, _Integral());
- }
-
- /** Safe iterators know how to check if they form a valid range. */
- template<typename _Iterator, typename _Sequence>
- inline bool
- __valid_range(const _Safe_iterator<_Iterator, _Sequence>& __first,
- const _Safe_iterator<_Iterator, _Sequence>& __last)
- { return __first._M_valid_range(__last); }
-
- /* Checks that [first, last) is a valid range, and then returns
- * __first. This routine is useful when we can't use a separate
- * assertion statement because, e.g., we are in a constructor.
- */
- template<typename _InputIterator>
- inline _InputIterator
- __check_valid_range(const _InputIterator& __first,
- const _InputIterator& __last)
- {
- _GLIBCXX_DEBUG_ASSERT(__gnu_debug::__valid_range(__first, __last));
- return __first;
- }
-
- /** Checks that __s is non-NULL or __n == 0, and then returns __s. */
- template<typename _CharT, typename _Integer>
- inline const _CharT*
- __check_string(const _CharT* __s, const _Integer& __n)
- {
-#ifdef _GLIBCXX_DEBUG_PEDANTIC
- _GLIBCXX_DEBUG_ASSERT(__s != 0 || __n == 0);
-#endif
- return __s;
- }
-
- /** Checks that __s is non-NULL and then returns __s. */
- template<typename _CharT>
- inline const _CharT*
- __check_string(const _CharT* __s)
- {
-#ifdef _GLIBCXX_DEBUG_PEDANTIC
- _GLIBCXX_DEBUG_ASSERT(__s != 0);
-#endif
- return __s;
- }
-
- // Can't check if an input iterator sequence is sorted, because we
- // can't step through the sequence.
- template<typename _InputIterator>
- inline bool
- __check_sorted_aux(const _InputIterator&, const _InputIterator&,
- std::input_iterator_tag)
- { return true; }
-
- // Can verify if a forward iterator sequence is in fact sorted using
- // std::__is_sorted
- template<typename _ForwardIterator>
- inline bool
- __check_sorted_aux(_ForwardIterator __first, _ForwardIterator __last,
- std::forward_iterator_tag)
- {
- if (__first == __last)
- return true;
-
- _ForwardIterator __next = __first;
- for (++__next; __next != __last; __first = __next, ++__next) {
- if (*__next < *__first)
- return false;
- }
-
- return true;
- }
-
- // Can't check if an input iterator sequence is sorted, because we can't step
- // through the sequence.
- template<typename _InputIterator, typename _Predicate>
- inline bool
- __check_sorted_aux(const _InputIterator&, const _InputIterator&,
- _Predicate, std::input_iterator_tag)
- { return true; }
-
- // Can verify if a forward iterator sequence is in fact sorted using
- // std::__is_sorted
- template<typename _ForwardIterator, typename _Predicate>
- inline bool
- __check_sorted_aux(_ForwardIterator __first, _ForwardIterator __last,
- _Predicate __pred, std::forward_iterator_tag)
- {
- if (__first == __last)
- return true;
-
- _ForwardIterator __next = __first;
- for (++__next; __next != __last; __first = __next, ++__next) {
- if (__pred(*__next, *__first))
- return false;
- }
-
- return true;
- }
-
- // Determine if a sequence is sorted.
- template<typename _InputIterator>
- inline bool
- __check_sorted(const _InputIterator& __first, const _InputIterator& __last)
- {
- typedef typename std::iterator_traits<_InputIterator>::iterator_category
- _Category;
- return __gnu_debug::__check_sorted_aux(__first, __last, _Category());
- }
-
- template<typename _InputIterator, typename _Predicate>
- inline bool
- __check_sorted(const _InputIterator& __first, const _InputIterator& __last,
- _Predicate __pred)
- {
- typedef typename std::iterator_traits<_InputIterator>::iterator_category
- _Category;
- return __gnu_debug::__check_sorted_aux(__first, __last, __pred,
- _Category());
- }
-
- // _GLIBCXX_RESOLVE_LIB_DEFECTS
- // 270. Binary search requirements overly strict
- // Determine if a sequence is partitioned w.r.t. this element.
- template<typename _ForwardIterator, typename _Tp>
- inline bool
- __check_partitioned(_ForwardIterator __first, _ForwardIterator __last,
- const _Tp& __value)
- {
- while (__first != __last && *__first < __value)
- ++__first;
- while (__first != __last && !(*__first < __value))
- ++__first;
- return __first == __last;
- }
-
- // Determine if a sequence is partitioned w.r.t. this element.
- template<typename _ForwardIterator, typename _Tp, typename _Pred>
- inline bool
- __check_partitioned(_ForwardIterator __first, _ForwardIterator __last,
- const _Tp& __value, _Pred __pred)
- {
- while (__first != __last && __pred(*__first, __value))
- ++__first;
- while (__first != __last && !__pred(*__first, __value))
- ++__first;
- return __first == __last;
- }
-} // namespace __gnu_debug
-
-#ifdef _GLIBCXX_DEBUG
-// We need the error formatter
-# include <debug/formatter.h>
-#endif
-
#endif
diff --git a/libstdc++-v3/include/debug/deque b/libstdc++-v3/include/debug/deque
index c39a49c0461..5d87cdaeb34 100644
--- a/libstdc++-v3/include/debug/deque
+++ b/libstdc++-v3/include/debug/deque
@@ -1,6 +1,6 @@
// Debugging deque implementation -*- C++ -*-
-// Copyright (C) 2003, 2004
+// Copyright (C) 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -46,8 +46,8 @@ namespace __gnu_debug_def
typedef __gnu_debug::_Safe_sequence<deque> _Safe_base;
public:
- typedef typename _Allocator::reference reference;
- typedef typename _Allocator::const_reference const_reference;
+ typedef typename _Base::reference reference;
+ typedef typename _Base::const_reference const_reference;
typedef __gnu_debug::_Safe_iterator<typename _Base::iterator,deque>
iterator;
@@ -59,8 +59,8 @@ namespace __gnu_debug_def
typedef _Tp value_type;
typedef _Allocator allocator_type;
- typedef typename _Allocator::pointer pointer;
- typedef typename _Allocator::const_pointer const_pointer;
+ typedef typename _Base::pointer pointer;
+ typedef typename _Base::const_pointer const_pointer;
typedef std::reverse_iterator<iterator> reverse_iterator;
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
diff --git a/libstdc++-v3/include/debug/functions.h b/libstdc++-v3/include/debug/functions.h
new file mode 100644
index 00000000000..28834d4786e
--- /dev/null
+++ b/libstdc++-v3/include/debug/functions.h
@@ -0,0 +1,286 @@
+// Debugging support implementation -*- C++ -*-
+
+// Copyright (C) 2003, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#ifndef _GLIBCXX_DEBUG_FUNCTIONS_H
+#define _GLIBCXX_DEBUG_FUNCTIONS_H 1
+
+#include <stddef.h> // for ptrdiff_t
+#include <bits/stl_iterator_base_types.h> // for iterator_traits, categories
+#include <bits/cpp_type_traits.h> // for __is_integer
+
+namespace __gnu_debug
+{
+ template<typename _Iterator, typename _Sequence>
+ class _Safe_iterator;
+
+ // An arbitrary iterator pointer is not singular.
+ inline bool
+ __check_singular_aux(const void*) { return false; }
+
+ // We may have an iterator that derives from _Safe_iterator_base but isn't
+ // a _Safe_iterator.
+ template<typename _Iterator>
+ inline bool
+ __check_singular(_Iterator& __x)
+ { return __gnu_debug::__check_singular_aux(&__x); }
+
+ /** Non-NULL pointers are nonsingular. */
+ template<typename _Tp>
+ inline bool
+ __check_singular(const _Tp* __ptr)
+ { return __ptr == 0; }
+
+ /** Safe iterators know if they are singular. */
+ template<typename _Iterator, typename _Sequence>
+ inline bool
+ __check_singular(const _Safe_iterator<_Iterator, _Sequence>& __x)
+ { return __x._M_singular(); }
+
+ /** Assume that some arbitrary iterator is dereferenceable, because we
+ can't prove that it isn't. */
+ template<typename _Iterator>
+ inline bool
+ __check_dereferenceable(_Iterator&)
+ { return true; }
+
+ /** Non-NULL pointers are dereferenceable. */
+ template<typename _Tp>
+ inline bool
+ __check_dereferenceable(const _Tp* __ptr)
+ { return __ptr; }
+
+ /** Safe iterators know if they are singular. */
+ template<typename _Iterator, typename _Sequence>
+ inline bool
+ __check_dereferenceable(const _Safe_iterator<_Iterator, _Sequence>& __x)
+ { return __x._M_dereferenceable(); }
+
+ /** If the distance between two random access iterators is
+ * nonnegative, assume the range is valid.
+ */
+ template<typename _RandomAccessIterator>
+ inline bool
+ __valid_range_aux2(const _RandomAccessIterator& __first,
+ const _RandomAccessIterator& __last,
+ std::random_access_iterator_tag)
+ { return __last - __first >= 0; }
+
+ /** Can't test for a valid range with input iterators, because
+ * iteration may be destructive. So we just assume that the range
+ * is valid.
+ */
+ template<typename _InputIterator>
+ inline bool
+ __valid_range_aux2(const _InputIterator&, const _InputIterator&,
+ std::input_iterator_tag)
+ { return true; }
+
+ /** We say that integral types for a valid range, and defer to other
+ * routines to realize what to do with integral types instead of
+ * iterators.
+ */
+ template<typename _Integral>
+ inline bool
+ __valid_range_aux(const _Integral&, const _Integral&, __true_type)
+ { return true; }
+
+ /** We have iterators, so figure out what kind of iterators that are
+ * to see if we can check the range ahead of time.
+ */
+ template<typename _InputIterator>
+ inline bool
+ __valid_range_aux(const _InputIterator& __first,
+ const _InputIterator& __last, __false_type)
+ {
+ typedef typename std::iterator_traits<_InputIterator>::iterator_category
+ _Category;
+ return __gnu_debug::__valid_range_aux2(__first, __last, _Category());
+ }
+
+ /** Don't know what these iterators are, or if they are even
+ * iterators (we may get an integral type for InputIterator), so
+ * see if they are integral and pass them on to the next phase
+ * otherwise.
+ */
+ template<typename _InputIterator>
+ inline bool
+ __valid_range(const _InputIterator& __first, const _InputIterator& __last)
+ {
+ typedef typename std::__is_integer<_InputIterator>::__type _Integral;
+ return __gnu_debug::__valid_range_aux(__first, __last, _Integral());
+ }
+
+ /** Safe iterators know how to check if they form a valid range. */
+ template<typename _Iterator, typename _Sequence>
+ inline bool
+ __valid_range(const _Safe_iterator<_Iterator, _Sequence>& __first,
+ const _Safe_iterator<_Iterator, _Sequence>& __last)
+ { return __first._M_valid_range(__last); }
+
+ /* Checks that [first, last) is a valid range, and then returns
+ * __first. This routine is useful when we can't use a separate
+ * assertion statement because, e.g., we are in a constructor.
+ */
+ template<typename _InputIterator>
+ inline _InputIterator
+ __check_valid_range(const _InputIterator& __first,
+ const _InputIterator& __last)
+ {
+ _GLIBCXX_DEBUG_ASSERT(__gnu_debug::__valid_range(__first, __last));
+ return __first;
+ }
+
+ /** Checks that __s is non-NULL or __n == 0, and then returns __s. */
+ template<typename _CharT, typename _Integer>
+ inline const _CharT*
+ __check_string(const _CharT* __s, const _Integer& __n)
+ {
+#ifdef _GLIBCXX_DEBUG_PEDANTIC
+ _GLIBCXX_DEBUG_ASSERT(__s != 0 || __n == 0);
+#endif
+ return __s;
+ }
+
+ /** Checks that __s is non-NULL and then returns __s. */
+ template<typename _CharT>
+ inline const _CharT*
+ __check_string(const _CharT* __s)
+ {
+#ifdef _GLIBCXX_DEBUG_PEDANTIC
+ _GLIBCXX_DEBUG_ASSERT(__s != 0);
+#endif
+ return __s;
+ }
+
+ // Can't check if an input iterator sequence is sorted, because we
+ // can't step through the sequence.
+ template<typename _InputIterator>
+ inline bool
+ __check_sorted_aux(const _InputIterator&, const _InputIterator&,
+ std::input_iterator_tag)
+ { return true; }
+
+ // Can verify if a forward iterator sequence is in fact sorted using
+ // std::__is_sorted
+ template<typename _ForwardIterator>
+ inline bool
+ __check_sorted_aux(_ForwardIterator __first, _ForwardIterator __last,
+ std::forward_iterator_tag)
+ {
+ if (__first == __last)
+ return true;
+
+ _ForwardIterator __next = __first;
+ for (++__next; __next != __last; __first = __next, ++__next) {
+ if (*__next < *__first)
+ return false;
+ }
+
+ return true;
+ }
+
+ // Can't check if an input iterator sequence is sorted, because we can't step
+ // through the sequence.
+ template<typename _InputIterator, typename _Predicate>
+ inline bool
+ __check_sorted_aux(const _InputIterator&, const _InputIterator&,
+ _Predicate, std::input_iterator_tag)
+ { return true; }
+
+ // Can verify if a forward iterator sequence is in fact sorted using
+ // std::__is_sorted
+ template<typename _ForwardIterator, typename _Predicate>
+ inline bool
+ __check_sorted_aux(_ForwardIterator __first, _ForwardIterator __last,
+ _Predicate __pred, std::forward_iterator_tag)
+ {
+ if (__first == __last)
+ return true;
+
+ _ForwardIterator __next = __first;
+ for (++__next; __next != __last; __first = __next, ++__next) {
+ if (__pred(*__next, *__first))
+ return false;
+ }
+
+ return true;
+ }
+
+ // Determine if a sequence is sorted.
+ template<typename _InputIterator>
+ inline bool
+ __check_sorted(const _InputIterator& __first, const _InputIterator& __last)
+ {
+ typedef typename std::iterator_traits<_InputIterator>::iterator_category
+ _Category;
+ return __gnu_debug::__check_sorted_aux(__first, __last, _Category());
+ }
+
+ template<typename _InputIterator, typename _Predicate>
+ inline bool
+ __check_sorted(const _InputIterator& __first, const _InputIterator& __last,
+ _Predicate __pred)
+ {
+ typedef typename std::iterator_traits<_InputIterator>::iterator_category
+ _Category;
+ return __gnu_debug::__check_sorted_aux(__first, __last, __pred,
+ _Category());
+ }
+
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ // 270. Binary search requirements overly strict
+ // Determine if a sequence is partitioned w.r.t. this element.
+ template<typename _ForwardIterator, typename _Tp>
+ inline bool
+ __check_partitioned(_ForwardIterator __first, _ForwardIterator __last,
+ const _Tp& __value)
+ {
+ while (__first != __last && *__first < __value)
+ ++__first;
+ while (__first != __last && !(*__first < __value))
+ ++__first;
+ return __first == __last;
+ }
+
+ // Determine if a sequence is partitioned w.r.t. this element.
+ template<typename _ForwardIterator, typename _Tp, typename _Pred>
+ inline bool
+ __check_partitioned(_ForwardIterator __first, _ForwardIterator __last,
+ const _Tp& __value, _Pred __pred)
+ {
+ while (__first != __last && __pred(*__first, __value))
+ ++__first;
+ while (__first != __last && !__pred(*__first, __value))
+ ++__first;
+ return __first == __last;
+ }
+} // namespace __gnu_debug
+
+#endif
diff --git a/libstdc++-v3/include/debug/hash_map b/libstdc++-v3/include/debug/hash_map
index 570a9af6b69..d4d149756cd 100644
--- a/libstdc++-v3/include/debug/hash_map
+++ b/libstdc++-v3/include/debug/hash_map
@@ -1,6 +1,6 @@
// Debugging hash_map/hash_multimap implementation -*- C++ -*-
-// Copyright (C) 2003
+// Copyright (C) 2003, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -31,8 +31,8 @@
#ifndef _GLIBCXX_DEBUG_HASH_MAP
#define _GLIBCXX_DEBUG_HASH_MAP 1
-#include <hash_map>
-#include <debug/dbg_hash_map.h>
-#include <debug/dbg_hash_multimap.h>
+#include <ext/hash_map>
+#include <debug/hash_map.h>
+#include <debug/hash_multimap.h>
#endif
diff --git a/libstdc++-v3/include/debug/hash_set b/libstdc++-v3/include/debug/hash_set
index 282cba27613..c600f07c160 100644
--- a/libstdc++-v3/include/debug/hash_set
+++ b/libstdc++-v3/include/debug/hash_set
@@ -1,6 +1,6 @@
// Debugging hash_set/hash_multiset implementation -*- C++ -*-
-// Copyright (C) 2003
+// Copyright (C) 2003, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -31,8 +31,8 @@
#ifndef _GLIBCXX_DEBUG_HASH_SET
#define _GLIBCXX_DEBUG_HASH_SET 1
-#include <hash_set>
-#include <debug/dbg_hash_set.h>
-#include <debug/dbg_hash_multiset.h>
+#include <ext/hash_set>
+#include <debug/hash_set.h>
+#include <debug/hash_multiset.h>
#endif
diff --git a/libstdc++-v3/include/debug/list b/libstdc++-v3/include/debug/list
index 556c9d9acff..745f14ea7b7 100644
--- a/libstdc++-v3/include/debug/list
+++ b/libstdc++-v3/include/debug/list
@@ -1,6 +1,6 @@
// Debugging list implementation -*- C++ -*-
-// Copyright (C) 2003, 2004
+// Copyright (C) 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -47,8 +47,8 @@ namespace __gnu_debug_def
typedef __gnu_debug::_Safe_sequence<list> _Safe_base;
public:
- typedef typename _Allocator::reference reference;
- typedef typename _Allocator::const_reference const_reference;
+ typedef typename _Base::reference reference;
+ typedef typename _Base::const_reference const_reference;
typedef __gnu_debug::_Safe_iterator<typename _Base::iterator, list>
iterator;
@@ -60,8 +60,8 @@ namespace __gnu_debug_def
typedef _Tp value_type;
typedef _Allocator allocator_type;
- typedef typename _Allocator::pointer pointer;
- typedef typename _Allocator::const_pointer const_pointer;
+ typedef typename _Base::pointer pointer;
+ typedef typename _Base::const_pointer const_pointer;
typedef std::reverse_iterator<iterator> reverse_iterator;
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
diff --git a/libstdc++-v3/include/debug/macros.h b/libstdc++-v3/include/debug/macros.h
new file mode 100644
index 00000000000..3fe60c9df9a
--- /dev/null
+++ b/libstdc++-v3/include/debug/macros.h
@@ -0,0 +1,229 @@
+// Debugging support implementation -*- C++ -*-
+
+// Copyright (C) 2003, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#ifndef _GLIBCXX_DEBUG_MACROS_H
+#define _GLIBCXX_DEBUG_MACROS_H 1
+
+/**
+ * Macros used by the implementation to verify certain
+ * properties. These macros may only be used directly by the debug
+ * wrappers. Note that these are macros (instead of the more obviously
+ * "correct" choice of making them functions) because we need line and
+ * file information at the call site, to minimize the distance between
+ * the user error and where the error is reported.
+ *
+ */
+namespace __gnu_debug
+{ void __fancy_abort(const char*, int, const char*, const char*); }
+#define _GLIBCXX_DEBUG_ABORT(_Condition) \
+ do { \
+ if (! (_Condition)) \
+ ::__gnu_debug::__fancy_abort(__FILE__, __LINE__, \
+ __PRETTY_FUNCTION__, \
+ #_Condition); \
+ } while (false)
+
+#define _GLIBCXX_DEBUG_VERIFY(_Condition,_ErrorMessage) \
+ do { \
+ if (! (_Condition)) \
+ ::__gnu_debug::_Error_formatter::_M_at(__FILE__, __LINE__) \
+ ._ErrorMessage._M_error(); \
+ } while (false)
+
+// Verify that [_First, _Last) forms a valid iterator range.
+#define __glibcxx_check_valid_range(_First,_Last) \
+_GLIBCXX_DEBUG_VERIFY(::__gnu_debug::__valid_range(_First, _Last), \
+ _M_message(::__gnu_debug::__msg_valid_range) \
+ ._M_iterator(_First, #_First) \
+ ._M_iterator(_Last, #_Last))
+
+/** Verify that we can insert into *this with the iterator _Position.
+ * Insertion into a container at a specific position requires that
+ * the iterator be nonsingular (i.e., either dereferenceable or
+ * past-the-end) and that it reference the sequence we are inserting
+ * into. Note that this macro is only valid when the container is a
+ * _Safe_sequence and the iterator is a _Safe_iterator.
+*/
+#define __glibcxx_check_insert(_Position) \
+_GLIBCXX_DEBUG_VERIFY(!_Position._M_singular(), \
+ _M_message(::__gnu_debug::__msg_insert_singular) \
+ ._M_sequence(*this, "this") \
+ ._M_iterator(_Position, #_Position)); \
+_GLIBCXX_DEBUG_VERIFY(_Position._M_attached_to(this), \
+ _M_message(::__gnu_debug::__msg_insert_different) \
+ ._M_sequence(*this, "this") \
+ ._M_iterator(_Position, #_Position))
+
+/** Verify that we can insert the values in the iterator range
+ * [_First, _Last) into *this with the iterator _Position. Insertion
+ * into a container at a specific position requires that the iterator
+ * be nonsingular (i.e., either dereferenceable or past-the-end),
+ * that it reference the sequence we are inserting into, and that the
+ * iterator range [_First, Last) is a valid (possibly empty)
+ * range. Note that this macro is only valid when the container is a
+ * _Safe_sequence and the iterator is a _Safe_iterator.
+ *
+ * @tbd We would like to be able to check for noninterference of
+ * _Position and the range [_First, _Last), but that can't (in
+ * general) be done.
+*/
+#define __glibcxx_check_insert_range(_Position,_First,_Last) \
+__glibcxx_check_valid_range(_First,_Last); \
+_GLIBCXX_DEBUG_VERIFY(!_Position._M_singular(), \
+ _M_message(::__gnu_debug::__msg_insert_singular) \
+ ._M_sequence(*this, "this") \
+ ._M_iterator(_Position, #_Position)); \
+_GLIBCXX_DEBUG_VERIFY(_Position._M_attached_to(this), \
+ _M_message(::__gnu_debug::__msg_insert_different) \
+ ._M_sequence(*this, "this") \
+ ._M_iterator(_Position, #_Position))
+
+/** Verify that we can erase the element referenced by the iterator
+ * _Position. We can erase the element if the _Position iterator is
+ * dereferenceable and references this sequence.
+*/
+#define __glibcxx_check_erase(_Position) \
+_GLIBCXX_DEBUG_VERIFY(_Position._M_dereferenceable(), \
+ _M_message(::__gnu_debug::__msg_erase_bad) \
+ ._M_sequence(*this, "this") \
+ ._M_iterator(_Position, #_Position)); \
+_GLIBCXX_DEBUG_VERIFY(_Position._M_attached_to(this), \
+ _M_message(::__gnu_debug::__msg_erase_different) \
+ ._M_sequence(*this, "this") \
+ ._M_iterator(_Position, #_Position))
+
+/** Verify that we can erase the elements in the iterator range
+ * [_First, _Last). We can erase the elements if [_First, _Last) is a
+ * valid iterator range within this sequence.
+*/
+#define __glibcxx_check_erase_range(_First,_Last) \
+__glibcxx_check_valid_range(_First,_Last); \
+_GLIBCXX_DEBUG_VERIFY(_First._M_attached_to(this), \
+ _M_message(::__gnu_debug::__msg_erase_different) \
+ ._M_sequence(*this, "this") \
+ ._M_iterator(_First, #_First) \
+ ._M_iterator(_Last, #_Last))
+
+// Verify that the subscript _N is less than the container's size.
+#define __glibcxx_check_subscript(_N) \
+_GLIBCXX_DEBUG_VERIFY(_N < this->size(), \
+ _M_message(::__gnu_debug::__msg_subscript_oob) \
+ ._M_sequence(*this, "this") \
+ ._M_integer(_N, #_N) \
+ ._M_integer(this->size(), "size"))
+
+// Verify that the container is nonempty
+#define __glibcxx_check_nonempty() \
+_GLIBCXX_DEBUG_VERIFY(! this->empty(), \
+ _M_message(::__gnu_debug::__msg_empty) \
+ ._M_sequence(*this, "this"))
+
+// Verify that the < operator for elements in the sequence is a
+// StrictWeakOrdering by checking that it is irreflexive.
+#define __glibcxx_check_strict_weak_ordering(_First,_Last) \
+_GLIBCXX_DEBUG_ASSERT(_First == _Last || !(*_First < *_First))
+
+// Verify that the predicate is StrictWeakOrdering by checking that it
+// is irreflexive.
+#define __glibcxx_check_strict_weak_ordering_pred(_First,_Last,_Pred) \
+_GLIBCXX_DEBUG_ASSERT(_First == _Last || !_Pred(*_First, *_First))
+
+
+// Verify that the iterator range [_First, _Last) is sorted
+#define __glibcxx_check_sorted(_First,_Last) \
+__glibcxx_check_valid_range(_First,_Last); \
+__glibcxx_check_strict_weak_ordering(_First,_Last); \
+_GLIBCXX_DEBUG_VERIFY(::__gnu_debug::__check_sorted(_First, _Last), \
+ _M_message(::__gnu_debug::__msg_unsorted) \
+ ._M_iterator(_First, #_First) \
+ ._M_iterator(_Last, #_Last))
+
+/** Verify that the iterator range [_First, _Last) is sorted by the
+ predicate _Pred. */
+#define __glibcxx_check_sorted_pred(_First,_Last,_Pred) \
+__glibcxx_check_valid_range(_First,_Last); \
+__glibcxx_check_strict_weak_ordering_pred(_First,_Last,_Pred); \
+_GLIBCXX_DEBUG_VERIFY(::__gnu_debug::__check_sorted(_First, _Last, _Pred), \
+ _M_message(::__gnu_debug::__msg_unsorted_pred) \
+ ._M_iterator(_First, #_First) \
+ ._M_iterator(_Last, #_Last) \
+ ._M_string(#_Pred))
+
+/** Verify that the iterator range [_First, _Last) is partitioned
+ w.r.t. the value _Value. */
+#define __glibcxx_check_partitioned(_First,_Last,_Value) \
+__glibcxx_check_valid_range(_First,_Last); \
+_GLIBCXX_DEBUG_VERIFY(::__gnu_debug::__check_partitioned(_First, _Last, \
+ _Value), \
+ _M_message(::__gnu_debug::__msg_unpartitioned) \
+ ._M_iterator(_First, #_First) \
+ ._M_iterator(_Last, #_Last) \
+ ._M_string(#_Value))
+
+/** Verify that the iterator range [_First, _Last) is partitioned
+ w.r.t. the value _Value and predicate _Pred. */
+#define __glibcxx_check_partitioned_pred(_First,_Last,_Value,_Pred) \
+__glibcxx_check_valid_range(_First,_Last); \
+_GLIBCXX_DEBUG_VERIFY(::__gnu_debug::__check_partitioned(_First, _Last, \
+ _Value, _Pred), \
+ _M_message(::__gnu_debug::__msg_unpartitioned_pred) \
+ ._M_iterator(_First, #_First) \
+ ._M_iterator(_Last, #_Last) \
+ ._M_string(#_Pred) \
+ ._M_string(#_Value))
+
+// Verify that the iterator range [_First, _Last) is a heap
+#define __glibcxx_check_heap(_First,_Last) \
+__glibcxx_check_valid_range(_First,_Last); \
+_GLIBCXX_DEBUG_VERIFY(::std::__is_heap(_First, _Last), \
+ _M_message(::__gnu_debug::__msg_not_heap) \
+ ._M_iterator(_First, #_First) \
+ ._M_iterator(_Last, #_Last))
+
+/** Verify that the iterator range [_First, _Last) is a heap
+ w.r.t. the predicate _Pred. */
+#define __glibcxx_check_heap_pred(_First,_Last,_Pred) \
+__glibcxx_check_valid_range(_First,_Last); \
+_GLIBCXX_DEBUG_VERIFY(::std::__is_heap(_First, _Last, _Pred), \
+ _M_message(::__gnu_debug::__msg_not_heap_pred) \
+ ._M_iterator(_First, #_First) \
+ ._M_iterator(_Last, #_Last) \
+ ._M_string(#_Pred))
+
+#ifdef _GLIBCXX_DEBUG_PEDANTIC
+# define __glibcxx_check_string(_String) _GLIBCXX_DEBUG_ASSERT(_String != 0)
+# define __glibcxx_check_string_len(_String,_Len) \
+ _GLIBCXX_DEBUG_ASSERT(_String != 0 || _Len == 0)
+#else
+# define __glibcxx_check_string(_String)
+# define __glibcxx_check_string_len(_String,_Len)
+#endif
+
+#endif
diff --git a/libstdc++-v3/include/debug/map.h b/libstdc++-v3/include/debug/map.h
index 017158479d1..75ae2f4bcf3 100644
--- a/libstdc++-v3/include/debug/map.h
+++ b/libstdc++-v3/include/debug/map.h
@@ -1,6 +1,6 @@
// Debugging map implementation -*- C++ -*-
-// Copyright (C) 2003, 2004
+// Copyright (C) 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -53,8 +53,8 @@ namespace __gnu_debug_def
typedef std::pair<const _Key, _Tp> value_type;
typedef _Compare key_compare;
typedef _Allocator allocator_type;
- typedef typename _Allocator::reference reference;
- typedef typename _Allocator::const_reference const_reference;
+ typedef typename _Base::reference reference;
+ typedef typename _Base::const_reference const_reference;
typedef __gnu_debug::_Safe_iterator<typename _Base::iterator, map>
iterator;
@@ -63,8 +63,8 @@ namespace __gnu_debug_def
typedef typename _Base::size_type size_type;
typedef typename _Base::difference_type difference_type;
- typedef typename _Allocator::pointer pointer;
- typedef typename _Allocator::const_pointer const_pointer;
+ typedef typename _Base::pointer pointer;
+ typedef typename _Base::const_pointer const_pointer;
typedef std::reverse_iterator<iterator> reverse_iterator;
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
diff --git a/libstdc++-v3/include/debug/multimap.h b/libstdc++-v3/include/debug/multimap.h
index 4de1e3b58f4..d5dbe5c2f71 100644
--- a/libstdc++-v3/include/debug/multimap.h
+++ b/libstdc++-v3/include/debug/multimap.h
@@ -1,6 +1,6 @@
// Debugging multimap implementation -*- C++ -*-
-// Copyright (C) 2003, 2004
+// Copyright (C) 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -53,8 +53,8 @@ namespace __gnu_debug_def
typedef std::pair<const _Key, _Tp> value_type;
typedef _Compare key_compare;
typedef _Allocator allocator_type;
- typedef typename _Allocator::reference reference;
- typedef typename _Allocator::const_reference const_reference;
+ typedef typename _Base::reference reference;
+ typedef typename _Base::const_reference const_reference;
typedef __gnu_debug::_Safe_iterator<typename _Base::iterator, multimap>
iterator;
@@ -63,8 +63,8 @@ namespace __gnu_debug_def
typedef typename _Base::size_type size_type;
typedef typename _Base::difference_type difference_type;
- typedef typename _Allocator::pointer pointer;
- typedef typename _Allocator::const_pointer const_pointer;
+ typedef typename _Base::pointer pointer;
+ typedef typename _Base::const_pointer const_pointer;
typedef std::reverse_iterator<iterator> reverse_iterator;
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
diff --git a/libstdc++-v3/include/debug/multiset.h b/libstdc++-v3/include/debug/multiset.h
index 92042fef68c..879e2feb59a 100644
--- a/libstdc++-v3/include/debug/multiset.h
+++ b/libstdc++-v3/include/debug/multiset.h
@@ -1,6 +1,6 @@
// Debugging multiset implementation -*- C++ -*-
-// Copyright (C) 2003, 2004
+// Copyright (C) 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -53,8 +53,8 @@ namespace __gnu_debug_def
typedef _Compare key_compare;
typedef _Compare value_compare;
typedef _Allocator allocator_type;
- typedef typename _Allocator::reference reference;
- typedef typename _Allocator::const_reference const_reference;
+ typedef typename _Base::reference reference;
+ typedef typename _Base::const_reference const_reference;
typedef __gnu_debug::_Safe_iterator<typename _Base::iterator, multiset>
iterator;
@@ -63,8 +63,8 @@ namespace __gnu_debug_def
typedef typename _Base::size_type size_type;
typedef typename _Base::difference_type difference_type;
- typedef typename _Allocator::pointer pointer;
- typedef typename _Allocator::const_pointer const_pointer;
+ typedef typename _Base::pointer pointer;
+ typedef typename _Base::const_pointer const_pointer;
typedef std::reverse_iterator<iterator> reverse_iterator;
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
diff --git a/libstdc++-v3/include/debug/safe_iterator.h b/libstdc++-v3/include/debug/safe_iterator.h
index 1f5b0f65e45..8d96f397c85 100644
--- a/libstdc++-v3/include/debug/safe_iterator.h
+++ b/libstdc++-v3/include/debug/safe_iterator.h
@@ -31,10 +31,12 @@
#ifndef _GLIBCXX_DEBUG_SAFE_ITERATOR_H
#define _GLIBCXX_DEBUG_SAFE_ITERATOR_H 1
-#include <bits/stl_pair.h>
#include <debug/debug.h>
+#include <debug/macros.h>
+#include <debug/functions.h>
#include <debug/formatter.h>
#include <debug/safe_base.h>
+#include <bits/stl_pair.h>
#include <bits/cpp_type_traits.h>
namespace __gnu_debug
@@ -46,7 +48,8 @@ namespace __gnu_debug
* _Safe_iterators can be determined singular or non-singular via
* _Safe_iterator_base.
*/
- inline bool __check_singular_aux(const _Safe_iterator_base* __x)
+ inline bool
+ __check_singular_aux(const _Safe_iterator_base* __x)
{ return __x->_M_singular(); }
/** \brief Safe iterator wrapper.
diff --git a/libstdc++-v3/include/debug/safe_sequence.h b/libstdc++-v3/include/debug/safe_sequence.h
index f050530a997..a1577b4b4ee 100644
--- a/libstdc++-v3/include/debug/safe_sequence.h
+++ b/libstdc++-v3/include/debug/safe_sequence.h
@@ -1,6 +1,6 @@
// Safe sequence implementation -*- C++ -*-
-// Copyright (C) 2003, 2004
+// Copyright (C) 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -32,6 +32,8 @@
#define _GLIBCXX_DEBUG_SAFE_SEQUENCE_H 1
#include <debug/debug.h>
+#include <debug/macros.h>
+#include <debug/functions.h>
#include <debug/safe_base.h>
namespace __gnu_debug
diff --git a/libstdc++-v3/include/debug/set.h b/libstdc++-v3/include/debug/set.h
index 8656cb0aff6..f6fd451e1b9 100644
--- a/libstdc++-v3/include/debug/set.h
+++ b/libstdc++-v3/include/debug/set.h
@@ -1,6 +1,6 @@
// Debugging set implementation -*- C++ -*-
-// Copyright (C) 2003, 2004
+// Copyright (C) 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -53,8 +53,8 @@ namespace __gnu_debug_def
typedef _Compare key_compare;
typedef _Compare value_compare;
typedef _Allocator allocator_type;
- typedef typename _Allocator::reference reference;
- typedef typename _Allocator::const_reference const_reference;
+ typedef typename _Base::reference reference;
+ typedef typename _Base::const_reference const_reference;
typedef __gnu_debug::_Safe_iterator<typename _Base::iterator, set>
iterator;
@@ -63,8 +63,8 @@ namespace __gnu_debug_def
typedef typename _Base::size_type size_type;
typedef typename _Base::difference_type difference_type;
- typedef typename _Allocator::pointer pointer;
- typedef typename _Allocator::const_pointer const_pointer;
+ typedef typename _Base::pointer pointer;
+ typedef typename _Base::const_pointer const_pointer;
typedef std::reverse_iterator<iterator> reverse_iterator;
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
diff --git a/libstdc++-v3/include/debug/string b/libstdc++-v3/include/debug/string
index a91c004e937..26a1582d3d8 100644
--- a/libstdc++-v3/include/debug/string
+++ b/libstdc++-v3/include/debug/string
@@ -1,6 +1,6 @@
// Debugging string implementation -*- C++ -*-
-// Copyright (C) 2003
+// Copyright (C) 2003, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -37,7 +37,8 @@
namespace __gnu_debug
{
- template<typename _CharT, typename _Traits, typename _Allocator>
+template<typename _CharT, typename _Traits = std::char_traits<_CharT>,
+ typename _Allocator = std::allocator<_CharT> >
class basic_string
: public std::basic_string<_CharT, _Traits, _Allocator>,
public __gnu_debug::_Safe_sequence<basic_string<_CharT, _Traits,
@@ -51,12 +52,12 @@ namespace __gnu_debug
typedef _Traits traits_type;
typedef typename _Traits::char_type value_type;
typedef _Allocator allocator_type;
- typedef typename _Allocator::size_type size_type;
- typedef typename _Allocator::difference_type difference_type;
- typedef typename _Allocator::reference reference;
- typedef typename _Allocator::const_reference const_reference;
- typedef typename _Allocator::pointer pointer;
- typedef typename _Allocator::const_pointer const_pointer;
+ typedef typename _Base::size_type size_type;
+ typedef typename _Base::difference_type difference_type;
+ typedef typename _Base::reference reference;
+ typedef typename _Base::const_reference const_reference;
+ typedef typename _Base::pointer pointer;
+ typedef typename _Base::const_pointer const_pointer;
typedef __gnu_debug::_Safe_iterator<typename _Base::iterator, basic_string>
iterator;
@@ -213,7 +214,16 @@ namespace __gnu_debug
reference
operator[](size_type __pos)
{
+#ifdef _GLIBCXX_DEBUG_PEDANTIC
__glibcxx_check_subscript(__pos);
+#else
+ // as an extension v3 allows s[s.size()] when s is non-const.
+ _GLIBCXX_DEBUG_VERIFY(__pos <= this->size(),
+ _M_message(::__gnu_debug::__msg_subscript_oob)
+ ._M_sequence(*this, "this")
+ ._M_integer(__pos, "__pos")
+ ._M_integer(this->size(), "size"));
+#endif
return _M_base()[__pos];
}
@@ -996,6 +1006,13 @@ namespace __gnu_debug
__str._M_invalidate_all();
return __res;
}
+
+ typedef basic_string<char> string;
+
+#ifdef _GLIBCXX_USE_WCHAR_T
+ typedef basic_string<wchar_t> wstring;
+#endif
+
} // namespace __gnu_debug
#endif
diff --git a/libstdc++-v3/include/debug/vector b/libstdc++-v3/include/debug/vector
index 0cc2997b975..05c15ec18d3 100644
--- a/libstdc++-v3/include/debug/vector
+++ b/libstdc++-v3/include/debug/vector
@@ -1,6 +1,6 @@
// Debugging vector implementation -*- C++ -*-
-// Copyright (C) 2003, 2004
+// Copyright (C) 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -32,9 +32,9 @@
#define _GLIBCXX_DEBUG_VECTOR 1
#include <vector>
+#include <utility>
#include <debug/safe_sequence.h>
#include <debug/safe_iterator.h>
-#include <utility>
namespace __gnu_debug_def
{
@@ -64,8 +64,8 @@ namespace __gnu_debug_def
typedef _Tp value_type;
typedef _Allocator allocator_type;
- typedef typename _Allocator::pointer pointer;
- typedef typename _Allocator::const_pointer const_pointer;
+ typedef typename _Base::pointer pointer;
+ typedef typename _Base::const_pointer const_pointer;
typedef std::reverse_iterator<iterator> reverse_iterator;
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
diff --git a/libstdc++-v3/include/ext/array_allocator.h b/libstdc++-v3/include/ext/array_allocator.h
index 27169193306..8689d9da26a 100644
--- a/libstdc++-v3/include/ext/array_allocator.h
+++ b/libstdc++-v3/include/ext/array_allocator.h
@@ -121,10 +121,9 @@ namespace __gnu_cxx
allocate(size_type __n, const void* = 0)
{
static size_type __array_used;
- if (_M_array == 0
- || __array_used + __n > sizeof(*_M_array) / sizeof(_Tp))
+ if (_M_array == 0 || __array_used + __n > _M_array->size())
std::__throw_bad_alloc();
- pointer __ret = reinterpret_cast<_Tp*>(_M_array) + __array_used;
+ pointer __ret = _M_array->begin() + __array_used;
__array_used += __n;
return __ret;
}
diff --git a/libstdc++-v3/include/ext/hash_map b/libstdc++-v3/include/ext/hash_map
index eff10e0272b..20eebeb29a2 100644
--- a/libstdc++-v3/include/ext/hash_map
+++ b/libstdc++-v3/include/ext/hash_map
@@ -1,6 +1,6 @@
// Hashing map implementation -*- C++ -*-
-// Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -617,4 +617,9 @@ namespace std
{ return *this; }
};
} // namespace std
+
+#ifdef _GLIBCXX_DEBUG
+# include <debug/hash_map>
+#endif
+
#endif
diff --git a/libstdc++-v3/include/ext/hash_set b/libstdc++-v3/include/ext/hash_set
index f6e791a500f..120bfc5ae4b 100644
--- a/libstdc++-v3/include/ext/hash_set
+++ b/libstdc++-v3/include/ext/hash_set
@@ -1,6 +1,6 @@
// Hashing set implementation -*- C++ -*-
-// Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -583,4 +583,9 @@ namespace std
operator++(int) { return *this; }
};
} // namespace std
+
+#ifdef _GLIBCXX_DEBUG
+# include <debug/hash_set>
+#endif
+
#endif
diff --git a/libstdc++-v3/include/std/std_complex.h b/libstdc++-v3/include/std/std_complex.h
index 6c1e0033730..80020756789 100644
--- a/libstdc++-v3/include/std/std_complex.h
+++ b/libstdc++-v3/include/std/std_complex.h
@@ -749,7 +749,7 @@ namespace std
__complex_log(const complex<_Tp>& __z)
{ return complex<_Tp>(log(std::abs(__z)), std::arg(__z)); }
- /*
+#if _GLIBCXX_USE_C99_COMPLEX
inline __complex__ float
__complex_log(__complex__ float __z) { return __builtin_clogf(__z); }
@@ -758,14 +758,16 @@ namespace std
inline __complex__ long double
__complex_log(const __complex__ long double& __z)
- { return __builtin_clogl(__z); } */
+ { return __builtin_clogl(__z); }
- // FIXME: Currently we don't use built-ins for log() because of some
- // obscure user name-space issues. So, we use the generic version
- // which is why we don't use __z.__rep() in the call below.
+ template<typename _Tp>
+ inline complex<_Tp>
+ log(const complex<_Tp>& __z) { return __complex_log(__z.__rep()); }
+#else
template<typename _Tp>
inline complex<_Tp>
log(const complex<_Tp>& __z) { return __complex_log(__z); }
+#endif
template<typename _Tp>
inline complex<_Tp>
diff --git a/libstdc++-v3/include/std/std_sstream.h b/libstdc++-v3/include/std/std_sstream.h
index 66215b2f730..52c416f85b9 100644
--- a/libstdc++-v3/include/std/std_sstream.h
+++ b/libstdc++-v3/include/std/std_sstream.h
@@ -1,6 +1,6 @@
// String based streams -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2002, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2002, 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -127,16 +127,18 @@ namespace std
__string_type
str() const
{
+ __string_type __ret;
if (this->pptr())
{
// The current egptr() may not be the actual string end.
if (this->pptr() > this->egptr())
- return __string_type(this->pbase(), this->pptr());
+ __ret = __string_type(this->pbase(), this->pptr());
else
- return __string_type(this->pbase(), this->egptr());
+ __ret = __string_type(this->pbase(), this->egptr());
}
else
- return _M_string;
+ __ret = _M_string;
+ return __ret;
}
/**
@@ -151,7 +153,7 @@ namespace std
{
// Cannot use _M_string = __s, since v3 strings are COW.
_M_string.assign(__s.data(), __s.size());
- _M_stringbuf_init(this->_M_mode);
+ _M_stringbuf_init(_M_mode);
}
protected:
@@ -159,14 +161,25 @@ namespace std
void
_M_stringbuf_init(ios_base::openmode __mode)
{
- this->_M_mode = __mode;
-
+ _M_mode = __mode;
__size_type __len = 0;
- if (this->_M_mode & (ios_base::ate | ios_base::app))
+ if (_M_mode & (ios_base::ate | ios_base::app))
__len = _M_string.size();
_M_sync(const_cast<char_type*>(_M_string.data()), 0, __len);
}
+ virtual streamsize
+ showmanyc()
+ {
+ streamsize __ret = -1;
+ if (_M_mode & ios_base::in)
+ {
+ _M_update_egptr();
+ __ret = this->egptr() - this->gptr();
+ }
+ return __ret;
+ }
+
virtual int_type
underflow();
@@ -223,8 +236,8 @@ namespace std
void
_M_sync(char_type* __base, __size_type __i, __size_type __o)
{
- const bool __testin = this->_M_mode & ios_base::in;
- const bool __testout = this->_M_mode & ios_base::out;
+ const bool __testin = _M_mode & ios_base::in;
+ const bool __testout = _M_mode & ios_base::out;
char_type* __end = __base + _M_string.size();
if (__testin)
@@ -252,8 +265,7 @@ namespace std
void
_M_update_egptr()
{
- const bool __testin = this->_M_mode & ios_base::in;
-
+ const bool __testin = _M_mode & ios_base::in;
if (this->pptr() && this->pptr() > this->egptr())
if (__testin)
this->setg(this->eback(), this->gptr(), this->pptr());
diff --git a/libstdc++-v3/include/tr1/hashtable b/libstdc++-v3/include/tr1/hashtable
index c015e9edf69..add5f5bde15 100644
--- a/libstdc++-v3/include/tr1/hashtable
+++ b/libstdc++-v3/include/tr1/hashtable
@@ -64,40 +64,39 @@
//----------------------------------------------------------------------
// General utilities
-namespace Internal {
-template <bool Flag, typename IfTrue, typename IfFalse> struct IF;
-
-template <typename IfTrue, typename IfFalse>
-struct IF <true, IfTrue, IfFalse> { typedef IfTrue type; };
-
-template <typename IfTrue, typename IfFalse>
-struct IF <false, IfTrue, IfFalse> { typedef IfFalse type; };
-
-// Helper function: return distance(first, last) for forward
-// iterators, or 0 for input iterators.
-
-template <class Iterator>
-inline typename std::iterator_traits<Iterator>::difference_type
-distance_fw (Iterator first, Iterator last, std::input_iterator_tag)
-{
- return 0;
-}
-
-template <class Iterator>
-inline typename std::iterator_traits<Iterator>::difference_type
-distance_fw (Iterator first, Iterator last, std::forward_iterator_tag)
-{
- return std::distance(first, last);
-}
-
-template <class Iterator>
-inline typename std::iterator_traits<Iterator>::difference_type
-distance_fw (Iterator first, Iterator last)
+namespace Internal
{
- typedef typename std::iterator_traits<Iterator>::iterator_category tag;
- return distance_fw(first, last, tag());
-}
+ template<bool Flag, typename IfTrue, typename IfFalse>
+ struct IF;
+ template<typename IfTrue, typename IfFalse>
+ struct IF<true, IfTrue, IfFalse>
+ { typedef IfTrue type; };
+
+ template <typename IfTrue, typename IfFalse>
+ struct IF<false, IfTrue, IfFalse>
+ { typedef IfFalse type; };
+
+ // Helper function: return distance(first, last) for forward
+ // iterators, or 0 for input iterators.
+ template<class Iterator>
+ inline typename std::iterator_traits<Iterator>::difference_type
+ distance_fw(Iterator first, Iterator last, std::input_iterator_tag)
+ { return 0; }
+
+ template<class Iterator>
+ inline typename std::iterator_traits<Iterator>::difference_type
+ distance_fw(Iterator first, Iterator last, std::forward_iterator_tag)
+ { return std::distance(first, last); }
+
+ template<class Iterator>
+ inline typename std::iterator_traits<Iterator>::difference_type
+ distance_fw(Iterator first, Iterator last)
+ {
+ typedef typename std::iterator_traits<Iterator>::iterator_category tag;
+ return distance_fw(first, last, tag());
+ }
+
} // namespace Internal
//----------------------------------------------------------------------
@@ -109,140 +108,187 @@ distance_fw (Iterator first, Iterator last)
// nodes also store a hash code. In some cases (e.g. strings) this may
// be a performance win.
-namespace Internal {
-
-template <typename Value, bool cache_hash_code> struct hash_node;
-
-template <typename Value>
-struct hash_node<Value, true> {
- Value m_v;
- std::size_t hash_code;
- hash_node* m_next;
-};
-
-template <typename Value>
-struct hash_node<Value, false> {
- Value m_v;
- hash_node* m_next;
-};
-
-// Local iterators, used to iterate within a bucket but not between
-// buckets.
-
-template <typename Value, bool cache>
-struct node_iterator_base {
- node_iterator_base(hash_node<Value, cache>* p) : m_cur(p) { }
- void incr() { m_cur = m_cur->m_next; }
-
- hash_node<Value, cache>* m_cur;
-};
-
-template <typename Value, bool cache>
-inline bool operator== (const node_iterator_base<Value, cache>& x,
- const node_iterator_base<Value, cache>& y)
+namespace Internal
{
- return x.m_cur == y.m_cur;
-}
-
-template <typename Value, bool cache>
-inline bool operator!= (const node_iterator_base<Value, cache>& x,
- const node_iterator_base<Value, cache>& y)
-{
- return x.m_cur != y.m_cur;
-}
-
-template <typename Value, bool is_const, bool cache>
-struct node_iterator : public node_iterator_base<Value, cache> {
- typedef Value value_type;
- typedef typename IF<is_const, const Value*, Value*>::type pointer;
- typedef typename IF<is_const, const Value&, Value&>::type reference;
- typedef std::ptrdiff_t difference_type;
- typedef std::forward_iterator_tag iterator_category;
-
- explicit node_iterator (hash_node<Value, cache>* p = 0)
- : node_iterator_base<Value, cache>(p) { }
- node_iterator (const node_iterator<Value, true, cache>& x)
- : node_iterator_base<Value, cache>(x.m_cur) { }
-
- reference operator*() const { return this->m_cur->m_v; }
- pointer operator->() const { return &this->m_cur->m_v; }
-
- node_iterator& operator++() { this->incr(); return *this; }
- node_iterator operator++(int)
- { node_iterator tmp(*this); this->incr(); return tmp; }
-};
-
-template <typename Value, bool cache>
-struct hashtable_iterator_base {
- hashtable_iterator_base(hash_node<Value, cache>* node,
- hash_node<Value, cache>** bucket)
- : m_cur_node (node), m_cur_bucket (bucket)
- { }
+ template<typename Value, bool cache_hash_code>
+ struct hash_node;
+
+ template<typename Value>
+ struct hash_node<Value, true>
+ {
+ Value m_v;
+ std::size_t hash_code;
+ hash_node* m_next;
+ };
+
+ template<typename Value>
+ struct hash_node<Value, false>
+ {
+ Value m_v;
+ hash_node* m_next;
+ };
+
+ // Local iterators, used to iterate within a bucket but not between
+ // buckets.
+
+ template<typename Value, bool cache>
+ struct node_iterator_base
+ {
+ node_iterator_base(hash_node<Value, cache>* p)
+ : m_cur(p) { }
+
+ void
+ incr()
+ { m_cur = m_cur->m_next; }
+
+ hash_node<Value, cache>* m_cur;
+ };
+
+ template<typename Value, bool cache>
+ inline bool
+ operator==(const node_iterator_base<Value, cache>& x,
+ const node_iterator_base<Value, cache>& y)
+ { return x.m_cur == y.m_cur; }
+
+ template<typename Value, bool cache>
+ inline bool
+ operator!=(const node_iterator_base<Value, cache>& x,
+ const node_iterator_base<Value, cache>& y)
+ { return x.m_cur != y.m_cur; }
+
+ template<typename Value, bool is_const, bool cache>
+ struct node_iterator
+ : public node_iterator_base<Value, cache>
+ {
+ typedef Value value_type;
+ typedef typename IF<is_const, const Value*, Value*>::type pointer;
+ typedef typename IF<is_const, const Value&, Value&>::type reference;
+ typedef std::ptrdiff_t difference_type;
+ typedef std::forward_iterator_tag iterator_category;
+
+ explicit
+ node_iterator(hash_node<Value, cache>* p = 0)
+ : node_iterator_base<Value, cache>(p) { }
+
+ node_iterator(const node_iterator<Value, true, cache>& x)
+ : node_iterator_base<Value, cache>(x.m_cur) { }
+
+ reference
+ operator*() const
+ { return this->m_cur->m_v; }
+
+ pointer
+ operator->() const
+ { return &this->m_cur->m_v; }
+
+ node_iterator&
+ operator++()
+ {
+ this->incr();
+ return *this;
+ }
+
+ node_iterator
+ operator++(int)
+ {
+ node_iterator tmp(*this);
+ this->incr();
+ return tmp;
+ }
+ };
+
+ template<typename Value, bool cache>
+ struct hashtable_iterator_base
+ {
+ hashtable_iterator_base(hash_node<Value, cache>* node,
+ hash_node<Value, cache>** bucket)
+ : m_cur_node(node), m_cur_bucket(bucket)
+ { }
+
+ void
+ incr()
+ {
+ m_cur_node = m_cur_node->m_next;
+ if (!m_cur_node)
+ m_incr_bucket();
+ }
- void incr() {
- m_cur_node = m_cur_node->m_next;
- if (!m_cur_node)
+ void
m_incr_bucket();
- }
-
- void m_incr_bucket();
-
- hash_node<Value, cache>* m_cur_node;
- hash_node<Value, cache>** m_cur_bucket;
-};
-
-// Global iterators, used for arbitrary iteration within a hash
-// table. Larger and more expensive than local iterators.
-
-template <typename Value, bool cache>
-void hashtable_iterator_base<Value, cache>::m_incr_bucket()
-{
- ++m_cur_bucket;
-
- // This loop requires the bucket array to have a non-null sentinel
- while (!*m_cur_bucket)
- ++m_cur_bucket;
- m_cur_node = *m_cur_bucket;
-}
-
-template <typename Value, bool cache>
-inline bool operator== (const hashtable_iterator_base<Value, cache>& x,
- const hashtable_iterator_base<Value, cache>& y)
-{
- return x.m_cur_node == y.m_cur_node;
-}
+ hash_node<Value, cache>* m_cur_node;
+ hash_node<Value, cache>** m_cur_bucket;
+ };
+
+ // Global iterators, used for arbitrary iteration within a hash
+ // table. Larger and more expensive than local iterators.
+ template<typename Value, bool cache>
+ void
+ hashtable_iterator_base<Value, cache>::
+ m_incr_bucket()
+ {
+ ++m_cur_bucket;
+
+ // This loop requires the bucket array to have a non-null sentinel.
+ while (!*m_cur_bucket)
+ ++m_cur_bucket;
+ m_cur_node = *m_cur_bucket;
+ }
-template <typename Value, bool cache>
-inline bool operator!= (const hashtable_iterator_base<Value, cache>& x,
- const hashtable_iterator_base<Value, cache>& y)
-{
- return x.m_cur_node != y.m_cur_node;
-}
+ template<typename Value, bool cache>
+ inline bool
+ operator==(const hashtable_iterator_base<Value, cache>& x,
+ const hashtable_iterator_base<Value, cache>& y)
+ { return x.m_cur_node == y.m_cur_node; }
+
+ template<typename Value, bool cache>
+ inline bool
+ operator!=(const hashtable_iterator_base<Value, cache>& x,
+ const hashtable_iterator_base<Value, cache>& y)
+ { return x.m_cur_node != y.m_cur_node; }
+
+ template<typename Value, bool is_const, bool cache>
+ struct hashtable_iterator
+ : public hashtable_iterator_base<Value, cache>
+ {
+ typedef Value value_type;
+ typedef typename IF<is_const, const Value*, Value*>::type pointer;
+ typedef typename IF<is_const, const Value&, Value&>::type reference;
+ typedef std::ptrdiff_t difference_type;
+ typedef std::forward_iterator_tag iterator_category;
+
+ hashtable_iterator(hash_node<Value, cache>* p,
+ hash_node<Value, cache>** b)
+ : hashtable_iterator_base<Value, cache>(p, b) { }
+
+ hashtable_iterator(hash_node<Value, cache>** b)
+ : hashtable_iterator_base<Value, cache>(*b, b) { }
+
+ hashtable_iterator(const hashtable_iterator<Value, true, cache>& x)
+ : hashtable_iterator_base<Value, cache>(x.m_cur_node, x.m_cur_bucket) { }
-template <typename Value, bool is_const, bool cache>
-struct hashtable_iterator : public hashtable_iterator_base<Value, cache>
-{
- typedef Value value_type;
- typedef typename IF<is_const, const Value*, Value*>::type pointer;
- typedef typename IF<is_const, const Value&, Value&>::type reference;
- typedef std::ptrdiff_t difference_type;
- typedef std::forward_iterator_tag iterator_category;
-
- hashtable_iterator (hash_node<Value, cache>* p, hash_node<Value, cache>** b)
- : hashtable_iterator_base<Value, cache>(p, b) { }
- hashtable_iterator (hash_node<Value, cache>** b)
- : hashtable_iterator_base<Value, cache>(*b, b) { }
- hashtable_iterator (const hashtable_iterator<Value, true, cache>& x)
- : hashtable_iterator_base<Value, cache>(x.m_cur_node, x.m_cur_bucket) { }
-
- reference operator*() const { return this->m_cur_node->m_v; }
- pointer operator->() const { return &this->m_cur_node->m_v; }
-
- hashtable_iterator& operator++() { this->incr(); return *this; }
- hashtable_iterator operator++(int)
- { hashtable_iterator tmp(*this); this->incr(); return tmp; }
-};
+ reference
+ operator*() const
+ { return this->m_cur_node->m_v; }
+
+ pointer
+ operator->() const
+ { return &this->m_cur_node->m_v; }
+
+ hashtable_iterator&
+ operator++()
+ {
+ this->incr();
+ return *this;
+ }
+
+ hashtable_iterator
+ operator++(int)
+ {
+ hashtable_iterator tmp(*this);
+ this->incr();
+ return tmp; }
+ };
} // namespace Internal
@@ -250,193 +296,218 @@ struct hashtable_iterator : public hashtable_iterator_base<Value, cache>
// Many of class template hashtable's template parameters are policy
// classes. These are defaults for the policies.
-namespace Internal {
-
-// The two key extraction policies used by the *set and *map variants.
-template <typename T>
-struct identity {
- T operator()(const T& t) const { return t; }
-};
-
-template <typename Pair>
-struct extract1st {
- typename Pair::first_type operator()(const Pair& p) const { return p.first; }
-};
-
-// Default range hashing function: use division to fold a large number
-// into the range [0, N).
-struct mod_range_hashing
+namespace Internal
{
- typedef std::size_t first_argument_type;
- typedef std::size_t second_argument_type;
- typedef std::size_t result_type;
+ // The two key extraction policies used by the *set and *map variants.
+ template<typename T>
+ struct identity
+ {
+ T
+ operator()(const T& t) const
+ { return t; }
+ };
+
+ template<typename Pair>
+ struct extract1st
+ {
+ typename Pair::first_type
+ operator()(const Pair& p) const
+ { return p.first; }
+ };
+
+ // Default range hashing function: use division to fold a large number
+ // into the range [0, N).
+ struct mod_range_hashing
+ {
+ typedef std::size_t first_argument_type;
+ typedef std::size_t second_argument_type;
+ typedef std::size_t result_type;
- result_type operator() (first_argument_type r, second_argument_type N) const
+ result_type
+ operator() (first_argument_type r, second_argument_type N) const
{ return r % N; }
-};
-
-// Default ranged hash function H. In principle it should be a
-// function object composed from objects of type H1 and H2 such that
-// h(k, N) = h2(h1(k), N), but that would mean making extra copies of
-// h1 and h2. So instead we'll just use a tag to tell class template
-// hashtable to do that composition.
-struct default_ranged_hash { };
+ };
-// Default value for rehash policy. Bucket size is (usually) the
-// smallest prime that keeps the load factor small enough.
+ // Default ranged hash function H. In principle it should be a
+ // function object composed from objects of type H1 and H2 such that
+ // h(k, N) = h2(h1(k), N), but that would mean making extra copies of
+ // h1 and h2. So instead we'll just use a tag to tell class template
+ // hashtable to do that composition.
+ struct default_ranged_hash { };
-struct prime_rehash_policy
-{
- prime_rehash_policy (float z = 1.0);
-
- float max_load_factor() const;
-
- // Return a bucket size no smaller than n.
- std::size_t next_bkt (std::size_t n) const;
-
- // Return a bucket count appropriate for n elements
- std::size_t bkt_for_elements (std::size_t n) const;
-
- // n_bkt is current bucket count, n_elt is current element count,
- // and n_ins is number of elements to be inserted. Do we need to
- // increase bucket count? If so, return make_pair(true, n), where n
- // is the new bucket count. If not, return make_pair(false, 0).
- std::pair<bool, std::size_t>
- need_rehash (std::size_t n_bkt, std::size_t n_elt, std::size_t n_ins) const;
-
- float m_max_load_factor;
- float m_growth_factor;
- mutable std::size_t m_next_resize;
-};
-
-// XXX This is a hack. prime_rehash_policy's member functions, and
-// certainly the list of primes, should be defined in a .cc file.
-// We're temporarily putting them in a header because we don't have a
-// place to put TR1 .cc files yet. There's no good reason for any of
-// prime_rehash_policy's member functions to be inline, and there's
-// certainly no good reason for X<> to exist at all.
-
-struct lt {
- template <typename X, typename Y> bool operator()(X x, Y y) { return x < y; }
-};
-
-template <int dummy>
-struct X {
- static const int n_primes = 256;
- static const unsigned long primes[n_primes + 1];
-};
-
-template <int dummy>
-const int X<dummy>::n_primes;
-
-template <int dummy>
-const unsigned long X<dummy>::primes[n_primes + 1] =
+ // Default value for rehash policy. Bucket size is (usually) the
+ // smallest prime that keeps the load factor small enough.
+ struct prime_rehash_policy
{
- 2ul, 3ul, 5ul, 7ul, 11ul, 13ul, 17ul, 19ul, 23ul, 29ul, 31ul,
- 37ul, 41ul, 43ul, 47ul, 53ul, 59ul, 61ul, 67ul, 71ul, 73ul, 79ul,
- 83ul, 89ul, 97ul, 103ul, 109ul, 113ul, 127ul, 137ul, 139ul, 149ul,
- 157ul, 167ul, 179ul, 193ul, 199ul, 211ul, 227ul, 241ul, 257ul,
- 277ul, 293ul, 313ul, 337ul, 359ul, 383ul, 409ul, 439ul, 467ul,
- 503ul, 541ul, 577ul, 619ul, 661ul, 709ul, 761ul, 823ul, 887ul,
- 953ul, 1031ul, 1109ul, 1193ul, 1289ul, 1381ul, 1493ul, 1613ul,
- 1741ul, 1879ul, 2029ul, 2179ul, 2357ul, 2549ul, 2753ul, 2971ul,
- 3209ul, 3469ul, 3739ul, 4027ul, 4349ul, 4703ul, 5087ul, 5503ul,
- 5953ul, 6427ul, 6949ul, 7517ul, 8123ul, 8783ul, 9497ul, 10273ul,
- 11113ul, 12011ul, 12983ul, 14033ul, 15173ul, 16411ul, 17749ul,
- 19183ul, 20753ul, 22447ul, 24281ul, 26267ul, 28411ul, 30727ul,
- 33223ul, 35933ul, 38873ul, 42043ul, 45481ul, 49201ul, 53201ul,
- 57557ul, 62233ul, 67307ul, 72817ul, 78779ul, 85229ul, 92203ul,
- 99733ul, 107897ul, 116731ul, 126271ul, 136607ul, 147793ul,
- 159871ul, 172933ul, 187091ul, 202409ul, 218971ul, 236897ul,
- 256279ul, 277261ul, 299951ul, 324503ul, 351061ul, 379787ul,
- 410857ul, 444487ul, 480881ul, 520241ul, 562841ul, 608903ul,
- 658753ul, 712697ul, 771049ul, 834181ul, 902483ul, 976369ul,
- 1056323ul, 1142821ul, 1236397ul, 1337629ul, 1447153ul, 1565659ul,
- 1693859ul, 1832561ul, 1982627ul, 2144977ul, 2320627ul, 2510653ul,
- 2716249ul, 2938679ul, 3179303ul, 3439651ul, 3721303ul, 4026031ul,
- 4355707ul, 4712381ul, 5098259ul, 5515729ul, 5967347ul, 6456007ul,
- 6984629ul, 7556579ul, 8175383ul, 8844859ul, 9569143ul, 10352717ul,
- 11200489ul, 12117689ul, 13109983ul, 14183539ul, 15345007ul,
- 16601593ul, 17961079ul, 19431899ul, 21023161ul, 22744717ul,
- 24607243ul, 26622317ul, 28802401ul, 31160981ul, 33712729ul,
- 36473443ul, 39460231ul, 42691603ul, 46187573ul, 49969847ul,
- 54061849ul, 58488943ul, 63278561ul, 68460391ul, 74066549ul,
- 80131819ul, 86693767ul, 93793069ul, 101473717ul, 109783337ul,
- 118773397ul, 128499677ul, 139022417ul, 150406843ul, 162723577ul,
- 176048909ul, 190465427ul, 206062531ul, 222936881ul, 241193053ul,
- 260944219ul, 282312799ul, 305431229ul, 330442829ul, 357502601ul,
- 386778277ul, 418451333ul, 452718089ul, 489790921ul, 529899637ul,
- 573292817ul, 620239453ul, 671030513ul, 725980837ul, 785430967ul,
- 849749479ul, 919334987ul, 994618837ul, 1076067617ul, 1164186217ul,
- 1259520799ul, 1362662261ul, 1474249943ul, 1594975441ul,
- 1725587117ul, 1866894511ul, 2019773507ul, 2185171673ul,
- 2364114217ul, 2557710269ul, 2767159799ul, 2993761039ul,
- 3238918481ul, 3504151727ul, 3791104843ul, 4101556399ul,
- 4294967291ul,
- 4294967291ul // sentinel so we don't have to test result of lower_bound
+ prime_rehash_policy(float z = 1.0);
+
+ float
+ max_load_factor() const;
+
+ // Return a bucket size no smaller than n.
+ std::size_t
+ next_bkt(std::size_t n) const;
+
+ // Return a bucket count appropriate for n elements
+ std::size_t
+ bkt_for_elements(std::size_t n) const;
+
+ // n_bkt is current bucket count, n_elt is current element count,
+ // and n_ins is number of elements to be inserted. Do we need to
+ // increase bucket count? If so, return make_pair(true, n), where n
+ // is the new bucket count. If not, return make_pair(false, 0).
+ std::pair<bool, std::size_t>
+ need_rehash(std::size_t n_bkt, std::size_t n_elt, std::size_t n_ins) const;
+
+ float m_max_load_factor;
+ float m_growth_factor;
+ mutable std::size_t m_next_resize;
};
-inline prime_rehash_policy::prime_rehash_policy (float z)
- : m_max_load_factor(z),
- m_growth_factor (2.f),
- m_next_resize (0)
-{ }
-
-inline float prime_rehash_policy::max_load_factor() const
-{
- return m_max_load_factor;
-}
+ // XXX This is a hack. prime_rehash_policy's member functions, and
+ // certainly the list of primes, should be defined in a .cc file.
+ // We're temporarily putting them in a header because we don't have a
+ // place to put TR1 .cc files yet. There's no good reason for any of
+ // prime_rehash_policy's member functions to be inline, and there's
+ // certainly no good reason for X<> to exist at all.
+
+ struct lt
+ {
+ template<typename X, typename Y>
+ bool
+ operator()(X x, Y y)
+ { return x < y; }
+ };
-// Return a prime no smaller than n.
-inline std::size_t prime_rehash_policy::next_bkt (std::size_t n) const
-{
- const unsigned long* const last = X<0>::primes + X<0>::n_primes;
- const unsigned long* p = std::lower_bound (X<0>::primes, last, n);
- m_next_resize = static_cast<std::size_t>(std::ceil(*p * m_max_load_factor));
- return *p;
-}
+ template<int dummy>
+ struct X
+ {
+ static const int n_primes = 256;
+ static const unsigned long primes[n_primes + 1];
+ };
+
+ template<int dummy>
+ const int X<dummy>::n_primes;
+
+ template<int dummy>
+ const unsigned long X<dummy>::primes[n_primes + 1] =
+ {
+ 2ul, 3ul, 5ul, 7ul, 11ul, 13ul, 17ul, 19ul, 23ul, 29ul, 31ul,
+ 37ul, 41ul, 43ul, 47ul, 53ul, 59ul, 61ul, 67ul, 71ul, 73ul, 79ul,
+ 83ul, 89ul, 97ul, 103ul, 109ul, 113ul, 127ul, 137ul, 139ul, 149ul,
+ 157ul, 167ul, 179ul, 193ul, 199ul, 211ul, 227ul, 241ul, 257ul,
+ 277ul, 293ul, 313ul, 337ul, 359ul, 383ul, 409ul, 439ul, 467ul,
+ 503ul, 541ul, 577ul, 619ul, 661ul, 709ul, 761ul, 823ul, 887ul,
+ 953ul, 1031ul, 1109ul, 1193ul, 1289ul, 1381ul, 1493ul, 1613ul,
+ 1741ul, 1879ul, 2029ul, 2179ul, 2357ul, 2549ul, 2753ul, 2971ul,
+ 3209ul, 3469ul, 3739ul, 4027ul, 4349ul, 4703ul, 5087ul, 5503ul,
+ 5953ul, 6427ul, 6949ul, 7517ul, 8123ul, 8783ul, 9497ul, 10273ul,
+ 11113ul, 12011ul, 12983ul, 14033ul, 15173ul, 16411ul, 17749ul,
+ 19183ul, 20753ul, 22447ul, 24281ul, 26267ul, 28411ul, 30727ul,
+ 33223ul, 35933ul, 38873ul, 42043ul, 45481ul, 49201ul, 53201ul,
+ 57557ul, 62233ul, 67307ul, 72817ul, 78779ul, 85229ul, 92203ul,
+ 99733ul, 107897ul, 116731ul, 126271ul, 136607ul, 147793ul,
+ 159871ul, 172933ul, 187091ul, 202409ul, 218971ul, 236897ul,
+ 256279ul, 277261ul, 299951ul, 324503ul, 351061ul, 379787ul,
+ 410857ul, 444487ul, 480881ul, 520241ul, 562841ul, 608903ul,
+ 658753ul, 712697ul, 771049ul, 834181ul, 902483ul, 976369ul,
+ 1056323ul, 1142821ul, 1236397ul, 1337629ul, 1447153ul, 1565659ul,
+ 1693859ul, 1832561ul, 1982627ul, 2144977ul, 2320627ul, 2510653ul,
+ 2716249ul, 2938679ul, 3179303ul, 3439651ul, 3721303ul, 4026031ul,
+ 4355707ul, 4712381ul, 5098259ul, 5515729ul, 5967347ul, 6456007ul,
+ 6984629ul, 7556579ul, 8175383ul, 8844859ul, 9569143ul, 10352717ul,
+ 11200489ul, 12117689ul, 13109983ul, 14183539ul, 15345007ul,
+ 16601593ul, 17961079ul, 19431899ul, 21023161ul, 22744717ul,
+ 24607243ul, 26622317ul, 28802401ul, 31160981ul, 33712729ul,
+ 36473443ul, 39460231ul, 42691603ul, 46187573ul, 49969847ul,
+ 54061849ul, 58488943ul, 63278561ul, 68460391ul, 74066549ul,
+ 80131819ul, 86693767ul, 93793069ul, 101473717ul, 109783337ul,
+ 118773397ul, 128499677ul, 139022417ul, 150406843ul, 162723577ul,
+ 176048909ul, 190465427ul, 206062531ul, 222936881ul, 241193053ul,
+ 260944219ul, 282312799ul, 305431229ul, 330442829ul, 357502601ul,
+ 386778277ul, 418451333ul, 452718089ul, 489790921ul, 529899637ul,
+ 573292817ul, 620239453ul, 671030513ul, 725980837ul, 785430967ul,
+ 849749479ul, 919334987ul, 994618837ul, 1076067617ul, 1164186217ul,
+ 1259520799ul, 1362662261ul, 1474249943ul, 1594975441ul,
+ 1725587117ul, 1866894511ul, 2019773507ul, 2185171673ul,
+ 2364114217ul, 2557710269ul, 2767159799ul, 2993761039ul,
+ 3238918481ul, 3504151727ul, 3791104843ul, 4101556399ul,
+ 4294967291ul,
+ 4294967291ul // sentinel so we don't have to test result of lower_bound
+ };
+
+ inline
+ prime_rehash_policy::
+ prime_rehash_policy(float z)
+ : m_max_load_factor(z), m_growth_factor(2.f), m_next_resize(0)
+ { }
-// Return the smallest prime p such that alpha p >= n, where alpha
-// is the load factor.
-inline std::size_t prime_rehash_policy::bkt_for_elements (std::size_t n) const
-{
- const unsigned long* const last = X<0>::primes + X<0>::n_primes;
- const float min_bkts = n / m_max_load_factor;
- const unsigned long* p = std::lower_bound (X<0>::primes, last, min_bkts, lt());
- m_next_resize = static_cast<std::size_t>(std::ceil(*p * m_max_load_factor));
- return *p;
-}
+ inline float
+ prime_rehash_policy::
+ max_load_factor() const
+ { return m_max_load_factor; }
-// Finds the smallest prime p such that alpha p > n_elt + n_ins.
-// If p > n_bkt, return make_pair(true, p); otherwise return
-// make_pair(false, 0). In principle this isn't very different from
-// bkt_for_elements.
+ // Return a prime no smaller than n.
+ inline std::size_t
+ prime_rehash_policy::
+ next_bkt(std::size_t n) const
+ {
+ const unsigned long* const last = X<0>::primes + X<0>::n_primes;
+ const unsigned long* p = std::lower_bound (X<0>::primes, last, n);
+ m_next_resize = static_cast<std::size_t>(std::ceil(*p * m_max_load_factor));
+ return *p;
+ }
-// The only tricky part is that we're caching the element count at
-// which we need to rehash, so we don't have to do a floating-point
-// multiply for every insertion.
+ // Return the smallest prime p such that alpha p >= n, where alpha
+ // is the load factor.
+ inline std::size_t
+ prime_rehash_policy::
+ bkt_for_elements(std::size_t n) const
+ {
+ const unsigned long* const last = X<0>::primes + X<0>::n_primes;
+ const float min_bkts = n / m_max_load_factor;
+ const unsigned long* p = std::lower_bound (X<0>::primes, last,
+ min_bkts, lt());
+ m_next_resize = static_cast<std::size_t>(std::ceil(*p * m_max_load_factor));
+ return *p;
+ }
-inline std::pair<bool, std::size_t>
-prime_rehash_policy
-::need_rehash (std::size_t n_bkt, std::size_t n_elt, std::size_t n_ins) const
-{
- if (n_elt + n_ins > m_next_resize) {
- float min_bkts = (float(n_ins) + float(n_elt)) / m_max_load_factor;
- if (min_bkts > n_bkt) {
- min_bkts = std::max (min_bkts, m_growth_factor * n_bkt);
- const unsigned long* const last = X<0>::primes + X<0>::n_primes;
- const unsigned long* p = std::lower_bound (X<0>::primes, last, min_bkts, lt());
- m_next_resize = static_cast<std::size_t>(std::ceil(*p * m_max_load_factor));
- return std::make_pair(true, *p);
- }
- else {
- m_next_resize = static_cast<std::size_t>(std::ceil(n_bkt * m_max_load_factor));
+ // Finds the smallest prime p such that alpha p > n_elt + n_ins.
+ // If p > n_bkt, return make_pair(true, p); otherwise return
+ // make_pair(false, 0). In principle this isn't very different from
+ // bkt_for_elements.
+
+ // The only tricky part is that we're caching the element count at
+ // which we need to rehash, so we don't have to do a floating-point
+ // multiply for every insertion.
+
+ inline std::pair<bool, std::size_t>
+ prime_rehash_policy::
+ need_rehash(std::size_t n_bkt, std::size_t n_elt, std::size_t n_ins) const
+ {
+ if (n_elt + n_ins > m_next_resize)
+ {
+ float min_bkts = (float(n_ins) + float(n_elt)) / m_max_load_factor;
+ if (min_bkts > n_bkt)
+ {
+ min_bkts = std::max (min_bkts, m_growth_factor * n_bkt);
+ const unsigned long* const last = X<0>::primes + X<0>::n_primes;
+ const unsigned long* p = std::lower_bound (X<0>::primes, last,
+ min_bkts, lt());
+ m_next_resize =
+ static_cast<std::size_t>(std::ceil(*p * m_max_load_factor));
+ return std::make_pair(true, *p);
+ }
+ else
+ {
+ m_next_resize =
+ static_cast<std::size_t>(std::ceil(n_bkt * m_max_load_factor));
+ return std::make_pair(false, 0);
+ }
+ }
+ else
return std::make_pair(false, 0);
- }
}
- else
- return std::make_pair(false, 0);
-}
} // namespace Internal
@@ -449,983 +520,1182 @@ prime_rehash_policy
// need to access other members of class template hashtable, so we use
// the "curiously recurring template pattern" for them.
-namespace Internal {
-
-// class template map_base. If the hashtable has a value type of the
-// form pair<T1, T2> and a key extraction policy that returns the
-// first part of the pair, the hashtable gets a mapped_type typedef.
-// If it satisfies those criteria and also has unique keys, then it
-// also gets an operator[].
-
-template <typename K, typename V, typename Ex, bool unique, typename Hashtable>
-struct map_base { };
-
-template <typename K, typename Pair, typename Hashtable>
-struct map_base<K, Pair, extract1st<Pair>, false, Hashtable>
-{
- typedef typename Pair::second_type mapped_type;
-};
-
-template <typename K, typename Pair, typename Hashtable>
-struct map_base<K, Pair, extract1st<Pair>, true, Hashtable>
-{
- typedef typename Pair::second_type mapped_type;
- mapped_type& operator[](const K& k) {
- Hashtable* h = static_cast<Hashtable*>(this);
- typename Hashtable::iterator it = h->insert(std::make_pair(k, mapped_type())).first;
- return it->second;
- }
-};
-
-// class template rehash_base. Give hashtable the max_load_factor
-// functions iff the rehash policy is prime_rehash_policy.
-template <typename RehashPolicy, typename Hashtable>
-struct rehash_base { };
-
-template <typename Hashtable>
-struct rehash_base<prime_rehash_policy, Hashtable>
+namespace Internal
{
- float max_load_factor() const {
- const Hashtable* This = static_cast<const Hashtable*>(this);
- return This->rehash_policy()->max_load_factor();
- }
-
- void max_load_factor(float z) {
- Hashtable* This = static_cast<Hashtable*>(this);
- This->rehash_policy(prime_rehash_policy(z));
- }
-};
-
-// Class template hash_code_base. Encapsulates two policy issues that
-// aren't quite orthogonal.
-// (1) the difference between using a ranged hash function and using
-// the combination of a hash function and a range-hashing function.
-// In the former case we don't have such things as hash codes, so
-// we have a dummy type as placeholder.
-// (2) Whether or not we cache hash codes. Caching hash codes is
-// meaningless if we have a ranged hash function.
-// We also put the key extraction and equality comparison function
-// objects here, for convenience.
-
-// Primary template: unused except as a hook for specializations.
-
-template <typename Key, typename Value,
- typename ExtractKey, typename Equal,
- typename H1, typename H2, typename H,
- bool cache_hash_code>
-struct hash_code_base;
-
-// Specialization: ranged hash function, no caching hash codes. H1
-// and H2 are provided but ignored. We define a dummy hash code type.
-template <typename Key, typename Value,
- typename ExtractKey, typename Equal,
- typename H1, typename H2, typename H>
-struct hash_code_base <Key, Value, ExtractKey, Equal, H1, H2, H, false>
-{
-protected:
- hash_code_base (const ExtractKey& ex, const Equal& eq,
- const H1&, const H2&, const H& h)
- : m_extract(ex), m_eq(eq), m_ranged_hash(h) { }
-
- typedef void* hash_code_t;
- hash_code_t m_hash_code (const Key& k) const { return 0; }
- std::size_t bucket_index (const Key& k, hash_code_t, std::size_t N) const
- { return m_ranged_hash (k, N); }
- std::size_t bucket_index (const hash_node<Value, false>* p, std::size_t N) const {
- return m_ranged_hash (m_extract (p->m_v), N);
- }
+ // class template map_base. If the hashtable has a value type of the
+ // form pair<T1, T2> and a key extraction policy that returns the
+ // first part of the pair, the hashtable gets a mapped_type typedef.
+ // If it satisfies those criteria and also has unique keys, then it
+ // also gets an operator[].
- bool compare (const Key& k, hash_code_t, hash_node<Value, false>* n) const
- { return m_eq (k, m_extract(n->m_v)); }
-
- void copy_code (hash_node<Value, false>*, const hash_node<Value, false>*) const { }
-
- void m_swap(hash_code_base& x) {
- m_extract.m_swap(x);
- m_eq.m_swap(x);
- m_ranged_hash.m_swap(x);
- }
-
-protected:
- ExtractKey m_extract;
- Equal m_eq;
- H m_ranged_hash;
-};
-
-
-// No specialization for ranged hash function while caching hash codes.
-// That combination is meaningless, and trying to do it is an error.
+ template<typename K, typename V, typename Ex, bool unique, typename Hashtable>
+ struct map_base { };
+
+ template<typename K, typename Pair, typename Hashtable>
+ struct map_base<K, Pair, extract1st<Pair>, false, Hashtable>
+ {
+ typedef typename Pair::second_type mapped_type;
+ };
+
+ template<typename K, typename Pair, typename Hashtable>
+ struct map_base<K, Pair, extract1st<Pair>, true, Hashtable>
+ {
+ typedef typename Pair::second_type mapped_type;
+
+ mapped_type&
+ operator[](const K& k)
+ {
+ Hashtable* h = static_cast<Hashtable*>(this);
+ typename Hashtable::iterator it =
+ h->insert(std::make_pair(k, mapped_type())).first;
+ return it->second;
+ }
+ };
+
+ // class template rehash_base. Give hashtable the max_load_factor
+ // functions iff the rehash policy is prime_rehash_policy.
+ template<typename RehashPolicy, typename Hashtable>
+ struct rehash_base { };
+
+ template<typename Hashtable>
+ struct rehash_base<prime_rehash_policy, Hashtable>
+ {
+ float
+ max_load_factor() const
+ {
+ const Hashtable* This = static_cast<const Hashtable*>(this);
+ return This->rehash_policy()->max_load_factor();
+ }
+ void
+ max_load_factor(float z)
+ {
+ Hashtable* This = static_cast<Hashtable*>(this);
+ This->rehash_policy(prime_rehash_policy(z));
+ }
+ };
+
+ // Class template hash_code_base. Encapsulates two policy issues that
+ // aren't quite orthogonal.
+ // (1) the difference between using a ranged hash function and using
+ // the combination of a hash function and a range-hashing function.
+ // In the former case we don't have such things as hash codes, so
+ // we have a dummy type as placeholder.
+ // (2) Whether or not we cache hash codes. Caching hash codes is
+ // meaningless if we have a ranged hash function.
+ // We also put the key extraction and equality comparison function
+ // objects here, for convenience.
+
+ // Primary template: unused except as a hook for specializations.
+
+ template<typename Key, typename Value,
+ typename ExtractKey, typename Equal,
+ typename H1, typename H2, typename H,
+ bool cache_hash_code>
+ struct hash_code_base;
+
+ // Specialization: ranged hash function, no caching hash codes. H1
+ // and H2 are provided but ignored. We define a dummy hash code type.
+ template<typename Key, typename Value,
+ typename ExtractKey, typename Equal,
+ typename H1, typename H2, typename H>
+ struct hash_code_base<Key, Value, ExtractKey, Equal, H1, H2, H, false>
+ {
+ protected:
+ hash_code_base(const ExtractKey& ex, const Equal& eq,
+ const H1&, const H2&, const H& h)
+ : m_extract(ex), m_eq(eq), m_ranged_hash(h) { }
+
+ typedef void* hash_code_t;
+
+ hash_code_t
+ m_hash_code(const Key& k) const
+ { return 0; }
+
+ std::size_t
+ bucket_index(const Key& k, hash_code_t, std::size_t N) const
+ { return m_ranged_hash (k, N); }
-// Specialization: ranged hash function, cache hash codes. This
-// combination is meaningless, so we provide only a declaration
-// and no definition.
+ std::size_t
+ bucket_index(const hash_node<Value, false>* p, std::size_t N) const
+ { return m_ranged_hash (m_extract (p->m_v), N); }
+
+ bool
+ compare(const Key& k, hash_code_t, hash_node<Value, false>* n) const
+ { return m_eq (k, m_extract(n->m_v)); }
+
+ void
+ copy_code(hash_node<Value, false>*, const hash_node<Value, false>*) const
+ { }
+
+ void
+ m_swap(hash_code_base& x)
+ {
+ m_extract.m_swap(x);
+ m_eq.m_swap(x);
+ m_ranged_hash.m_swap(x);
+ }
-template <typename Key, typename Value,
- typename ExtractKey, typename Equal,
- typename H1, typename H2, typename H>
-struct hash_code_base <Key, Value, ExtractKey, Equal, H1, H2, H, true>;
+ protected:
+ ExtractKey m_extract;
+ Equal m_eq;
+ H m_ranged_hash;
+ };
-// Specialization: hash function and range-hashing function, no
-// caching of hash codes. H is provided but ignored. Provides
-// typedef and accessor required by TR1.
+ // No specialization for ranged hash function while caching hash codes.
+ // That combination is meaningless, and trying to do it is an error.
+
+
+ // Specialization: ranged hash function, cache hash codes. This
+ // combination is meaningless, so we provide only a declaration
+ // and no definition.
+
+ template<typename Key, typename Value,
+ typename ExtractKey, typename Equal,
+ typename H1, typename H2, typename H>
+ struct hash_code_base<Key, Value, ExtractKey, Equal, H1, H2, H, true>;
-template <typename Key, typename Value,
- typename ExtractKey, typename Equal,
- typename H1, typename H2>
-struct hash_code_base <Key, Value, ExtractKey, Equal, H1, H2, default_ranged_hash, false>
-{
- typedef H1 hasher;
- hasher hash_function() const { return m_h1; }
-
-protected:
- hash_code_base (const ExtractKey& ex, const Equal& eq,
- const H1& h1, const H2& h2, const default_ranged_hash&)
- : m_extract(ex), m_eq(eq), m_h1(h1), m_h2(h2) { }
-
- typedef std::size_t hash_code_t;
- hash_code_t m_hash_code (const Key& k) const { return m_h1(k); }
- std::size_t bucket_index (const Key&, hash_code_t c, std::size_t N) const
- { return m_h2 (c, N); }
- std::size_t bucket_index (const hash_node<Value, false>* p, std::size_t N) const {
- return m_h2 (m_h1 (m_extract (p->m_v)), N);
- }
- bool compare (const Key& k, hash_code_t, hash_node<Value, false>* n) const
- { return m_eq (k, m_extract(n->m_v)); }
+ // Specialization: hash function and range-hashing function, no
+ // caching of hash codes. H is provided but ignored. Provides
+ // typedef and accessor required by TR1.
+
+ template<typename Key, typename Value,
+ typename ExtractKey, typename Equal,
+ typename H1, typename H2>
+ struct hash_code_base<Key, Value, ExtractKey, Equal, H1, H2,
+ default_ranged_hash, false>
+ {
+ typedef H1 hasher;
+
+ hasher
+ hash_function() const
+ { return m_h1; }
+
+ protected:
+ hash_code_base(const ExtractKey& ex, const Equal& eq,
+ const H1& h1, const H2& h2, const default_ranged_hash&)
+ : m_extract(ex), m_eq(eq), m_h1(h1), m_h2(h2) { }
+
+ typedef std::size_t hash_code_t;
+
+ hash_code_t
+ m_hash_code(const Key& k) const
+ { return m_h1(k); }
+
+ std::size_t
+ bucket_index(const Key&, hash_code_t c, std::size_t N) const
+ { return m_h2 (c, N); }
+
+ std::size_t
+ bucket_index(const hash_node<Value, false>* p, std::size_t N) const
+ { return m_h2 (m_h1 (m_extract (p->m_v)), N); }
+
+ bool
+ compare(const Key& k, hash_code_t, hash_node<Value, false>* n) const
+ { return m_eq (k, m_extract(n->m_v)); }
+
+ void
+ copy_code(hash_node<Value, false>*, const hash_node<Value, false>*) const
+ { }
+
+ void
+ m_swap(hash_code_base& x)
+ {
+ m_extract.m_swap(x);
+ m_eq.m_swap(x);
+ m_h1.m_swap(x);
+ m_h2.m_swap(x);
+ }
- void copy_code (hash_node<Value, false>*, const hash_node<Value, false>*) const { }
+ protected:
+ ExtractKey m_extract;
+ Equal m_eq;
+ H1 m_h1;
+ H2 m_h2;
+ };
+
+ // Specialization: hash function and range-hashing function,
+ // caching hash codes. H is provided but ignored. Provides
+ // typedef and accessor required by TR1.
+ template<typename Key, typename Value,
+ typename ExtractKey, typename Equal,
+ typename H1, typename H2>
+ struct hash_code_base<Key, Value, ExtractKey, Equal, H1, H2,
+ default_ranged_hash, true>
+ {
+ typedef H1 hasher;
+
+ hasher
+ hash_function() const
+ { return m_h1; }
+
+ protected:
+ hash_code_base(const ExtractKey& ex, const Equal& eq,
+ const H1& h1, const H2& h2, const default_ranged_hash&)
+ : m_extract(ex), m_eq(eq), m_h1(h1), m_h2(h2) { }
+
+ typedef std::size_t hash_code_t;
+
+ hash_code_t
+ m_hash_code (const Key& k) const
+ { return m_h1(k); }
+
+ std::size_t
+ bucket_index(const Key&, hash_code_t c, std::size_t N) const
+ { return m_h2 (c, N); }
+
+ std::size_t
+ bucket_index(const hash_node<Value, true>* p, std::size_t N) const
+ { return m_h2 (p->hash_code, N); }
+
+ bool
+ compare(const Key& k, hash_code_t c, hash_node<Value, true>* n) const
+ { return c == n->hash_code && m_eq(k, m_extract(n->m_v)); }
+
+ void
+ copy_code(hash_node<Value, true>* to,
+ const hash_node<Value, true>* from) const
+ { to->hash_code = from->hash_code; }
+
+ void
+ m_swap(hash_code_base& x)
+ {
+ m_extract.m_swap(x);
+ m_eq.m_swap(x);
+ m_h1.m_swap(x);
+ m_h2.m_swap(x);
+ }
+
+ protected:
+ ExtractKey m_extract;
+ Equal m_eq;
+ H1 m_h1;
+ H2 m_h2;
+ };
- void m_swap(hash_code_base& x) {
- m_extract.m_swap(x);
- m_eq.m_swap(x);
- m_h1.m_swap(x);
- m_h2.m_swap(x);
- }
+} // namespace internal
-protected:
- ExtractKey m_extract;
- Equal m_eq;
- H1 m_h1;
- H2 m_h2;
-};
-
-// Specialization: hash function and range-hashing function,
-// caching hash codes. H is provided but ignored. Provides
-// typedef and accessor required by TR1.
-template <typename Key, typename Value,
- typename ExtractKey, typename Equal,
- typename H1, typename H2>
-struct hash_code_base <Key, Value, ExtractKey, Equal, H1, H2, default_ranged_hash, true>
+namespace std
+{
+namespace tr1
{
- typedef H1 hasher;
- hasher hash_function() const { return m_h1; }
-
-protected:
- hash_code_base (const ExtractKey& ex, const Equal& eq,
- const H1& h1, const H2& h2, const default_ranged_hash&)
- : m_extract(ex), m_eq(eq), m_h1(h1), m_h2(h2) { }
-
- typedef std::size_t hash_code_t;
- hash_code_t m_hash_code (const Key& k) const { return m_h1(k); }
- std::size_t bucket_index (const Key&, hash_code_t c, std::size_t N) const
- { return m_h2 (c, N); }
-
- std::size_t bucket_index (const hash_node<Value, true>* p, std::size_t N) const {
- return m_h2 (p->hash_code, N);
- }
-
- bool compare (const Key& k, hash_code_t c, hash_node<Value, true>* n) const
- { return c == n->hash_code && m_eq (k, m_extract(n->m_v)); }
+ //----------------------------------------------------------------------
+ // Class template hashtable, class definition.
+
+ // Meaning of class template hashtable's template parameters
+
+ // Key and Value: arbitrary CopyConstructible types.
+
+ // Allocator: an allocator type ([lib.allocator.requirements]) whose
+ // value type is Value.
+
+ // ExtractKey: function object that takes a object of type Value
+ // and returns a value of type Key.
+
+ // Equal: function object that takes two objects of type k and returns
+ // a bool-like value that is true if the two objects are considered equal.
+
+ // H1: the hash function. A unary function object with argument type
+ // Key and result type size_t. Return values should be distributed
+ // over the entire range [0, numeric_limits<size_t>:::max()].
+
+ // H2: the range-hashing function (in the terminology of Tavori and
+ // Dreizin). A binary function object whose argument types and result
+ // type are all size_t. Given arguments r and N, the return value is
+ // in the range [0, N).
+
+ // H: the ranged hash function (Tavori and Dreizin). A binary function
+ // whose argument types are Key and size_t and whose result type is
+ // size_t. Given arguments k and N, the return value is in the range
+ // [0, N). Default: h(k, N) = h2(h1(k), N). If H is anything other
+ // than the default, H1 and H2 are ignored.
+
+ // RehashPolicy: Policy class with three members, all of which govern
+ // the bucket count. n_bkt(n) returns a bucket count no smaller
+ // than n. bkt_for_elements(n) returns a bucket count appropriate
+ // for an element count of n. need_rehash(n_bkt, n_elt, n_ins)
+ // determines whether, if the current bucket count is n_bkt and the
+ // current element count is n_elt, we need to increase the bucket
+ // count. If so, returns make_pair(true, n), where n is the new
+ // bucket count. If not, returns make_pair(false, <anything>).
+
+ // ??? Right now it is hard-wired that the number of buckets never
+ // shrinks. Should we allow RehashPolicy to change that?
+
+ // cache_hash_code: bool. true if we store the value of the hash
+ // function along with the value. This is a time-space tradeoff.
+ // Storing it may improve lookup speed by reducing the number of times
+ // we need to call the Equal function.
+
+ // mutable_iterators: bool. true if hashtable::iterator is a mutable
+ // iterator, false if iterator and const_iterator are both const
+ // iterators. This is true for unordered_map and unordered_multimap,
+ // false for unordered_set and unordered_multiset.
+
+ // unique_keys: bool. true if the return value of hashtable::count(k)
+ // is always at most one, false if it may be an arbitrary number. This
+ // true for unordered_set and unordered_map, false for unordered_multiset
+ // and unordered_multimap.
+
+ template<typename Key, typename Value,
+ typename Allocator,
+ typename ExtractKey, typename Equal,
+ typename H1, typename H2,
+ typename H, typename RehashPolicy,
+ bool cache_hash_code,
+ bool mutable_iterators,
+ bool unique_keys>
+ class hashtable
+ : public Internal::rehash_base<RehashPolicy,
+ hashtable<Key, Value, Allocator, ExtractKey,
+ Equal, H1, H2, H, RehashPolicy,
+ cache_hash_code, mutable_iterators,
+ unique_keys> >,
+ public Internal::hash_code_base<Key, Value, ExtractKey, Equal, H1, H2, H,
+ cache_hash_code>,
+ public Internal::map_base<Key, Value, ExtractKey, unique_keys,
+ hashtable<Key, Value, Allocator, ExtractKey,
+ Equal, H1, H2, H, RehashPolicy,
+ cache_hash_code, mutable_iterators,
+ unique_keys> >
+ {
+ public:
+ typedef Allocator allocator_type;
+ typedef Value value_type;
+ typedef Key key_type;
+ typedef Equal key_equal;
+ // mapped_type, if present, comes from map_base.
+ // hasher, if present, comes from hash_code_base.
+ typedef typename Allocator::difference_type difference_type;
+ typedef typename Allocator::size_type size_type;
+ typedef typename Allocator::reference reference;
+ typedef typename Allocator::const_reference const_reference;
+
+ typedef Internal::node_iterator<value_type, !mutable_iterators,
+ cache_hash_code>
+ local_iterator;
+ typedef Internal::node_iterator<value_type, false, cache_hash_code>
+ const_local_iterator;
+
+ typedef Internal::hashtable_iterator<value_type, !mutable_iterators,
+ cache_hash_code>
+ iterator;
+ typedef Internal::hashtable_iterator<value_type, false, cache_hash_code>
+ const_iterator;
+
+ private:
+ typedef Internal::hash_node<Value, cache_hash_code> node;
+ typedef typename Allocator::template rebind<node>::other
+ node_allocator_t;
+ typedef typename Allocator::template rebind<node*>::other
+ bucket_allocator_t;
+
+ private:
+ node_allocator_t m_node_allocator;
+ node** m_buckets;
+ size_type m_bucket_count;
+ size_type m_element_count;
+ RehashPolicy m_rehash_policy;
+
+ node*
+ m_allocate_node(const value_type& v);
+
+ void
+ m_deallocate_node(node* n);
+
+ void
+ m_deallocate_nodes(node**, size_type);
- void copy_code (hash_node<Value, true>* to, const hash_node<Value, true>* from) const
- { to->hash_code = from->hash_code; }
+ node**
+ m_allocate_buckets(size_type n);
+
+ void
+ m_deallocate_buckets(node**, size_type n);
+
+ public: // Constructor, destructor, assignment, swap
+ hashtable(size_type bucket_hint,
+ const H1&, const H2&, const H&,
+ const Equal&, const ExtractKey&,
+ const allocator_type&);
+
+ template<typename InIter>
+ hashtable(InIter first, InIter last,
+ size_type bucket_hint,
+ const H1&, const H2&, const H&,
+ const Equal&, const ExtractKey&,
+ const allocator_type&);
+
+ hashtable(const hashtable&);
+
+ hashtable&
+ operator=(const hashtable&);
+
+ ~hashtable();
+
+ void swap(hashtable&);
+
+ public: // Basic container operations
+ iterator
+ begin()
+ {
+ iterator i(m_buckets);
+ if (!i.m_cur_node)
+ i.m_incr_bucket();
+ return i;
+ }
- void m_swap(hash_code_base& x) {
- m_extract.m_swap(x);
- m_eq.m_swap(x);
- m_h1.m_swap(x);
- m_h2.m_swap(x);
- }
+ const_iterator
+ begin() const
+ {
+ const_iterator i(m_buckets);
+ if (!i.m_cur_node)
+ i.m_incr_bucket();
+ return i;
+ }
-protected:
- ExtractKey m_extract;
- Equal m_eq;
- H1 m_h1;
- H2 m_h2;
-};
+ iterator
+ end()
+ { return iterator(m_buckets + m_bucket_count); }
-} // namespace internal
+ const_iterator
+ end() const
+ { return const_iterator(m_buckets + m_bucket_count); }
-namespace std { namespace tr1 {
+ size_type
+ size() const
+ { return m_element_count; }
+
+ bool
+ empty() const
+ { return size() == 0; }
-//----------------------------------------------------------------------
-// Class template hashtable, class definition.
-
-// Meaning of class template hashtable's template parameters
-
-// Key and Value: arbitrary CopyConstructible types.
-
-// Allocator: an allocator type ([lib.allocator.requirements]) whose
-// value type is Value.
-
-// ExtractKey: function object that takes a object of type Value
-// and returns a value of type Key.
-
-// Equal: function object that takes two objects of type k and returns
-// a bool-like value that is true if the two objects are considered equal.
-
-// H1: the hash function. A unary function object with argument type
-// Key and result type size_t. Return values should be distributed
-// over the entire range [0, numeric_limits<size_t>:::max()].
-
-// H2: the range-hashing function (in the terminology of Tavori and
-// Dreizin). A binary function object whose argument types and result
-// type are all size_t. Given arguments r and N, the return value is
-// in the range [0, N).
-
-// H: the ranged hash function (Tavori and Dreizin). A binary function
-// whose argument types are Key and size_t and whose result type is
-// size_t. Given arguments k and N, the return value is in the range
-// [0, N). Default: h(k, N) = h2(h1(k), N). If H is anything other
-// than the default, H1 and H2 are ignored.
-
-// RehashPolicy: Policy class with three members, all of which govern
-// the bucket count. n_bkt(n) returns a bucket count no smaller
-// than n. bkt_for_elements(n) returns a bucket count appropriate
-// for an element count of n. need_rehash(n_bkt, n_elt, n_ins)
-// determines whether, if the current bucket count is n_bkt and the
-// current element count is n_elt, we need to increase the bucket
-// count. If so, returns make_pair(true, n), where n is the new
-// bucket count. If not, returns make_pair(false, <anything>).
-
-// ??? Right now it is hard-wired that the number of buckets never
-// shrinks. Should we allow RehashPolicy to change that?
-
-// cache_hash_code: bool. true if we store the value of the hash
-// function along with the value. This is a time-space tradeoff.
-// Storing it may improve lookup speed by reducing the number of times
-// we need to call the Equal function.
-
-// mutable_iterators: bool. true if hashtable::iterator is a mutable
-// iterator, false if iterator and const_iterator are both const
-// iterators. This is true for unordered_map and unordered_multimap,
-// false for unordered_set and unordered_multiset.
-
-// unique_keys: bool. true if the return value of hashtable::count(k)
-// is always at most one, false if it may be an arbitrary number. This
-// true for unordered_set and unordered_map, false for unordered_multiset
-// and unordered_multimap.
-
-template <typename Key, typename Value,
- typename Allocator,
- typename ExtractKey, typename Equal,
- typename H1, typename H2,
- typename H, typename RehashPolicy,
- bool cache_hash_code,
- bool mutable_iterators,
- bool unique_keys>
-class hashtable
- : public Internal::rehash_base<RehashPolicy, hashtable<Key, Value, Allocator, ExtractKey, Equal, H1, H2, H, RehashPolicy, cache_hash_code, mutable_iterators, unique_keys> >,
- public Internal::hash_code_base<Key, Value, ExtractKey, Equal, H1, H2, H, cache_hash_code>,
- public Internal::map_base<Key, Value, ExtractKey, unique_keys, hashtable<Key, Value, Allocator, ExtractKey, Equal, H1, H2, H, RehashPolicy, cache_hash_code, mutable_iterators, unique_keys> >
-{
-public:
- typedef Allocator allocator_type;
- typedef Value value_type;
- typedef Key key_type;
- typedef Equal key_equal;
- // mapped_type, if present, comes from map_base.
- // hasher, if present, comes from hash_code_base.
- typedef typename Allocator::difference_type difference_type;
- typedef typename Allocator::size_type size_type;
- typedef typename Allocator::reference reference;
- typedef typename Allocator::const_reference const_reference;
-
- typedef Internal::node_iterator<value_type, !mutable_iterators, cache_hash_code>
- local_iterator;
- typedef Internal::node_iterator<value_type, false, cache_hash_code>
- const_local_iterator;
-
- typedef Internal::hashtable_iterator<value_type, !mutable_iterators, cache_hash_code>
- iterator;
- typedef Internal::hashtable_iterator<value_type, false, cache_hash_code>
- const_iterator;
-
-private:
- typedef Internal::hash_node<Value, cache_hash_code> node;
- typedef typename Allocator::template rebind<node>::other node_allocator_t;
- typedef typename Allocator::template rebind<node*>::other bucket_allocator_t;
-
-private:
- node_allocator_t m_node_allocator;
- node** m_buckets;
- size_type m_bucket_count;
- size_type m_element_count;
- RehashPolicy m_rehash_policy;
-
- node* m_allocate_node (const value_type& v);
- void m_deallocate_node (node* n);
- void m_deallocate_nodes (node**, size_type);
-
- node** m_allocate_buckets (size_type n);
- void m_deallocate_buckets (node**, size_type n);
-
-public: // Constructor, destructor, assignment, swap
- hashtable(size_type bucket_hint,
- const H1&, const H2&, const H&,
- const Equal&, const ExtractKey&,
- const allocator_type&);
+ allocator_type
+ get_allocator() const
+ { return m_node_allocator; }
- template <typename InIter>
- hashtable(InIter first, InIter last,
- size_type bucket_hint,
- const H1&, const H2&, const H&,
- const Equal&, const ExtractKey&,
- const allocator_type&);
+ size_type
+ max_size() const
+ { return m_node_allocator.max_size(); }
+
+ public: // Bucket operations
+ size_type
+ bucket_count() const
+ { return m_bucket_count; }
- hashtable(const hashtable&);
- hashtable& operator=(const hashtable&);
- ~hashtable();
-
- void swap(hashtable&);
-
-public: // Basic container operations
- iterator begin() {
- iterator i(m_buckets);
- if (!i.m_cur_node)
- i.m_incr_bucket();
- return i;
- }
-
- const_iterator begin() const {
- const_iterator i(m_buckets);
- if (!i.m_cur_node)
- i.m_incr_bucket();
- return i;
- }
+ size_type
+ max_bucket_count() const
+ { return max_size(); }
+
+ size_type
+ bucket_size(size_type n) const
+ { return std::distance(begin(n), end(n)); }
+
+ size_type bucket(const key_type& k) const
+ {
+ return this->bucket_index(k, this->m_hash_code, this->m_bucket_count);
+ }
- iterator end()
- { return iterator(m_buckets + m_bucket_count); }
- const_iterator end() const
- { return const_iterator(m_buckets + m_bucket_count); }
-
- size_type size() const { return m_element_count; }
- bool empty() const { return size() == 0; }
-
- allocator_type get_allocator() const { return m_node_allocator; }
- size_type max_size() const { return m_node_allocator.max_size(); }
-
-public: // Bucket operations
- size_type bucket_count() const
- { return m_bucket_count; }
- size_type max_bucket_count() const
- { return max_size(); }
- size_type bucket_size (size_type n) const
- { return std::distance(begin(n), end(n)); }
- size_type bucket (const key_type& k) const
- { return this->bucket_index (k, this->m_hash_code, this->m_bucket_count); }
-
- local_iterator begin(size_type n)
- { return local_iterator(m_buckets[n]); }
- local_iterator end(size_type n)
- { return local_iterator(0); }
- const_local_iterator begin(size_type n) const
- { return const_local_iterator(m_buckets[n]); }
- const_local_iterator end(size_type n) const
- { return const_local_iterator(0); }
-
- float load_factor() const
- { return static_cast<float>(size()) / static_cast<float>(bucket_count()); }
- // max_load_factor, if present, comes from rehash_base.
-
- // Generalization of max_load_factor. Extension, not found in TR1. Only
- // useful if RehashPolicy is something other than the default.
- const RehashPolicy& rehash_policy() const { return m_rehash_policy; }
- void rehash_policy (const RehashPolicy&);
-
-public: // lookup
- iterator find(const key_type&);
- const_iterator find(const key_type& k) const;
- size_type count(const key_type& k) const;
- std::pair<iterator, iterator> equal_range(const key_type& k);
- std::pair<const_iterator, const_iterator> equal_range(const key_type& k) const;
-
-private: // Insert and erase helper functions
- // ??? This dispatching is a workaround for the fact that we don't
- // have partial specialization of member templates; it would be
- // better to just specialize insert on unique_keys. There may be a
- // cleaner workaround.
- typedef typename Internal::IF<unique_keys, std::pair<iterator, bool>, iterator>::type
- Insert_Return_Type;
-
- node* find_node (node* p, const key_type& k, typename hashtable::hash_code_t c);
-
- std::pair<iterator, bool> insert (const value_type&, std::tr1::true_type);
- iterator insert (const value_type&, std::tr1::false_type);
-
-public: // Insert and erase
- Insert_Return_Type insert (const value_type& v)
- { return this->insert (v, std::tr1::integral_constant<bool, unique_keys>()); }
- Insert_Return_Type insert (const_iterator, const value_type& v)
- { return this->insert(v); }
-
- template <typename InIter> void insert(InIter first, InIter last);
-
- void erase(const_iterator);
- size_type erase(const key_type&);
- void erase(const_iterator, const_iterator);
- void clear();
-
-public:
- // Set number of buckets to be apropriate for container of n element.
- void rehash (size_type n);
-
-private:
- // Unconditionally change size of bucket array to n.
- void m_rehash (size_type n);
-};
+ local_iterator
+ begin(size_type n)
+ { return local_iterator(m_buckets[n]); }
+
+ local_iterator
+ end(size_type n)
+ { return local_iterator(0); }
+
+ const_local_iterator
+ begin(size_type n) const
+ { return const_local_iterator(m_buckets[n]); }
+
+ const_local_iterator
+ end(size_type n) const
+ { return const_local_iterator(0); }
+
+ float
+ load_factor() const
+ {
+ return static_cast<float>(size()) / static_cast<float>(bucket_count());
+ }
+ // max_load_factor, if present, comes from rehash_base.
+
+ // Generalization of max_load_factor. Extension, not found in TR1. Only
+ // useful if RehashPolicy is something other than the default.
+ const RehashPolicy&
+ rehash_policy() const
+ { return m_rehash_policy; }
+
+ void
+ rehash_policy(const RehashPolicy&);
+
+ public: // lookup
+ iterator
+ find(const key_type&);
+
+ const_iterator
+ find(const key_type& k) const;
+
+ size_type
+ count(const key_type& k) const;
+
+ std::pair<iterator, iterator>
+ equal_range(const key_type& k);
+
+ std::pair<const_iterator, const_iterator>
+ equal_range(const key_type& k) const;
+
+ private: // Insert and erase helper functions
+ // ??? This dispatching is a workaround for the fact that we don't
+ // have partial specialization of member templates; it would be
+ // better to just specialize insert on unique_keys. There may be a
+ // cleaner workaround.
+ typedef typename Internal::IF<unique_keys,
+ std::pair<iterator, bool>, iterator>::type
+ Insert_Return_Type;
+
+ node*
+ find_node(node* p, const key_type& k, typename hashtable::hash_code_t c);
+
+ std::pair<iterator, bool>
+ insert(const value_type&, std::tr1::true_type);
+
+ iterator
+ insert
+ (const value_type&, std::tr1::false_type);
+
+ public: // Insert and erase
+ Insert_Return_Type
+ insert(const value_type& v)
+ {
+ return this->insert(v, std::tr1::integral_constant<bool,
+ unique_keys>());
+ }
+
+ Insert_Return_Type
+ insert(const_iterator, const value_type& v)
+ { return this->insert(v); }
-//----------------------------------------------------------------------
-// Definitions of class template hashtable's out-of-line member functions.
-
-template <typename K, typename V,
- typename A, typename Ex, typename Eq,
- typename H1, typename H2, typename H, typename RP,
- bool c, bool m, bool u>
-typename hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::node*
-hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::m_allocate_node (const value_type& v)
-{
- node* n = m_node_allocator.allocate(1);
- try {
- get_allocator().construct(&n->m_v, v);
- n->m_next = 0;
- return n;
- }
- catch(...) {
- m_node_allocator.deallocate(n, 1);
- throw;
- }
-}
+ template<typename InIter>
+ void
+ insert(InIter first, InIter last);
-template <typename K, typename V,
- typename A, typename Ex, typename Eq,
- typename H1, typename H2, typename H, typename RP,
- bool c, bool m, bool u>
-void
-hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::m_deallocate_node (node* n)
-{
- get_allocator().destroy(&n->m_v);
- m_node_allocator.deallocate(n, 1);
-}
+ void
+ erase(const_iterator);
+
+ size_type
+ erase(const key_type&);
+
+ void
+ erase(const_iterator, const_iterator);
+
+ void
+ clear();
+
+ public:
+ // Set number of buckets to be apropriate for container of n element.
+ void rehash (size_type n);
+
+ private:
+ // Unconditionally change size of bucket array to n.
+ void m_rehash (size_type n);
+ };
+
+ //----------------------------------------------------------------------
+ // Definitions of class template hashtable's out-of-line member functions.
+
+ template<typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+ typename hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::node*
+ hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::
+ m_allocate_node(const value_type& v)
+ {
+ node* n = m_node_allocator.allocate(1);
+ try
+ {
+ get_allocator().construct(&n->m_v, v);
+ n->m_next = 0;
+ return n;
+ }
+ catch(...)
+ {
+ m_node_allocator.deallocate(n, 1);
+ throw;
+ }
+ }
-template <typename K, typename V,
- typename A, typename Ex, typename Eq,
- typename H1, typename H2, typename H, typename RP,
- bool c, bool m, bool u>
-void
-hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>
-::m_deallocate_nodes (node** array, size_type n)
-{
- for (size_type i = 0; i < n; ++i) {
- node* p = array[i];
- while (p) {
- node* tmp = p;
- p = p->m_next;
- m_deallocate_node (tmp);
+ template<typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+ void
+ hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::
+ m_deallocate_node(node* n)
+ {
+ get_allocator().destroy(&n->m_v);
+ m_node_allocator.deallocate(n, 1);
}
- array[i] = 0;
- }
-}
-template <typename K, typename V,
- typename A, typename Ex, typename Eq,
- typename H1, typename H2, typename H, typename RP,
- bool c, bool m, bool u>
-typename hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::node**
-hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::m_allocate_buckets (size_type n)
-{
- bucket_allocator_t alloc(m_node_allocator);
-
- // We allocate one extra bucket to hold a sentinel, an arbitrary
- // non-null pointer. Iterator increment relies on this.
- node** p = alloc.allocate(n+1);
- std::fill(p, p+n, (node*) 0);
- p[n] = reinterpret_cast<node*>(0x1000);
- return p;
-}
+ template<typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+ void
+ hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::
+ m_deallocate_nodes(node** array, size_type n)
+ {
+ for (size_type i = 0; i < n; ++i)
+ {
+ node* p = array[i];
+ while (p)
+ {
+ node* tmp = p;
+ p = p->m_next;
+ m_deallocate_node (tmp);
+ }
+ array[i] = 0;
+ }
+ }
-template <typename K, typename V,
- typename A, typename Ex, typename Eq,
- typename H1, typename H2, typename H, typename RP,
- bool c, bool m, bool u>
-void
-hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>
-::m_deallocate_buckets (node** p, size_type n)
-{
- bucket_allocator_t alloc(m_node_allocator);
- alloc.deallocate(p, n+1);
-}
+ template<typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+ typename hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::node**
+ hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::
+ m_allocate_buckets(size_type n)
+ {
+ bucket_allocator_t alloc(m_node_allocator);
+
+ // We allocate one extra bucket to hold a sentinel, an arbitrary
+ // non-null pointer. Iterator increment relies on this.
+ node** p = alloc.allocate(n+1);
+ std::fill(p, p+n, (node*) 0);
+ p[n] = reinterpret_cast<node*>(0x1000);
+ return p;
+ }
-template <typename K, typename V,
- typename A, typename Ex, typename Eq,
- typename H1, typename H2, typename H, typename RP,
- bool c, bool m, bool u>
-hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>
-::hashtable(size_type bucket_hint,
- const H1& h1, const H2& h2, const H& h,
- const Eq& eq, const Ex& exk,
- const allocator_type& a)
- : Internal::rehash_base<RP,hashtable> (),
- Internal::hash_code_base<K,V,Ex,Eq,H1,H2,H,c> (exk, eq, h1, h2, h),
- Internal::map_base<K,V,Ex,u,hashtable> (),
- m_node_allocator(a),
- m_bucket_count (0),
- m_element_count (0),
- m_rehash_policy ()
-{
- m_bucket_count = m_rehash_policy.next_bkt(bucket_hint);
- m_buckets = m_allocate_buckets (m_bucket_count);
-}
+ template<typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+ void
+ hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::
+ m_deallocate_buckets(node** p, size_type n)
+ {
+ bucket_allocator_t alloc(m_node_allocator);
+ alloc.deallocate(p, n+1);
+ }
-template <typename K, typename V,
- typename A, typename Ex, typename Eq,
- typename H1, typename H2, typename H, typename RP,
- bool c, bool m, bool u>
-template <typename InIter>
-hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>
-::hashtable(InIter f, InIter l,
- size_type bucket_hint,
- const H1& h1, const H2& h2, const H& h,
- const Eq& eq, const Ex& exk,
- const allocator_type& a)
- : Internal::rehash_base<RP,hashtable> (),
- Internal::hash_code_base<K,V,Ex,Eq,H1,H2,H,c> (exk, eq, h1, h2, h),
- Internal::map_base<K,V,Ex,u,hashtable> (),
- m_node_allocator(a),
- m_bucket_count (0),
- m_element_count (0),
- m_rehash_policy ()
-{
- m_bucket_count = std::max(m_rehash_policy.next_bkt(bucket_hint),
- m_rehash_policy.bkt_for_elements(Internal::distance_fw(f, l)));
- m_buckets = m_allocate_buckets (m_bucket_count);
- try {
- for (; f != l; ++f)
- this->insert (*f);
- }
- catch(...) {
- clear();
- m_deallocate_buckets (m_buckets, m_bucket_count);
- throw;
- }
-}
+ template<typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+ hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::
+ hashtable(size_type bucket_hint,
+ const H1& h1, const H2& h2, const H& h,
+ const Eq& eq, const Ex& exk,
+ const allocator_type& a)
+ : Internal::rehash_base<RP,hashtable>(),
+ Internal::hash_code_base<K, V, Ex, Eq, H1, H2, H, c>(exk, eq, h1, h2, h),
+ Internal::map_base<K, V, Ex, u, hashtable>(),
+ m_node_allocator(a),
+ m_bucket_count(0),
+ m_element_count(0),
+ m_rehash_policy()
+ {
+ m_bucket_count = m_rehash_policy.next_bkt(bucket_hint);
+ m_buckets = m_allocate_buckets(m_bucket_count);
+ }
-template <typename K, typename V,
- typename A, typename Ex, typename Eq,
- typename H1, typename H2, typename H, typename RP,
- bool c, bool m, bool u>
-hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>
-::hashtable(const hashtable& ht)
- : Internal::rehash_base<RP,hashtable> (ht),
- Internal::hash_code_base<K,V,Ex,Eq,H1,H2,H,c> (ht),
- Internal::map_base<K,V,Ex,u,hashtable> (ht),
- m_node_allocator(ht.get_allocator()),
- m_bucket_count (ht.m_bucket_count),
- m_element_count (ht.m_element_count),
- m_rehash_policy (ht.m_rehash_policy)
-{
- m_buckets = m_allocate_buckets (m_bucket_count);
- try {
- for (size_t i = 0; i < ht.m_bucket_count; ++i) {
- node* n = ht.m_buckets[i];
- node** tail = m_buckets + i;
- while (n) {
- *tail = m_allocate_node (n);
- (*tail).copy_code_from (n);
- tail = &((*tail)->m_next);
- n = n->m_next;
+ template<typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+ template<typename InIter>
+ hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::
+ hashtable(InIter f, InIter l,
+ size_type bucket_hint,
+ const H1& h1, const H2& h2, const H& h,
+ const Eq& eq, const Ex& exk,
+ const allocator_type& a)
+ : Internal::rehash_base<RP,hashtable>(),
+ Internal::hash_code_base<K, V, Ex, Eq, H1, H2, H, c> (exk, eq,
+ h1, h2, h),
+ Internal::map_base<K,V,Ex,u,hashtable>(),
+ m_node_allocator(a),
+ m_bucket_count (0),
+ m_element_count(0),
+ m_rehash_policy()
+ {
+ m_bucket_count = std::max(m_rehash_policy.next_bkt(bucket_hint),
+ m_rehash_policy.
+ bkt_for_elements(Internal::
+ distance_fw(f, l)));
+ m_buckets = m_allocate_buckets(m_bucket_count);
+ try
+ {
+ for (; f != l; ++f)
+ this->insert(*f);
+ }
+ catch(...)
+ {
+ clear();
+ m_deallocate_buckets(m_buckets, m_bucket_count);
+ throw;
+ }
}
+
+ template<typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+ hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::
+ hashtable(const hashtable& ht)
+ : Internal::rehash_base<RP, hashtable>(ht),
+ Internal::hash_code_base<K, V, Ex, Eq, H1, H2, H, c>(ht),
+ Internal::map_base<K, V, Ex, u, hashtable>(ht),
+ m_node_allocator(ht.get_allocator()),
+ m_bucket_count(ht.m_bucket_count),
+ m_element_count(ht.m_element_count),
+ m_rehash_policy(ht.m_rehash_policy)
+ {
+ m_buckets = m_allocate_buckets (m_bucket_count);
+ try
+ {
+ for (size_t i = 0; i < ht.m_bucket_count; ++i)
+ {
+ node* n = ht.m_buckets[i];
+ node** tail = m_buckets + i;
+ while (n)
+ {
+ *tail = m_allocate_node(n);
+ (*tail).copy_code_from(n);
+ tail = &((*tail)->m_next);
+ n = n->m_next;
+ }
+ }
+ }
+ catch (...)
+ {
+ clear();
+ m_deallocate_buckets (m_buckets, m_bucket_count);
+ throw;
+ }
}
- }
- catch (...) {
- clear();
- m_deallocate_buckets (m_buckets, m_bucket_count);
- throw;
- }
-}
-
-template <typename K, typename V,
- typename A, typename Ex, typename Eq,
- typename H1, typename H2, typename H, typename RP,
- bool c, bool m, bool u>
-hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>&
-hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::operator= (const hashtable& ht)
-{
- hashtable tmp(ht);
- this->swap(tmp);
- return *this;
-}
-
-template <typename K, typename V,
- typename A, typename Ex, typename Eq,
- typename H1, typename H2, typename H, typename RP,
- bool c, bool m, bool u>
-hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::~hashtable()
-{
- clear();
- m_deallocate_buckets(m_buckets, m_bucket_count);
-}
-
-template <typename K, typename V,
- typename A, typename Ex, typename Eq,
- typename H1, typename H2, typename H, typename RP,
- bool c, bool m, bool u>
-void hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::swap (hashtable& x)
-{
- // The only base class with member variables is hash_code_base. We
- // define hash_code_base::m_swap because different specializations
- // have different members.
- Internal::hash_code_base<K, V, Ex, Eq, H1, H2, H, c>::m_swap(x);
-
- // open LWG issue 431
- // std::swap(m_node_allocator, x.m_node_allocator);
- std::swap (m_rehash_policy, x.m_rehash_policy);
- std::swap (m_buckets, x.m_buckets);
- std::swap (m_bucket_count, x.m_bucket_count);
- std::swap (m_element_count, x.m_element_count);
-}
-template <typename K, typename V,
- typename A, typename Ex, typename Eq,
- typename H1, typename H2, typename H, typename RP,
- bool c, bool m, bool u>
-void
-hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::rehash_policy (const RP& pol)
-{
- m_rehash_policy = pol;
- size_type n_bkt = pol.bkt_for_elements(m_element_count);
- if (n_bkt > m_bucket_count)
- m_rehash (n_bkt);
-}
-
-template <typename K, typename V,
- typename A, typename Ex, typename Eq,
- typename H1, typename H2, typename H, typename RP,
- bool c, bool m, bool u>
-typename hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::iterator
-hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::find (const key_type& k)
-{
- typename hashtable::hash_code_t code = this->m_hash_code (k);
- std::size_t n = this->bucket_index (k, code, this->bucket_count());
- node* p = find_node (m_buckets[n], k, code);
- return p ? iterator(p, m_buckets + n) : this->end();
-}
-
-template <typename K, typename V,
- typename A, typename Ex, typename Eq,
- typename H1, typename H2, typename H, typename RP,
- bool c, bool m, bool u>
-typename hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::const_iterator
-hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::find (const key_type& k) const
-{
- typename hashtable::hash_code_t code = this->m_hash_code (k);
- std::size_t n = this->bucket_index (k, code, this->bucket_count());
- node* p = find_node (m_buckets[n], k, code);
- return p ? const_iterator(p, m_buckets + n) : this->end();
-}
-
-template <typename K, typename V,
- typename A, typename Ex, typename Eq,
- typename H1, typename H2, typename H, typename RP,
- bool c, bool m, bool u>
-typename hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::size_type
-hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::count (const key_type& k) const
-{
- typename hashtable::hash_code_t code = this->m_hash_code (k);
- std::size_t n = this->bucket_index (k, code, this->bucket_count());
- size_t result = 0;
- for (node* p = m_buckets[n]; p ; p = p->m_next)
- if (this->compare (k, code, p))
- ++result;
- return result;
-}
-
-template <typename K, typename V,
- typename A, typename Ex, typename Eq,
- typename H1, typename H2, typename H, typename RP,
- bool c, bool m, bool u>
-std::pair<typename hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::iterator,
- typename hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::iterator>
-hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::equal_range (const key_type& k)
-{
- typename hashtable::hash_code_t code = this->m_hash_code (k);
- std::size_t n = this->bucket_index (k, code, this->bucket_count());
- node** head = m_buckets + n;
- node* p = find_node (*head, k, code);
-
- if (p) {
- node* p1 = p->m_next;
- for (; p1 ; p1 = p1->m_next)
- if (!this->compare (k, code, p1))
- break;
- iterator first(p, head);
- iterator last(p1, head);
- if (!p1)
- last.m_incr_bucket();
- return std::make_pair(first, last);
- }
- else
- return std::make_pair (this->end(), this->end());
-}
-
-template <typename K, typename V,
- typename A, typename Ex, typename Eq,
- typename H1, typename H2, typename H, typename RP,
- bool c, bool m, bool u>
-std::pair<typename hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::const_iterator,
- typename hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::const_iterator>
-hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::equal_range (const key_type& k) const
-{
- typename hashtable::hash_code_t code = this->m_hash_code (k);
- std::size_t n = this->bucket_index (k, code, this->bucket_count());
- node** head = m_buckets + n;
- node* p = find_node (*head, k, code);
-
- if (p) {
- node* p1 = p->m_next;
- for (; p1 ; p1 = p1->m_next)
- if (!this->compare (k, code, p1))
- break;
- const_iterator first(p, head);
- const_iterator last(p1, head);
- if (!p1)
- last.m_incr_bucket();
- return std::make_pair(first, last);
- }
- else
- return std::make_pair (this->end(), this->end());
-}
-
-// Find the node whose key compares equal to k, beginning the search
-// at p (usually the head of a bucket). Return nil if no node is found.
-template <typename K, typename V,
- typename A, typename Ex, typename Eq,
- typename H1, typename H2, typename H, typename RP,
- bool c, bool m, bool u>
-typename hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::node*
-hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>
-::find_node (node* p, const key_type& k, typename hashtable::hash_code_t code)
-{
- for ( ; p ; p = p->m_next)
- if (this->compare (k, code, p))
- return p;
- return false;
-}
+ template<typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+ hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>&
+ hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::
+ operator=(const hashtable& ht)
+ {
+ hashtable tmp(ht);
+ this->swap(tmp);
+ return *this;
+ }
-// Insert v if no element with its key is already present.
-template <typename K, typename V,
- typename A, typename Ex, typename Eq,
- typename H1, typename H2, typename H, typename RP,
- bool c, bool m, bool u>
-std::pair<typename hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::iterator, bool>
-hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>
-::insert (const value_type& v, std::tr1::true_type)
-{
- const key_type& k = this->m_extract(v);
- typename hashtable::hash_code_t code = this->m_hash_code (k);
- size_type n = this->bucket_index (k, code, m_bucket_count);
+ template<typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+ hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::
+ ~hashtable()
+ {
+ clear();
+ m_deallocate_buckets(m_buckets, m_bucket_count);
+ }
- if (node* p = find_node (m_buckets[n], k, code))
- return std::make_pair(iterator(p, m_buckets + n), false);
+ template<typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+ void
+ hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::
+ swap(hashtable& x)
+ {
+ // The only base class with member variables is hash_code_base. We
+ // define hash_code_base::m_swap because different specializations
+ // have different members.
+ Internal::hash_code_base<K, V, Ex, Eq, H1, H2, H, c>::m_swap(x);
+
+ // open LWG issue 431
+ // std::swap(m_node_allocator, x.m_node_allocator);
+ std::swap(m_rehash_policy, x.m_rehash_policy);
+ std::swap(m_buckets, x.m_buckets);
+ std::swap(m_bucket_count, x.m_bucket_count);
+ std::swap(m_element_count, x.m_element_count);
+ }
- std::pair<bool, size_t> do_rehash
- = m_rehash_policy.need_rehash(m_bucket_count, m_element_count, 1);
+ template<typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+ void
+ hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::
+ rehash_policy(const RP& pol)
+ {
+ m_rehash_policy = pol;
+ size_type n_bkt = pol.bkt_for_elements(m_element_count);
+ if (n_bkt > m_bucket_count)
+ m_rehash (n_bkt);
+ }
- // Allocate the new node before doing the rehash so that we don't
- // do a rehash if the allocation throws.
- node* new_node = m_allocate_node (v);
+ template<typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+ typename hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::iterator
+ hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::
+ find(const key_type& k)
+ {
+ typename hashtable::hash_code_t code = this->m_hash_code (k);
+ std::size_t n = this->bucket_index(k, code, this->bucket_count());
+ node* p = find_node (m_buckets[n], k, code);
+ return p ? iterator(p, m_buckets + n) : this->end();
+ }
+
+ template<typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+ typename hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::const_iterator
+ hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::
+ find(const key_type& k) const
+ {
+ typename hashtable::hash_code_t code = this->m_hash_code (k);
+ std::size_t n = this->bucket_index(k, code, this->bucket_count());
+ node* p = find_node (m_buckets[n], k, code);
+ return p ? const_iterator(p, m_buckets + n) : this->end();
+ }
+
+ template<typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+ typename hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::size_type
+ hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::
+ count(const key_type& k) const
+ {
+ typename hashtable::hash_code_t code = this->m_hash_code (k);
+ std::size_t n = this->bucket_index (k, code, this->bucket_count());
+ size_t result = 0;
+ for (node* p = m_buckets[n]; p ; p = p->m_next)
+ if (this->compare (k, code, p))
+ ++result;
+ return result;
+ }
- try {
- if (do_rehash.first) {
- n = this->bucket_index (k, code, do_rehash.second);
- m_rehash(do_rehash.second);
+ template<typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+ std::pair<typename hashtable<K, V, A, Ex, Eq, H1,
+ H2, H, RP, c, m, u>::iterator,
+ typename hashtable<K, V, A, Ex, Eq, H1,
+ H2, H, RP, c, m, u>::iterator>
+ hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::
+ equal_range(const key_type& k)
+ {
+ typename hashtable::hash_code_t code = this->m_hash_code (k);
+ std::size_t n = this->bucket_index(k, code, this->bucket_count());
+ node** head = m_buckets + n;
+ node* p = find_node (*head, k, code);
+
+ if (p)
+ {
+ node* p1 = p->m_next;
+ for (; p1 ; p1 = p1->m_next)
+ if (!this->compare (k, code, p1))
+ break;
+
+ iterator first(p, head);
+ iterator last(p1, head);
+ if (!p1)
+ last.m_incr_bucket();
+ return std::make_pair(first, last);
+ }
+ else
+ return std::make_pair(this->end(), this->end());
}
- new_node->m_next = m_buckets[n];
- m_buckets[n] = new_node;
- ++m_element_count;
- return std::make_pair(iterator (new_node, m_buckets + n), true);
- }
- catch (...) {
- m_deallocate_node (new_node);
- throw;
- }
-}
+ template<typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+ std::pair<typename hashtable<K, V, A, Ex, Eq, H1,
+ H2, H, RP, c, m, u>::const_iterator,
+ typename hashtable<K, V, A, Ex, Eq, H1,
+ H2, H, RP, c, m, u>::const_iterator>
+ hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::
+ equal_range(const key_type& k) const
+ {
+ typename hashtable::hash_code_t code = this->m_hash_code (k);
+ std::size_t n = this->bucket_index(k, code, this->bucket_count());
+ node** head = m_buckets + n;
+ node* p = find_node (*head, k, code);
+
+ if (p)
+ {
+ node* p1 = p->m_next;
+ for (; p1 ; p1 = p1->m_next)
+ if (!this->compare (k, code, p1))
+ break;
+
+ const_iterator first(p, head);
+ const_iterator last(p1, head);
+ if (!p1)
+ last.m_incr_bucket();
+ return std::make_pair(first, last);
+ }
+ else
+ return std::make_pair(this->end(), this->end());
+ }
-// Insert v unconditionally.
-template <typename K, typename V,
- typename A, typename Ex, typename Eq,
- typename H1, typename H2, typename H, typename RP,
- bool c, bool m, bool u>
-typename hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::iterator
-hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>
-::insert (const value_type& v, std::tr1::false_type)
-{
- std::pair<bool, std::size_t> do_rehash
- = m_rehash_policy.need_rehash(m_bucket_count, m_element_count, 1);
- if (do_rehash.first)
- m_rehash(do_rehash.second);
-
- const key_type& k = this->m_extract(v);
- typename hashtable::hash_code_t code = this->m_hash_code (k);
- size_type n = this->bucket_index (k, code, m_bucket_count);
-
- node* new_node = m_allocate_node (v);
- node* prev = find_node (m_buckets[n], k, code);
- if (prev) {
- new_node->m_next = prev->m_next;
- prev->m_next = new_node;
- }
- else {
- new_node->m_next = m_buckets[n];
- m_buckets[n] = new_node;
- }
+ // Find the node whose key compares equal to k, beginning the search
+ // at p (usually the head of a bucket). Return nil if no node is found.
+ template<typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+ typename hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::node*
+ hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::
+ find_node(node* p, const key_type& k, typename hashtable::hash_code_t code)
+ {
+ for ( ; p ; p = p->m_next)
+ if (this->compare (k, code, p))
+ return p;
+ return false;
+ }
- ++m_element_count;
- return iterator (new_node, m_buckets + n);
-}
+ // Insert v if no element with its key is already present.
+ template<typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+ std::pair<typename hashtable<K, V, A, Ex, Eq, H1,
+ H2, H, RP, c, m, u>::iterator, bool>
+ hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::
+ insert(const value_type& v, std::tr1::true_type)
+ {
+ const key_type& k = this->m_extract(v);
+ typename hashtable::hash_code_t code = this->m_hash_code (k);
+ size_type n = this->bucket_index(k, code, m_bucket_count);
+
+ if (node* p = find_node(m_buckets[n], k, code))
+ return std::make_pair(iterator(p, m_buckets + n), false);
+
+ std::pair<bool, size_t> do_rehash
+ = m_rehash_policy.need_rehash(m_bucket_count, m_element_count, 1);
+
+ // Allocate the new node before doing the rehash so that we don't
+ // do a rehash if the allocation throws.
+ node* new_node = m_allocate_node (v);
+
+ try
+ {
+ if (do_rehash.first)
+ {
+ n = this->bucket_index(k, code, do_rehash.second);
+ m_rehash(do_rehash.second);
+ }
+
+ new_node->m_next = m_buckets[n];
+ m_buckets[n] = new_node;
+ ++m_element_count;
+ return std::make_pair(iterator(new_node, m_buckets + n), true);
+ }
+ catch (...)
+ {
+ m_deallocate_node (new_node);
+ throw;
+ }
+ }
+
+ // Insert v unconditionally.
+ template<typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+ typename hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::iterator
+ hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::
+ insert(const value_type& v, std::tr1::false_type)
+ {
+ std::pair<bool, std::size_t> do_rehash
+ = m_rehash_policy.need_rehash(m_bucket_count, m_element_count, 1);
+ if (do_rehash.first)
+ m_rehash(do_rehash.second);
+
+ const key_type& k = this->m_extract(v);
+ typename hashtable::hash_code_t code = this->m_hash_code (k);
+ size_type n = this->bucket_index(k, code, m_bucket_count);
+
+ node* new_node = m_allocate_node (v);
+ node* prev = find_node(m_buckets[n], k, code);
+ if (prev)
+ {
+ new_node->m_next = prev->m_next;
+ prev->m_next = new_node;
+ }
+ else
+ {
+ new_node->m_next = m_buckets[n];
+ m_buckets[n] = new_node;
+ }
+
+ ++m_element_count;
+ return iterator(new_node, m_buckets + n);
+ }
-template <typename K, typename V,
- typename A, typename Ex, typename Eq,
- typename H1, typename H2, typename H, typename RP,
- bool c, bool m, bool u>
-template <typename InIter>
-void
-hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::insert(InIter first, InIter last)
-{
- size_type n_elt = Internal::distance_fw (first, last);
- std::pair<bool, std::size_t> do_rehash
- = m_rehash_policy.need_rehash(m_bucket_count, m_element_count, n_elt);
- if (do_rehash.first)
- m_rehash(do_rehash.second);
-
- for (; first != last; ++first)
- this->insert (*first);
-}
+ template<typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+ template<typename InIter>
+ void
+ hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::
+ insert(InIter first, InIter last)
+ {
+ size_type n_elt = Internal::distance_fw (first, last);
+ std::pair<bool, std::size_t> do_rehash
+ = m_rehash_policy.need_rehash(m_bucket_count, m_element_count, n_elt);
+ if (do_rehash.first)
+ m_rehash(do_rehash.second);
+
+ for (; first != last; ++first)
+ this->insert (*first);
+ }
-// XXX We're following the TR in giving this a return type of void,
-// but that ought to change. The return type should be const_iterator,
-// and it should return the iterator following the one we've erased.
-// That would simplify range erase.
-template <typename K, typename V,
- typename A, typename Ex, typename Eq,
- typename H1, typename H2, typename H, typename RP,
- bool c, bool m, bool u>
-void hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::erase (const_iterator i)
-{
- node* p = i.m_cur_node;
- node* cur = *i.m_cur_bucket;
- if (cur == p)
- *i.m_cur_bucket = cur->m_next;
- else {
- node* next = cur->m_next;
- while (next != p) {
- cur = next;
- next = cur->m_next;
+ // XXX We're following the TR in giving this a return type of void,
+ // but that ought to change. The return type should be const_iterator,
+ // and it should return the iterator following the one we've erased.
+ // That would simplify range erase.
+ template<typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+ void
+ hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::
+ erase(const_iterator i)
+ {
+ node* p = i.m_cur_node;
+ node* cur = *i.m_cur_bucket;
+ if (cur == p)
+ *i.m_cur_bucket = cur->m_next;
+ else
+ {
+ node* next = cur->m_next;
+ while (next != p)
+ {
+ cur = next;
+ next = cur->m_next;
+ }
+ cur->m_next = next->m_next;
+ }
+
+ m_deallocate_node (p);
+ --m_element_count;
}
- cur->m_next = next->m_next;
- }
-
- m_deallocate_node (p);
- --m_element_count;
-}
-template <typename K, typename V,
- typename A, typename Ex, typename Eq,
- typename H1, typename H2, typename H, typename RP,
- bool c, bool m, bool u>
-typename hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::size_type
-hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::erase(const key_type& k)
-{
- typename hashtable::hash_code_t code = this->m_hash_code (k);
- size_type n = this->bucket_index (k, code, m_bucket_count);
-
- node** slot = m_buckets + n;
- while (*slot && ! this->compare (k, code, *slot))
- slot = &((*slot)->m_next);
-
- while (*slot && this->compare (k, code, *slot)) {
- node* n = *slot;
- *slot = n->m_next;
- m_deallocate_node (n);
- --m_element_count;
- }
-}
+ template<typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+ typename hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::size_type
+ hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::
+ erase(const key_type& k)
+ {
+ typename hashtable::hash_code_t code = this->m_hash_code (k);
+ size_type n = this->bucket_index(k, code, m_bucket_count);
+
+ node** slot = m_buckets + n;
+ while (*slot && ! this->compare (k, code, *slot))
+ slot = &((*slot)->m_next);
+
+ while (*slot && this->compare (k, code, *slot))
+ {
+ node* n = *slot;
+ *slot = n->m_next;
+ m_deallocate_node (n);
+ --m_element_count;
+ }
+ }
-// ??? This could be optimized by taking advantage of the bucket
-// structure, but it's not clear that it's worth doing. It probably
-// wouldn't even be an optimization unless the load factor is large.
-template <typename K, typename V,
- typename A, typename Ex, typename Eq,
- typename H1, typename H2, typename H, typename RP,
- bool c, bool m, bool u>
-void hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>
-::erase(const_iterator first, const_iterator last)
-{
- while (first != last) {
- const_iterator next = first;
- ++next;
- this->erase(first);
- first = next;
- }
-}
+ // ??? This could be optimized by taking advantage of the bucket
+ // structure, but it's not clear that it's worth doing. It probably
+ // wouldn't even be an optimization unless the load factor is large.
+ template <typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+ void
+ hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::
+ erase(const_iterator first, const_iterator last)
+ {
+ while (first != last)
+ {
+ const_iterator next = first;
+ ++next;
+ this->erase(first);
+ first = next;
+ }
+ }
-template <typename K, typename V,
- typename A, typename Ex, typename Eq,
- typename H1, typename H2, typename H, typename RP,
- bool c, bool m, bool u>
-void hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::clear()
-{
- m_deallocate_nodes (m_buckets, m_bucket_count);
- m_element_count = 0;
-}
+ template<typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+ void
+ hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::
+ clear()
+ {
+ m_deallocate_nodes(m_buckets, m_bucket_count);
+ m_element_count = 0;
+ }
-template <typename K, typename V,
- typename A, typename Ex, typename Eq,
- typename H1, typename H2, typename H, typename RP,
- bool c, bool m, bool u>
-void
-hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::m_rehash (size_type N)
-{
- node** new_array = m_allocate_buckets (N);
- try {
- for (size_type i = 0; i < m_bucket_count; ++i)
- while (node* p = m_buckets[i]) {
- size_type new_index = this->bucket_index (p, N);
- m_buckets[i] = p->m_next;
- p->m_next = new_array[new_index];
- new_array[new_index] = p;
- }
- m_deallocate_buckets (m_buckets, m_bucket_count);
- m_bucket_count = N;
- m_buckets = new_array;
- }
- catch (...) {
- // A failure here means that a hash function threw an exception.
- // We can't restore the previous state without calling the hash
- // function again, so the only sensible recovery is to delete
- // everything.
- m_deallocate_nodes (new_array, N);
- m_deallocate_buckets (new_array, N);
- m_deallocate_nodes (m_buckets, m_bucket_count);
- m_element_count = 0;
- throw;
- }
+ template<typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+ void
+ hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::
+ m_rehash(size_type N)
+ {
+ node** new_array = m_allocate_buckets (N);
+ try
+ {
+ for (size_type i = 0; i < m_bucket_count; ++i)
+ while (node* p = m_buckets[i])
+ {
+ size_type new_index = this->bucket_index (p, N);
+ m_buckets[i] = p->m_next;
+ p->m_next = new_array[new_index];
+ new_array[new_index] = p;
+ }
+ m_deallocate_buckets(m_buckets, m_bucket_count);
+ m_bucket_count = N;
+ m_buckets = new_array;
+ }
+ catch (...)
+ {
+ // A failure here means that a hash function threw an exception.
+ // We can't restore the previous state without calling the hash
+ // function again, so the only sensible recovery is to delete
+ // everything.
+ m_deallocate_nodes(new_array, N);
+ m_deallocate_buckets(new_array, N);
+ m_deallocate_nodes(m_buckets, m_bucket_count);
+ m_element_count = 0;
+ throw;
+ }
+ }
+
}
-
-} } // Namespace std::tr1
+} // Namespace std::tr1
#endif /* GNU_LIBSTDCXX_TR1_HASHTABLE_ */
diff --git a/libstdc++-v3/include/tr1/unordered_map b/libstdc++-v3/include/tr1/unordered_map
index e35683d36aa..4750c2aaf90 100644
--- a/libstdc++-v3/include/tr1/unordered_map
+++ b/libstdc++-v3/include/tr1/unordered_map
@@ -40,127 +40,131 @@
#include <utility>
#include <memory>
-namespace std { namespace tr1 {
-
-// XXX When we get typedef templates these class definitions will be unnecessary.
-
-template <class Key, class T,
- class Hash = hash<Key>,
- class Pred = std::equal_to<Key>,
- class Alloc = std::allocator<std::pair<const Key, T> >,
- bool cache_hash_code = false>
-class unordered_map
- : public hashtable <Key, std::pair<const Key, T>,
- Alloc,
- Internal::extract1st<std::pair<const Key, T> >, Pred,
- Hash, Internal::mod_range_hashing, Internal::default_ranged_hash,
- Internal::prime_rehash_policy,
- cache_hash_code, true, true>
+namespace std
{
- typedef hashtable <Key, std::pair<const Key, T>,
- Alloc,
- Internal::extract1st<std::pair<const Key, T> >, Pred,
- Hash, Internal::mod_range_hashing, Internal::default_ranged_hash,
- Internal::prime_rehash_policy,
- cache_hash_code, true, true>
- Base;
-
-public:
- typedef typename Base::size_type size_type;
- typedef typename Base::hasher hasher;
- typedef typename Base::key_equal key_equal;
- typedef typename Base::allocator_type allocator_type;
-
- explicit unordered_map(size_type n = 10,
+namespace tr1
+{
+ // XXX When we get typedef templates these class definitions
+ // will be unnecessary.
+
+ template<class Key, class T,
+ class Hash = hash<Key>,
+ class Pred = std::equal_to<Key>,
+ class Alloc = std::allocator<std::pair<const Key, T> >,
+ bool cache_hash_code = false>
+ class unordered_map
+ : public hashtable <Key, std::pair<const Key, T>,
+ Alloc,
+ Internal::extract1st<std::pair<const Key, T> >, Pred,
+ Hash, Internal::mod_range_hashing,
+ Internal::default_ranged_hash,
+ Internal::prime_rehash_policy,
+ cache_hash_code, true, true>
+ {
+ typedef hashtable <Key, std::pair<const Key, T>,
+ Alloc,
+ Internal::extract1st<std::pair<const Key, T> >, Pred,
+ Hash, Internal::mod_range_hashing,
+ Internal::default_ranged_hash,
+ Internal::prime_rehash_policy,
+ cache_hash_code, true, true>
+ Base;
+
+ public:
+ typedef typename Base::size_type size_type;
+ typedef typename Base::hasher hasher;
+ typedef typename Base::key_equal key_equal;
+ typedef typename Base::allocator_type allocator_type;
+
+ explicit
+ unordered_map(size_type n = 10,
+ const hasher& hf = hasher(),
+ const key_equal& eql = key_equal(),
+ const allocator_type& a = allocator_type())
+ : Base(n, hf, Internal::mod_range_hashing(),
+ Internal::default_ranged_hash(),
+ eql, Internal::extract1st<std::pair<const Key, T> >(), a)
+ { }
+
+ template<typename InputIterator>
+ unordered_map(InputIterator f, InputIterator l,
+ size_type n = 10,
+ const hasher& hf = hasher(),
+ const key_equal& eql = key_equal(),
+ const allocator_type& a = allocator_type())
+ : Base (f, l, n, hf, Internal::mod_range_hashing(),
+ Internal::default_ranged_hash(),
+ eql, Internal::extract1st<std::pair<const Key, T> >(), a)
+ { }
+ };
+
+ template<class Key, class T,
+ class Hash = hash<Key>,
+ class Pred = std::equal_to<Key>,
+ class Alloc = std::allocator<std::pair<const Key, T> >,
+ bool cache_hash_code = false>
+ class unordered_multimap
+ : public hashtable <Key, std::pair<const Key, T>,
+ Alloc,
+ Internal::extract1st<std::pair<const Key, T> >, Pred,
+ Hash, Internal::mod_range_hashing,
+ Internal::default_ranged_hash,
+ Internal::prime_rehash_policy,
+ cache_hash_code, true, false>
+ {
+ typedef hashtable <Key, std::pair<const Key, T>,
+ Alloc,
+ Internal::extract1st<std::pair<const Key, T> >, Pred,
+ Hash, Internal::mod_range_hashing,
+ Internal::default_ranged_hash,
+ Internal::prime_rehash_policy,
+ cache_hash_code, true, false>
+ Base;
+
+ public:
+ typedef typename Base::size_type size_type;
+ typedef typename Base::hasher hasher;
+ typedef typename Base::key_equal key_equal;
+ typedef typename Base::allocator_type allocator_type;
+
+ explicit
+ unordered_multimap(size_type n = 10,
const hasher& hf = hasher(),
const key_equal& eql = key_equal(),
const allocator_type& a = allocator_type())
- : Base (n,
- hf, Internal::mod_range_hashing(), Internal::default_ranged_hash(),
- eql, Internal::extract1st<std::pair<const Key, T> >(),
- a)
- { }
-
- template <typename InputIterator>
- unordered_map(InputIterator f, InputIterator l,
- size_type n = 10,
- const hasher& hf = hasher(),
- const key_equal& eql = key_equal(),
- const allocator_type& a = allocator_type())
- : Base (f, l,
- n,
- hf, Internal::mod_range_hashing(), Internal::default_ranged_hash(),
- eql, Internal::extract1st<std::pair<const Key, T> >(),
- a)
- { }
-};
-
-template <class Key, class T,
- class Hash = hash<Key>,
- class Pred = std::equal_to<Key>,
- class Alloc = std::allocator<std::pair<const Key, T> >,
- bool cache_hash_code = false>
-class unordered_multimap
- : public hashtable <Key, std::pair<const Key, T>,
- Alloc,
- Internal::extract1st<std::pair<const Key, T> >, Pred,
- Hash, Internal::mod_range_hashing, Internal::default_ranged_hash,
- Internal::prime_rehash_policy,
- cache_hash_code, true, false>
-{
- typedef hashtable <Key, std::pair<const Key, T>,
- Alloc,
- Internal::extract1st<std::pair<const Key, T> >, Pred,
- Hash, Internal::mod_range_hashing, Internal::default_ranged_hash,
- Internal::prime_rehash_policy,
- cache_hash_code, true, false>
- Base;
-
-public:
- typedef typename Base::size_type size_type;
- typedef typename Base::hasher hasher;
- typedef typename Base::key_equal key_equal;
- typedef typename Base::allocator_type allocator_type;
-
- explicit unordered_multimap(size_type n = 10,
- const hasher& hf = hasher(),
- const key_equal& eql = key_equal(),
- const allocator_type& a = allocator_type())
- : Base (n,
- hf, Internal::mod_range_hashing(), Internal::default_ranged_hash(),
- eql, Internal::extract1st<std::pair<const Key, T> >(),
- a)
- { }
-
-
- template <typename InputIterator>
- unordered_multimap(InputIterator f, InputIterator l,
- typename Base::size_type n = 0,
- const hasher& hf = hasher(),
- const key_equal& eql = key_equal(),
- const allocator_type& a = allocator_type())
- : Base (f, l,
- n,
- hf, Internal::mod_range_hashing(), Internal::default_ranged_hash(),
- eql, Internal::extract1st<std::pair<const Key, T> >(),
- a)
- { }
-};
-
-template <class Key, class T, class Hash, class Pred, class Alloc, bool cache_hash_code>
-inline void swap (unordered_map<Key, T, Hash, Pred, Alloc, cache_hash_code>& x,
- unordered_map<Key, T, Hash, Pred, Alloc, cache_hash_code>& y)
-{
- x.swap(y);
-}
+ : Base (n, hf, Internal::mod_range_hashing(),
+ Internal::default_ranged_hash(),
+ eql, Internal::extract1st<std::pair<const Key, T> >(), a)
+ { }
+
+
+ template<typename InputIterator>
+ unordered_multimap(InputIterator f, InputIterator l,
+ typename Base::size_type n = 0,
+ const hasher& hf = hasher(),
+ const key_equal& eql = key_equal(),
+ const allocator_type& a = allocator_type())
+ : Base (f, l, n, hf, Internal::mod_range_hashing(),
+ Internal::default_ranged_hash(),
+ eql, Internal::extract1st<std::pair<const Key, T> >(), a)
+ { }
+ };
+
+ template<class Key, class T, class Hash, class Pred, class Alloc,
+ bool cache_hash_code>
+ inline void
+ swap(unordered_map<Key, T, Hash, Pred, Alloc, cache_hash_code>& x,
+ unordered_map<Key, T, Hash, Pred, Alloc, cache_hash_code>& y)
+ { x.swap(y); }
+
+ template<class Key, class T, class Hash, class Pred, class Alloc,
+ bool cache_hash_code>
+ inline void
+ swap(unordered_multimap<Key, T, Hash, Pred, Alloc, cache_hash_code>& x,
+ unordered_multimap<Key, T, Hash, Pred, Alloc, cache_hash_code>& y)
+ { x.swap(y); }
-template <class Key, class T, class Hash, class Pred, class Alloc, bool cache_hash_code>
-inline void swap (unordered_multimap<Key, T, Hash, Pred, Alloc, cache_hash_code>& x,
- unordered_multimap<Key, T, Hash, Pred, Alloc, cache_hash_code>& y)
-{
- x.swap(y);
}
-
-} }
+}
#endif /* GNU_LIBSTDCXX_TR1_UNORDERED_MAP_ */
diff --git a/libstdc++-v3/include/tr1/unordered_set b/libstdc++-v3/include/tr1/unordered_set
index e0f75f05c13..ecf8e7a968a 100644
--- a/libstdc++-v3/include/tr1/unordered_set
+++ b/libstdc++-v3/include/tr1/unordered_set
@@ -38,123 +38,128 @@
#include <tr1/functional>
#include <memory>
-namespace std { namespace tr1 {
-
-// XXX When we get typedef templates these class definitions will be unnecessary.
-
-template <class Value,
- class Hash = hash<Value>,
- class Pred = std::equal_to<Value>,
- class Alloc = std::allocator<Value>,
- bool cache_hash_code = false>
-class unordered_set
- : public hashtable <Value, Value, Alloc,
- Internal::identity<Value>, Pred,
- Hash, Internal::mod_range_hashing, Internal::default_ranged_hash,
- Internal::prime_rehash_policy,
- cache_hash_code, false, true>
+namespace std
+{
+namespace tr1
{
- typedef hashtable <Value, Value, Alloc,
- Internal::identity<Value>, Pred,
- Hash, Internal::mod_range_hashing, Internal::default_ranged_hash,
- Internal::prime_rehash_policy,
- cache_hash_code, false, true>
- Base;
-
-public:
- typedef typename Base::size_type size_type;
- typedef typename Base::hasher hasher;
- typedef typename Base::key_equal key_equal;
- typedef typename Base::allocator_type allocator_type;
-
- explicit unordered_set(size_type n = 10,
+
+ // XXX When we get typedef templates these class definitions
+ // will be unnecessary.
+
+ template<class Value,
+ class Hash = hash<Value>,
+ class Pred = std::equal_to<Value>,
+ class Alloc = std::allocator<Value>,
+ bool cache_hash_code = false>
+ class unordered_set
+ : public hashtable<Value, Value, Alloc,
+ Internal::identity<Value>, Pred,
+ Hash, Internal::mod_range_hashing,
+ Internal::default_ranged_hash,
+ Internal::prime_rehash_policy,
+ cache_hash_code, false, true>
+ {
+ typedef hashtable<Value, Value, Alloc,
+ Internal::identity<Value>, Pred,
+ Hash, Internal::mod_range_hashing,
+ Internal::default_ranged_hash,
+ Internal::prime_rehash_policy,
+ cache_hash_code, false, true>
+ Base;
+
+ public:
+ typedef typename Base::size_type size_type;
+ typedef typename Base::hasher hasher;
+ typedef typename Base::key_equal key_equal;
+ typedef typename Base::allocator_type allocator_type;
+
+ explicit
+ unordered_set(size_type n = 10,
+ const hasher& hf = hasher(),
+ const key_equal& eql = key_equal(),
+ const allocator_type& a = allocator_type())
+ : Base (n, hf, Internal::mod_range_hashing(),
+ Internal::default_ranged_hash(),
+ eql, Internal::identity<Value>(), a)
+ { }
+
+ template<typename InputIterator>
+ unordered_set(InputIterator f, InputIterator l,
+ size_type n = 10,
+ const hasher& hf = hasher(),
+ const key_equal& eql = key_equal(),
+ const allocator_type& a = allocator_type())
+ : Base (f, l, n, hf, Internal::mod_range_hashing(),
+ Internal::default_ranged_hash(),
+ eql, Internal::identity<Value>(), a)
+ { }
+ };
+
+ template<class Value,
+ class Hash = hash<Value>,
+ class Pred = std::equal_to<Value>,
+ class Alloc = std::allocator<Value>,
+ bool cache_hash_code = false>
+ class unordered_multiset
+ : public hashtable <Value, Value, Alloc,
+ Internal::identity<Value>, Pred,
+ Hash, Internal::mod_range_hashing,
+ Internal::default_ranged_hash,
+ Internal::prime_rehash_policy,
+ cache_hash_code, false, false>
+ {
+ typedef hashtable<Value, Value, Alloc,
+ Internal::identity<Value>, Pred,
+ Hash, Internal::mod_range_hashing,
+ Internal::default_ranged_hash,
+ Internal::prime_rehash_policy,
+ cache_hash_code, false, false>
+ Base;
+
+ public:
+ typedef typename Base::size_type size_type;
+ typedef typename Base::hasher hasher;
+ typedef typename Base::key_equal key_equal;
+ typedef typename Base::allocator_type allocator_type;
+
+ explicit
+ unordered_multiset(size_type n = 10,
const hasher& hf = hasher(),
const key_equal& eql = key_equal(),
const allocator_type& a = allocator_type())
- : Base (n,
- hf, Internal::mod_range_hashing(), Internal::default_ranged_hash(),
- eql, Internal::identity<Value>(),
- a)
- { }
-
- template <typename InputIterator>
- unordered_set(InputIterator f, InputIterator l,
- size_type n = 10,
- const hasher& hf = hasher(),
- const key_equal& eql = key_equal(),
- const allocator_type& a = allocator_type())
- : Base (f, l,
- n,
- hf, Internal::mod_range_hashing(), Internal::default_ranged_hash(),
- eql, Internal::identity<Value>(),
- a)
- { }
-};
-
-template <class Value,
- class Hash = hash<Value>,
- class Pred = std::equal_to<Value>,
- class Alloc = std::allocator<Value>,
- bool cache_hash_code = false>
-class unordered_multiset
- : public hashtable <Value, Value, Alloc,
- Internal::identity<Value>, Pred,
- Hash, Internal::mod_range_hashing, Internal::default_ranged_hash,
- Internal::prime_rehash_policy,
- cache_hash_code, false, false>
-{
- typedef hashtable <Value, Value, Alloc,
- Internal::identity<Value>, Pred,
- Hash, Internal::mod_range_hashing, Internal::default_ranged_hash,
- Internal::prime_rehash_policy,
- cache_hash_code, false, false>
- Base;
-
-public:
- typedef typename Base::size_type size_type;
- typedef typename Base::hasher hasher;
- typedef typename Base::key_equal key_equal;
- typedef typename Base::allocator_type allocator_type;
-
- explicit unordered_multiset(size_type n = 10,
- const hasher& hf = hasher(),
- const key_equal& eql = key_equal(),
- const allocator_type& a = allocator_type())
- : Base (n,
- hf, Internal::mod_range_hashing(), Internal::default_ranged_hash(),
- eql, Internal::identity<Value>(),
- a)
- { }
-
-
- template <typename InputIterator>
- unordered_multiset(InputIterator f, InputIterator l,
- typename Base::size_type n = 0,
- const hasher& hf = hasher(),
- const key_equal& eql = key_equal(),
- const allocator_type& a = allocator_type())
- : Base (f, l,
- n,
- hf, Internal::mod_range_hashing(), Internal::default_ranged_hash(),
- eql, Internal::identity<Value>(),
- a)
- { }
-};
-
-template <class Value, class Hash, class Pred, class Alloc, bool cache_hash_code>
-inline void swap (unordered_set<Value, Hash, Pred, Alloc, cache_hash_code>& x,
- unordered_set<Value, Hash, Pred, Alloc, cache_hash_code>& y)
-{
- x.swap(y);
-}
+ : Base (n, hf, Internal::mod_range_hashing(),
+ Internal::default_ranged_hash(),
+ eql, Internal::identity<Value>(), a)
+ { }
+
+
+ template<typename InputIterator>
+ unordered_multiset(InputIterator f, InputIterator l,
+ typename Base::size_type n = 0,
+ const hasher& hf = hasher(),
+ const key_equal& eql = key_equal(),
+ const allocator_type& a = allocator_type())
+ : Base (f, l, n, hf, Internal::mod_range_hashing(),
+ Internal::default_ranged_hash(), eql,
+ Internal::identity<Value>(), a)
+ { }
+ };
+
+ template<class Value, class Hash, class Pred, class Alloc,
+ bool cache_hash_code>
+ inline void
+ swap (unordered_set<Value, Hash, Pred, Alloc, cache_hash_code>& x,
+ unordered_set<Value, Hash, Pred, Alloc, cache_hash_code>& y)
+ { x.swap(y); }
+
+ template<class Value, class Hash, class Pred, class Alloc,
+ bool cache_hash_code>
+ inline void
+ swap(unordered_multiset<Value, Hash, Pred, Alloc, cache_hash_code>& x,
+ unordered_multiset<Value, Hash, Pred, Alloc, cache_hash_code>& y)
+ { x.swap(y); }
-template <class Value, class Hash, class Pred, class Alloc, bool cache_hash_code>
-inline void swap (unordered_multiset<Value, Hash, Pred, Alloc, cache_hash_code>& x,
- unordered_multiset<Value, Hash, Pred, Alloc, cache_hash_code>& y)
-{
- x.swap(y);
}
-
-} }
+}
#endif /* GNU_LIBSTDCXX_TR1_UNORDERED_SET_ */
diff --git a/libstdc++-v3/libmath/Makefile.in b/libstdc++-v3/libmath/Makefile.in
index 910f9e942aa..c47944f419f 100644
--- a/libstdc++-v3/libmath/Makefile.in
+++ b/libstdc++-v3/libmath/Makefile.in
@@ -42,7 +42,8 @@ target_triplet = @target@
subdir = libmath
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/../config/no-executables.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/../config/lead-dot.m4 \
+ $(top_srcdir)/../config/no-executables.m4 \
$(top_srcdir)/../libtool.m4 $(top_srcdir)/crossconfig.m4 \
$(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/configure.ac
diff --git a/libstdc++-v3/libmath/stubs.c b/libstdc++-v3/libmath/stubs.c
index 797b2017fb0..bbbe0fe3d16 100644
--- a/libstdc++-v3/libmath/stubs.c
+++ b/libstdc++-v3/libmath/stubs.c
@@ -34,6 +34,23 @@
we use the crude approximation. We'll do better later. */
+#ifndef HAVE_FABSF
+float
+fabsf(float x)
+{
+ return (float) fabs(x);
+}
+#endif
+
+#ifndef HAVE_FABSL
+long double
+fabsl(long double x)
+{
+ return fabs((double) x);
+}
+#endif
+
+
#ifndef HAVE_ACOSF
float
acosf(float x)
diff --git a/libstdc++-v3/libsupc++/Makefile.in b/libstdc++-v3/libsupc++/Makefile.in
index 7429511150c..9dfedc3fbc3 100644
--- a/libstdc++-v3/libsupc++/Makefile.in
+++ b/libstdc++-v3/libsupc++/Makefile.in
@@ -44,7 +44,8 @@ DIST_COMMON = $(glibcxxinstall_HEADERS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(top_srcdir)/fragment.am
subdir = libsupc++
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/../config/no-executables.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/../config/lead-dot.m4 \
+ $(top_srcdir)/../config/no-executables.m4 \
$(top_srcdir)/../libtool.m4 $(top_srcdir)/crossconfig.m4 \
$(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/configure.ac
diff --git a/libstdc++-v3/libsupc++/unwind-cxx.h b/libstdc++-v3/libsupc++/unwind-cxx.h
index 4fa4b4139f7..e79dd83628e 100644
--- a/libstdc++-v3/libsupc++/unwind-cxx.h
+++ b/libstdc++-v3/libsupc++/unwind-cxx.h
@@ -38,8 +38,6 @@
#include <typeinfo>
#include <exception>
#include <cstddef>
-#include <cstdlib>
-#define gcc_unreachable() std::abort()
#include "unwind.h"
#pragma GCC visibility push(default)
diff --git a/libstdc++-v3/po/Makefile.in b/libstdc++-v3/po/Makefile.in
index 2ce98488f9f..7ae0c36fd51 100644
--- a/libstdc++-v3/po/Makefile.in
+++ b/libstdc++-v3/po/Makefile.in
@@ -40,7 +40,8 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(top_srcdir)/fragment.am
subdir = po
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/../config/no-executables.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/../config/lead-dot.m4 \
+ $(top_srcdir)/../config/no-executables.m4 \
$(top_srcdir)/../libtool.m4 $(top_srcdir)/crossconfig.m4 \
$(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/configure.ac
diff --git a/libstdc++-v3/src/Makefile.in b/libstdc++-v3/src/Makefile.in
index b1bc7abc629..43abc92b458 100644
--- a/libstdc++-v3/src/Makefile.in
+++ b/libstdc++-v3/src/Makefile.in
@@ -42,7 +42,8 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(top_srcdir)/fragment.am
subdir = src
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/../config/no-executables.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/../config/lead-dot.m4 \
+ $(top_srcdir)/../config/no-executables.m4 \
$(top_srcdir)/../libtool.m4 $(top_srcdir)/crossconfig.m4 \
$(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/configure.ac
diff --git a/libstdc++-v3/src/bitmap_allocator.cc b/libstdc++-v3/src/bitmap_allocator.cc
index 4e42cced450..c8d94af2157 100644
--- a/libstdc++-v3/src/bitmap_allocator.cc
+++ b/libstdc++-v3/src/bitmap_allocator.cc
@@ -41,10 +41,6 @@ namespace __gnu_cxx
<bitmap_allocator<wchar_t>::_Alloc_block*,
bitmap_allocator<wchar_t>::_Alloc_block*> >;
- template class __mini_vector<std::pair
- <bitmap_allocator<size_t>::_Alloc_block*,
- bitmap_allocator<size_t>::_Alloc_block*> >;
-
template class __mini_vector<size_t*>;
template size_t** __lower_bound
diff --git a/libstdc++-v3/src/debug.cc b/libstdc++-v3/src/debug.cc
index 3375adf1f47..621a1c96727 100644
--- a/libstdc++-v3/src/debug.cc
+++ b/libstdc++-v3/src/debug.cc
@@ -48,6 +48,15 @@ namespace __gnu_internal
namespace __gnu_debug
{
+ void
+ __fancy_abort(const char* __file, int __line, const char* __function,
+ const char* __condition)
+ {
+ printf("%s:%d: %s: Assertion '%s' failed.\n", __file, __line,
+ __function, __condition);
+ abort();
+ }
+
const char* _S_debug_messages[] =
{
"function requires a valid iterator range [%1.name;, %2.name;)",
diff --git a/libstdc++-v3/src/misc-inst.cc b/libstdc++-v3/src/misc-inst.cc
index b9bc29882f0..382de97952f 100644
--- a/libstdc++-v3/src/misc-inst.cc
+++ b/libstdc++-v3/src/misc-inst.cc
@@ -1,6 +1,6 @@
// Explicit instantiation file.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -35,9 +35,6 @@
#include <string>
#include <istream>
#include <ostream>
-#include <algorithm>
-#include <vector>
-#include <bits/atomicity.h>
#include <ext/stdio_sync_filebuf.h>
namespace std
diff --git a/libstdc++-v3/src/mt_allocator.cc b/libstdc++-v3/src/mt_allocator.cc
index 9c94bc86044..bb6ab899caf 100644
--- a/libstdc++-v3/src/mt_allocator.cc
+++ b/libstdc++-v3/src/mt_allocator.cc
@@ -1,8 +1,8 @@
// Allocator details.
-// Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+// Copyright (C) 2004 Free Software Foundation, Inc.
//
-// This file is part of the GNU ISO C++ Library. This library is free
+// This file is part of the GNU ISO C++ Librarbooly. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 2, or (at your option)
@@ -552,5 +552,4 @@ namespace __gnu_cxx
// Instantiations.
template class __mt_alloc<char>;
template class __mt_alloc<wchar_t>;
- template class __mt_alloc<size_t>;
} // namespace __gnu_cxx
diff --git a/libstdc++-v3/src/pool_allocator.cc b/libstdc++-v3/src/pool_allocator.cc
index 1ad4e9c9a45..731cfffa0ea 100644
--- a/libstdc++-v3/src/pool_allocator.cc
+++ b/libstdc++-v3/src/pool_allocator.cc
@@ -170,5 +170,4 @@ namespace __gnu_cxx
// Instantiations.
template class __pool_alloc<char>;
template class __pool_alloc<wchar_t>;
- template class __pool_alloc<size_t>;
} // namespace __gnu_cxx
diff --git a/libstdc++-v3/testsuite/17_intro/no_assert_neg.cc b/libstdc++-v3/testsuite/17_intro/no_assert_neg.cc
new file mode 100644
index 00000000000..f3ffa4a48e0
--- /dev/null
+++ b/libstdc++-v3/testsuite/17_intro/no_assert_neg.cc
@@ -0,0 +1,89 @@
+// { dg-do compile }
+// { dg-options "-D__GLIBCXX__=99999999" }
+// NB: This is done to force any generated and possibly included PCH
+// to be invalid.
+
+// 2005-05-24 bkoz
+
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 17.4.1.2 Headers
+
+// This file tests that assert is not included in any of the standard
+// includes by accident.
+
+// C++ headers
+#include <algorithm>
+#include <bitset>
+#include <complex>
+#include <deque>
+#include <exception>
+#include <fstream>
+#include <functional>
+#include <iomanip>
+#include <ios>
+#include <iosfwd>
+#include <iostream>
+#include <istream>
+#include <iterator>
+#include <limits>
+#include <list>
+#include <locale>
+#include <map>
+#include <memory>
+#include <new>
+#include <numeric>
+#include <ostream>
+#include <queue>
+#include <set>
+#include <sstream>
+#include <stack>
+#include <stdexcept>
+#include <streambuf>
+#include <string>
+#include <typeinfo>
+#include <utility>
+#include <valarray>
+#include <vector>
+
+// C headers
+#include <cctype>
+#include <cerrno>
+#include <cfloat>
+#include <ciso646>
+#include <climits>
+#include <clocale>
+#include <cmath>
+#include <csetjmp>
+#include <csignal>
+#include <cstdarg>
+#include <cstddef>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <ctime>
+
+void foo()
+{
+ assert(true);
+}
+
+// { dg-error "not declared" "" { target *-*-* } 84 }
+
+
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/1.cc b/libstdc++-v3/testsuite/21_strings/basic_string/1.cc
new file mode 100644
index 00000000000..e65fdd8b86a
--- /dev/null
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/1.cc
@@ -0,0 +1,36 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of basic_string
+
+#include <string>
+
+// { dg-do compile }
+
+// libstdc++/21770
+template class std::basic_string<int, std::char_traits<int>,
+ std::allocator<char> >;
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/2.cc b/libstdc++-v3/testsuite/21_strings/basic_string/2.cc
new file mode 100644
index 00000000000..36322929ac7
--- /dev/null
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/2.cc
@@ -0,0 +1,36 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of basic_string
+
+#include <debug/string>
+
+// { dg-do compile }
+
+// libstdc++/21770
+template class __gnu_debug::basic_string<int, std::char_traits<int>,
+ std::allocator<char> >;
diff --git a/libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation.cc b/libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/1.cc
index e6e758d0c74..e6e758d0c74 100644
--- a/libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation.cc
+++ b/libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/1.cc
diff --git a/libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/2.cc
new file mode 100644
index 00000000000..7084ff746a0
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/2.cc
@@ -0,0 +1,35 @@
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <deque>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+template class std::deque<__gnu_test::NonDefaultConstructible>;
diff --git a/libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/3.cc
new file mode 100644
index 00000000000..51b4551c4da
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/3.cc
@@ -0,0 +1,35 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <deque>
+
+// { dg-do compile }
+
+// libstdc++/21770
+template class std::deque<int, std::allocator<char> >;
diff --git a/libstdc++-v3/testsuite/23_containers/list/explicit_instantiation.cc b/libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/1.cc
index 2c9db8d3f86..2c9db8d3f86 100644
--- a/libstdc++-v3/testsuite/23_containers/list/explicit_instantiation.cc
+++ b/libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/1.cc
diff --git a/libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/2.cc
new file mode 100644
index 00000000000..66d3934f427
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/2.cc
@@ -0,0 +1,35 @@
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <list>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+template class std::list<__gnu_test::NonDefaultConstructible>;
diff --git a/libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/3.cc
new file mode 100644
index 00000000000..19f719dfff4
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/3.cc
@@ -0,0 +1,35 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <list>
+
+// { dg-do compile }
+
+// libstdc++/21770
+template class std::list<int, std::allocator<char> >;
diff --git a/libstdc++-v3/testsuite/23_containers/map/explicit_instantiation.cc b/libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/1.cc
index 4ceb2501569..4ceb2501569 100644
--- a/libstdc++-v3/testsuite/23_containers/map/explicit_instantiation.cc
+++ b/libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/1.cc
diff --git a/libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/2.cc
new file mode 100644
index 00000000000..8c3c744f080
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/2.cc
@@ -0,0 +1,37 @@
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <map>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+// N.B. We cannot instantiate with T == NonDefaultConstructible
+// because of 23.3.1.2.
+template class std::map<__gnu_test::NonDefaultConstructible, double>;
diff --git a/libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/3.cc
new file mode 100644
index 00000000000..8ce3b6feda3
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/3.cc
@@ -0,0 +1,35 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <map>
+
+// { dg-do compile }
+
+// libstdc++/21770
+template class std::map<int, double, std::less<int>, std::allocator<char> >;
diff --git a/libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation.cc b/libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/1.cc
index 4a740b250f6..4a740b250f6 100644
--- a/libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation.cc
+++ b/libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/1.cc
diff --git a/libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/2.cc
new file mode 100644
index 00000000000..46181ef3e25
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/2.cc
@@ -0,0 +1,36 @@
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <map>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+template class std::multimap<__gnu_test::NonDefaultConstructible,
+ __gnu_test::NonDefaultConstructible>;
diff --git a/libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/3.cc
new file mode 100644
index 00000000000..1c434b8501f
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/3.cc
@@ -0,0 +1,35 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <map>
+
+// { dg-do compile }
+
+// libstdc++/21770
+template class std::multimap<int, double, std::less<int>, std::allocator<char> >;
diff --git a/libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation.cc b/libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/1.cc
index fb6b5f1db19..fb6b5f1db19 100644
--- a/libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation.cc
+++ b/libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/1.cc
diff --git a/libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/2.cc
new file mode 100644
index 00000000000..0f5f3080aa4
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/2.cc
@@ -0,0 +1,35 @@
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <set>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+template class std::multiset<__gnu_test::NonDefaultConstructible>;
diff --git a/libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/3.cc
new file mode 100644
index 00000000000..2b36bb92646
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/3.cc
@@ -0,0 +1,35 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <set>
+
+// { dg-do compile }
+
+// libstdc++/21770
+template class std::multiset<int, std::less<int>, std::allocator<char> >;
diff --git a/libstdc++-v3/testsuite/23_containers/set/explicit_instantiation.cc b/libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/1.cc
index 02e33be0456..02e33be0456 100644
--- a/libstdc++-v3/testsuite/23_containers/set/explicit_instantiation.cc
+++ b/libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/1.cc
diff --git a/libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/2.cc
new file mode 100644
index 00000000000..418c80e5543
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/2.cc
@@ -0,0 +1,35 @@
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <set>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+template class std::set<__gnu_test::NonDefaultConstructible>;
diff --git a/libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/3.cc
new file mode 100644
index 00000000000..c2323226916
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/3.cc
@@ -0,0 +1,35 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <set>
+
+// { dg-do compile }
+
+// libstdc++/21770
+template class std::set<int, std::less<int>, std::allocator<char> >;
diff --git a/libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation.cc b/libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/1.cc
index 0668bbd12ab..0668bbd12ab 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/1.cc
diff --git a/libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/2.cc
new file mode 100644
index 00000000000..7020d42ebb0
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/2.cc
@@ -0,0 +1,35 @@
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <vector>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+template class std::vector<__gnu_test::NonDefaultConstructible>;
diff --git a/libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/3.cc
new file mode 100644
index 00000000000..2cd0b23fcb6
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/3.cc
@@ -0,0 +1,35 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <vector>
+
+// { dg-do compile }
+
+// libstdc++/21770
+template class std::vector<int, std::allocator<char> >;
diff --git a/libstdc++-v3/testsuite/25_algorithms/adjacent_find/1.cc b/libstdc++-v3/testsuite/25_algorithms/adjacent_find/1.cc
new file mode 100644
index 00000000000..fcce4b56596
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/adjacent_find/1.cc
@@ -0,0 +1,67 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.1.5 [lib.alg.adjacent_find]
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::forward_iterator_wrapper;
+using std::adjacent_find;
+
+typedef test_container<int, forward_iterator_wrapper> Container;
+int array[] = {0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1};
+
+void
+test01()
+{
+ Container con(array, array);
+ VERIFY(adjacent_find(con.begin(), con.end()).ptr == array);
+}
+
+void
+test02()
+{
+ Container con(array, array + 1);
+ VERIFY(adjacent_find(con.begin(), con.end()).ptr == array + 1);
+}
+
+void
+test03()
+{
+ Container con(array, array + 2);
+ VERIFY(adjacent_find(con.begin(), con.end()).ptr == array);
+}
+
+void
+test04()
+{
+ Container con(array + 1, array + 10);
+ VERIFY(adjacent_find(con.begin(), con.end()).ptr == array + 10);
+}
+
+int
+main()
+{
+ test01();
+ test02();
+ test03();
+ test04();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/adjacent_find/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/adjacent_find/check_type.cc
new file mode 100644
index 00000000000..65f725df179
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/adjacent_find/check_type.cc
@@ -0,0 +1,42 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.1.5 [lib.alg.adjacent_find]
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+
+using __gnu_test::forward_iterator_wrapper;
+
+struct S { };
+
+bool operator==(const S&, const S&) {return true;}
+
+struct X { };
+
+bool predicate(const X&, const X&) {return true;}
+
+forward_iterator_wrapper<S>
+test1(forward_iterator_wrapper<S>& s)
+{ return std::adjacent_find(s, s); }
+
+forward_iterator_wrapper<X>
+test2(forward_iterator_wrapper<X>& x)
+{ return std::adjacent_find(x, x, predicate); }
diff --git a/libstdc++-v3/testsuite/25_algorithms/binary_search/1.cc b/libstdc++-v3/testsuite/25_algorithms/binary_search/1.cc
new file mode 100644
index 00000000000..5ee44419b8b
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/binary_search/1.cc
@@ -0,0 +1,54 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.3.4 [lib.binary.search]
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::forward_iterator_wrapper;
+using std::binary_search;
+
+typedef test_container<int, forward_iterator_wrapper> Container;
+
+void
+test1()
+{
+ int array[] = {0};
+ Container con(array, array);
+ VERIFY(!binary_search(con.begin(), con.end(), 1));
+}
+
+void
+test2()
+{
+ int array[] = {0, 2, 4, 6, 8};
+ Container con(array, array + 5);
+ for(int i = 0; i < 10; i += 2)
+ VERIFY(binary_search(con.begin(), con.end(), i));
+ for(int i = -1; i < 11; i += 2)
+ VERIFY(!binary_search(con.begin(), con.end(), i));
+}
+
+int main()
+{
+ test1();
+ test2();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/binary_search/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/binary_search/check_type.cc
new file mode 100644
index 00000000000..853a6d2ee39
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/binary_search/check_type.cc
@@ -0,0 +1,42 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.3.4 [lib.binary.search]
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+
+using __gnu_test::forward_iterator_wrapper;
+
+struct S { };
+
+bool operator<(const S&, const S&) {return true;}
+
+struct X { };
+
+bool predicate(const X&, const X&) {return true;}
+
+bool
+test1(forward_iterator_wrapper<S>& s)
+{ return std::binary_search(s, s, *s); }
+
+bool
+test2(forward_iterator_wrapper<X>& x)
+{ return std::binary_search(x, x, *x, predicate); }
diff --git a/libstdc++-v3/testsuite/25_algorithms/count/1.cc b/libstdc++-v3/testsuite/25_algorithms/count/1.cc
new file mode 100644
index 00000000000..dec293cfc3c
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/count/1.cc
@@ -0,0 +1,58 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.1.6 count
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::input_iterator_wrapper;
+
+typedef test_container<int, input_iterator_wrapper> Container;
+int array[] = {0, 0, 0, 1, 0, 1};
+
+void
+test1()
+{
+ Container con(array, array);
+ VERIFY(std::count(con.begin(), con.end(), 1) == 0);
+}
+
+void
+test2()
+{
+ Container con(array, array + 1);
+ VERIFY(std::count(con.begin(), con.end(), 1) == 0);
+}
+
+void
+test3()
+{
+ Container con(array, array + 6);
+ VERIFY(std::count(con.begin(), con.end(), 1) == 2);
+}
+
+int
+main()
+{
+ test1();
+ test2();
+ test3();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/count/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/count/check_type.cc
new file mode 100644
index 00000000000..389c8a08459
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/count/check_type.cc
@@ -0,0 +1,42 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.1.2 find_if
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+
+struct X { };
+
+struct Y { };
+
+using __gnu_test::input_iterator_wrapper;
+
+bool
+operator==(const X&, const Y&)
+{ return true; }
+
+typedef std::iterator_traits<input_iterator_wrapper<X> >::difference_type
+ diff_type;
+
+diff_type
+test1(input_iterator_wrapper<X>& begin,
+ input_iterator_wrapper<X>& end)
+{ return std::count(begin, end, Y()); }
diff --git a/libstdc++-v3/testsuite/25_algorithms/count_if/1.cc b/libstdc++-v3/testsuite/25_algorithms/count_if/1.cc
new file mode 100644
index 00000000000..d5e626f4754
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/count_if/1.cc
@@ -0,0 +1,65 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.1.6 count_if
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::input_iterator_wrapper;
+
+typedef test_container<int, input_iterator_wrapper> Container;
+int array[] = {0, 0, 0, 1, 0, 1};
+
+bool
+predicate(const int& i)
+{ return i == 1; }
+
+void
+test1()
+{
+ Container con(array, array);
+ VERIFY(std::count_if(con.begin(), con.end(),
+ predicate) == 0);
+}
+
+void
+test2()
+{
+ Container con(array, array + 1);
+ VERIFY(std::count_if(con.begin(), con.end(),
+ predicate) == 0);
+}
+
+void
+test3()
+{
+ Container con(array, array + 6);
+ VERIFY(std::count_if(con.begin(), con.end(),
+ predicate) == 2);
+}
+
+int
+main()
+{
+ test1();
+ test2();
+ test3();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/count_if/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/count_if/check_type.cc
new file mode 100644
index 00000000000..8530985b935
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/count_if/check_type.cc
@@ -0,0 +1,52 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.1.2 find_if
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+
+struct X { };
+
+using __gnu_test::input_iterator_wrapper;
+
+bool
+pred_function(const X&)
+{ return true; }
+
+struct pred_obj
+{
+ bool
+ operator()(const X&)
+ { return true; }
+};
+
+typedef std::iterator_traits<input_iterator_wrapper<X> >::difference_type
+ diff_type;
+
+diff_type
+test1(input_iterator_wrapper<X>& begin,
+ input_iterator_wrapper<X>& end)
+{ return std::count_if(begin, end, pred_function); }
+
+diff_type
+test2(input_iterator_wrapper<X>& begin,
+ input_iterator_wrapper<X>& end)
+{ return std::count_if(begin, end, pred_obj()); }
diff --git a/libstdc++-v3/testsuite/25_algorithms/equal/1.cc b/libstdc++-v3/testsuite/25_algorithms/equal/1.cc
new file mode 100644
index 00000000000..9a17c0276ae
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/equal/1.cc
@@ -0,0 +1,73 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::input_iterator_wrapper;
+
+typedef test_container<int, input_iterator_wrapper> Container;
+int array1[] = {0, 1};
+int array2[] = {1, 0};
+int array3[] = {1, 0};
+
+void test1()
+{
+ Container con1(array1, array1);
+ Container con2(array2, array2);
+ VERIFY( std::equal(con1.begin(), con1.end(), con2.begin()) );
+}
+
+void test2()
+{
+ Container con1(array1, array1 + 2);
+ Container con2(array2, array2 + 2);
+ VERIFY( !std::equal(con2.begin(), con2.end(), con1.begin()) );
+}
+
+void test3()
+{
+ Container con1(array1, array1 + 2);
+ Container con2(array2, array2 + 2);
+ VERIFY( !std::equal(con2.begin(), con2.end(), con1.begin()) );
+}
+
+void test4()
+{
+ Container con1(array1, array1 + 2);
+ Container con2(array2, array2 + 2);
+ VERIFY( !std::equal(con1.begin(), con1.end(), con2.begin()) );
+}
+
+void test5()
+{
+ Container con3(array3, array3 + 2);
+ Container con2(array2, array2 + 2);
+ VERIFY( std::equal(con3.begin(), con3.end(), con2.begin()) );
+}
+
+int main()
+{
+ test1();
+ test2();
+ test3();
+ test4();
+ test5();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/equal/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/equal/check_type.cc
new file mode 100644
index 00000000000..434d722e9a6
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/equal/check_type.cc
@@ -0,0 +1,48 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.1.8 [lib.alg.equal]
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+using __gnu_test::input_iterator_wrapper;
+
+struct Lhs1 { };
+
+struct Rhs1 { };
+
+bool operator==(const Lhs1&, const Rhs1&) {return true;}
+
+struct Lhs2 { };
+
+struct Rhs2 { };
+
+bool
+predicate(const Lhs2&, const Rhs2&) {return true;}
+
+bool
+test1(input_iterator_wrapper<Lhs1>& lhs1,
+ input_iterator_wrapper<Rhs1>& rhs1)
+{ return std::equal(lhs1, lhs1, rhs1); }
+
+bool
+test2(input_iterator_wrapper<Lhs2>& lhs2,
+ input_iterator_wrapper<Rhs2>& rhs2)
+{ return std::equal(lhs2, lhs2, rhs2, predicate); }
diff --git a/libstdc++-v3/testsuite/25_algorithms/equal.cc b/libstdc++-v3/testsuite/25_algorithms/equal/equal.cc
index abb0446be21..abb0446be21 100644
--- a/libstdc++-v3/testsuite/25_algorithms/equal.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/equal/equal.cc
diff --git a/libstdc++-v3/testsuite/25_algorithms/equal_range/1.cc b/libstdc++-v3/testsuite/25_algorithms/equal_range/1.cc
new file mode 100644
index 00000000000..9a843e7e421
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/equal_range/1.cc
@@ -0,0 +1,63 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.3.3 [lib.equal.range]
+
+#include <algorithm>
+#include <utility>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::forward_iterator_wrapper;
+using std::equal_range;
+
+typedef test_container<int, forward_iterator_wrapper> Container;
+int array[] = {0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2};
+
+void
+test1()
+{
+ for(int i = 0; i < 6; ++i)
+ for(int j = 6; j < 12; ++j)
+ {
+ Container con(array + i, array + j);
+ VERIFY(equal_range(con.begin(), con.end(), 1).first.ptr ==
+ array + std::max(i, 4));
+ VERIFY(equal_range(con.begin(), con.end(), 1).second.ptr ==
+ array + std::min(j, 8));
+ }
+}
+
+void
+test2()
+{
+ int array[]={0, 0, 2, 2, 2};
+ Container con(array, array + 5);
+ VERIFY(equal_range(con.begin(), con.end(), 1).first.ptr ==
+ array + 2);
+ VERIFY(equal_range(con.begin(), con.end(), 1).second.ptr ==
+ array + 2);
+}
+
+int
+main()
+{
+ test1();
+ test2();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/equal_range/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/equal_range/check_type.cc
new file mode 100644
index 00000000000..6a299c7081b
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/equal_range/check_type.cc
@@ -0,0 +1,43 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.3.3 [lib.equal.range]
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <utility>
+#include <testsuite_iterators.h>
+
+using __gnu_test::forward_iterator_wrapper;
+
+struct S { };
+
+bool operator<(const S&, const S&) {return true;}
+
+struct X { };
+
+bool predicate(const X&, const X&) {return true;}
+
+std::pair<forward_iterator_wrapper<S>, forward_iterator_wrapper<S> >
+test1(forward_iterator_wrapper<S>& s)
+{ return std::equal_range(s, s, *s); }
+
+std::pair<forward_iterator_wrapper<X>, forward_iterator_wrapper<X> >
+test2(forward_iterator_wrapper<X>& x)
+{ return std::equal_range(x, x, *x, predicate); }
diff --git a/libstdc++-v3/testsuite/25_algorithms/find/1.cc b/libstdc++-v3/testsuite/25_algorithms/find/1.cc
new file mode 100644
index 00000000000..19eb177c770
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/find/1.cc
@@ -0,0 +1,58 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.1.2 find
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::input_iterator_wrapper;
+
+typedef test_container<int, input_iterator_wrapper> Container;
+int array[] = {0, 0, 0, 1, 0, 1};
+
+void
+test1()
+{
+ Container con(array, array);
+ VERIFY(std::find(con.begin(), con.end(), 1).ptr == array);
+}
+
+void
+test2()
+{
+ Container con(array, array + 1);
+ VERIFY(std::find(con.begin(), con.end(), 1).ptr == array + 1);
+}
+
+void
+test3()
+{
+ Container con(array, array + 6);
+ VERIFY(std::find(con.begin(), con.end(), 1).ptr == array + 3);
+}
+
+int
+main()
+{
+ test1();
+ test2();
+ test3();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/find/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/find/check_type.cc
new file mode 100644
index 00000000000..40bfee8ddca
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/find/check_type.cc
@@ -0,0 +1,38 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.1.2 find
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+
+using __gnu_test::input_iterator_wrapper;
+
+struct Lhs { };
+struct Rhs { };
+
+bool
+operator==(const Lhs&, const Rhs&)
+{ return true; }
+
+input_iterator_wrapper<Lhs>
+test1(input_iterator_wrapper<Lhs>& begin,
+ input_iterator_wrapper<Lhs>& end, Rhs& val)
+{ return std::find(begin, end, val); }
diff --git a/libstdc++-v3/testsuite/25_algorithms/find_end/1.cc b/libstdc++-v3/testsuite/25_algorithms/find_end/1.cc
new file mode 100644
index 00000000000..9120e188f77
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/find_end/1.cc
@@ -0,0 +1,57 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.1.3 [lib.alg.find.end]
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::forward_iterator_wrapper;
+
+typedef test_container<int, forward_iterator_wrapper> Container;
+
+using std::find_end;
+
+void
+test1()
+{
+ int array[] = {0};
+ Container con1(array, array);
+ Container con2(array, array + 1);
+ VERIFY(find_end(con1.begin(), con1.end(), con1.begin(), con1.end()).ptr == array);
+ VERIFY(find_end(con1.begin(), con1.end(), con2.begin(), con2.end()).ptr == array);
+ VERIFY(find_end(con2.begin(), con2.end(), con1.begin(), con1.end()).ptr == array + 1);
+}
+
+void
+test2()
+{
+ int array1[] = {2, 2, 1, 2, 2, 1};
+ int array2[] = {2, 2};
+ Container con1(array1, array1 + 6);
+ Container con2(array2, array2 + 2);
+ VERIFY(find_end(con1.begin(), con1.end(), con2.begin(), con2.end()).ptr == array1 + 3);
+}
+
+int main()
+{
+ test1();
+ test2();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/find_end/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/find_end/check_type.cc
new file mode 100644
index 00000000000..1d998a7fa3a
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/find_end/check_type.cc
@@ -0,0 +1,53 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.1.3 [lib.alg.find.end]
+
+// { dg-do compile }
+
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+
+using __gnu_test::forward_iterator_wrapper;
+
+struct Lhs1 { };
+
+struct Rhs1 { };
+
+bool operator==(const Lhs1&, const Rhs1&) {return true;}
+
+struct X1 { };
+
+struct X2 { };
+
+bool predicate(const X1&, const X2&) {return true;}
+
+forward_iterator_wrapper<Lhs1>
+test1(forward_iterator_wrapper<Lhs1>& lhs1,
+ forward_iterator_wrapper<Rhs1>& rhs1)
+{
+ return std::find_end(lhs1, lhs1, rhs1, rhs1);
+}
+
+forward_iterator_wrapper<X1>
+test2(forward_iterator_wrapper<X1>& x1,
+ forward_iterator_wrapper<X2>& x2)
+{
+ return std::find_end(x1, x1, x2, x2, predicate);
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/find_first_of/1.cc b/libstdc++-v3/testsuite/25_algorithms/find_first_of/1.cc
new file mode 100644
index 00000000000..db441bd1a30
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/find_first_of/1.cc
@@ -0,0 +1,58 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.1.4 [lib.alg.find.first.of]
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::forward_iterator_wrapper;
+
+typedef test_container<int, forward_iterator_wrapper> Container;
+
+using std::find_first_of;
+
+void
+test1()
+{
+ int array[] = {0};
+ Container con1(array, array);
+ Container con2(array, array + 1);
+ VERIFY(find_first_of(con1.begin(), con1.end(), con1.begin(), con1.end()).ptr == array);
+ VERIFY(find_first_of(con1.begin(), con1.end(), con2.begin(), con2.end()).ptr == array);
+ VERIFY(find_first_of(con2.begin(), con2.end(), con1.begin(), con1.end()).ptr == array + 1);
+}
+
+void
+test2()
+{
+ int array1[] = {1 ,2, 3, 4, 5, 6};
+ int array2[] = {3, 4, 9};
+ Container con1(array1, array1 + 6);
+ Container con2(array2, array2 + 3);
+ VERIFY(find_first_of(con1.begin(), con1.end(), con2.begin(), con2.end()).ptr == array1 + 2);
+}
+
+int
+main()
+{
+ test1();
+ test2();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/find_first_of/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/find_first_of/check_type.cc
new file mode 100644
index 00000000000..9a075c91120
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/find_first_of/check_type.cc
@@ -0,0 +1,49 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.1.4 [lib.alg.find.first.of]
+
+// { dg-do compile }
+
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+
+using __gnu_test::forward_iterator_wrapper;
+
+struct Lhs1 { };
+
+struct Rhs1 { };
+
+bool operator==(const Lhs1&, const Rhs1&) {return true;}
+
+struct X1 { };
+
+struct X2 { };
+
+bool predicate(const X1&, const X2&) {return true;}
+
+forward_iterator_wrapper<Lhs1>
+test1(forward_iterator_wrapper<Lhs1>& lhs1,
+ forward_iterator_wrapper<Rhs1>& rhs1)
+{ return std::find_first_of(lhs1, lhs1, rhs1, rhs1); }
+
+forward_iterator_wrapper<X1>
+test2(forward_iterator_wrapper<X1>& x1,
+ forward_iterator_wrapper<X2>& x2)
+{ return std::find_first_of(x1, x1, x2, x2, predicate); }
diff --git a/libstdc++-v3/testsuite/25_algorithms/find_if/1.cc b/libstdc++-v3/testsuite/25_algorithms/find_if/1.cc
new file mode 100644
index 00000000000..c1d9255ea42
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/find_if/1.cc
@@ -0,0 +1,65 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.1.2 find_if
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::input_iterator_wrapper;
+
+typedef test_container<int, input_iterator_wrapper> Container;
+int array[] = {0, 0, 0, 1, 0, 1};
+
+bool
+predicate(const int& i)
+{ return i == 1; }
+
+void
+test1()
+{
+ Container con(array, array);
+ VERIFY(std::find_if(con.begin(), con.end(),
+ predicate).ptr == array);
+}
+
+void
+test2()
+{
+ Container con(array, array + 1);
+ VERIFY(std::find_if(con.begin(), con.end(),
+ predicate).ptr == array + 1);
+}
+
+void
+test3()
+{
+ Container con(array, array + 6);
+ VERIFY(std::find_if(con.begin(), con.end(),
+ predicate).ptr == array + 3);
+}
+
+int
+main()
+{
+ test1();
+ test2();
+ test3();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/find_if/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/find_if/check_type.cc
new file mode 100644
index 00000000000..8d56be96a9b
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/find_if/check_type.cc
@@ -0,0 +1,49 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.1.2 find_if
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+
+struct X { };
+
+using __gnu_test::input_iterator_wrapper;
+
+bool
+pred_function(const X&)
+{ return true; }
+
+struct pred_obj
+{
+ bool
+ operator()(const X&)
+ { return true; }
+};
+
+input_iterator_wrapper<X>
+test1(input_iterator_wrapper<X>& begin,
+ input_iterator_wrapper<X>& end)
+{ return std::find_if(begin, end, pred_function); }
+
+input_iterator_wrapper<X>
+test2(input_iterator_wrapper<X>& begin,
+ input_iterator_wrapper<X>& end)
+{ return std::find_if(begin, end, pred_obj()); }
diff --git a/libstdc++-v3/testsuite/25_algorithms/heap.cc b/libstdc++-v3/testsuite/25_algorithms/heap/heap.cc
index 6d564f2f9ee..6d564f2f9ee 100644
--- a/libstdc++-v3/testsuite/25_algorithms/heap.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/heap/heap.cc
diff --git a/libstdc++-v3/testsuite/25_algorithms/includes/1.cc b/libstdc++-v3/testsuite/25_algorithms/includes/1.cc
new file mode 100644
index 00000000000..88d1d2b9cf4
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/includes/1.cc
@@ -0,0 +1,90 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.5.1 [lib.includes]
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::input_iterator_wrapper;
+using std::includes;
+
+typedef test_container<int, input_iterator_wrapper> Container;
+
+void
+test1()
+{
+ bool test __attribute__((unused)) = true;
+ int array[] = {0};
+ Container con1(array, array);
+ Container con2(array, array);
+ VERIFY(includes(con1.begin(), con1.end(), con2.begin(), con2.end()));
+}
+
+void
+test2()
+{
+ bool test __attribute__((unused)) = true;
+ int array[] = {0, 1};
+ Container con1(array, array);
+ Container con2(array, array + 2);
+ VERIFY(!includes(con1.begin(), con1.end(), con2.begin(), con2.end()));
+}
+
+void
+test3()
+{
+ bool test __attribute__((unused)) = true;
+ int array[] = {0, 1};
+ Container con1(array, array + 2);
+ Container con2(array, array);
+ VERIFY(includes(con1.begin(), con1.end(), con2.begin(), con2.end()));
+}
+
+void
+test4()
+{
+ bool test __attribute__((unused)) = true;
+ int array1[] = {1, 2, 3, 4, 6, 8, 9};
+ int array2[] = {2, 4, 6, 8};
+ Container con1(array1, array1 + 7);
+ Container con2(array2, array2 + 4);
+ VERIFY(includes(con1.begin(), con1.end(), con2.begin(), con2.end()));
+}
+
+void
+test5()
+{
+ bool test __attribute__((unused)) = true;
+ int array1[] = {1, 2, 3, 5};
+ int array2[] = {2, 4, 6, 8};
+ Container con1(array1, array1 + 4);
+ Container con2(array2, array2 + 4);
+ VERIFY(!includes(con1.begin(), con1.end(), con2.begin(), con2.end()));
+}
+
+int main()
+{
+ test1();
+ test2();
+ test3();
+ test4();
+ test5();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/includes/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/includes/check_type.cc
new file mode 100644
index 00000000000..4b1198e787f
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/includes/check_type.cc
@@ -0,0 +1,46 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.5.1 [lib.includes]
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+
+using __gnu_test::input_iterator_wrapper;
+
+struct S { };
+
+bool
+operator<(const S&, const S&)
+{ return true; }
+
+struct X { };
+
+bool
+predicate(const X&, const X&)
+{ return true; }
+
+bool
+test1(input_iterator_wrapper<S>& s)
+{ return std::includes(s, s, s, s); }
+
+bool
+test2(input_iterator_wrapper<X>& x)
+{ return std::includes(x, x, x, x, predicate); }
diff --git a/libstdc++-v3/testsuite/25_algorithms/inplace_merge/1.cc b/libstdc++-v3/testsuite/25_algorithms/inplace_merge/1.cc
new file mode 100644
index 00000000000..f53c47e3e74
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/inplace_merge/1.cc
@@ -0,0 +1,84 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.4 [lib.alg.merge]
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::bidirectional_iterator_wrapper;
+using std::inplace_merge;
+
+typedef test_container<int, bidirectional_iterator_wrapper> container;
+
+
+void
+test1()
+{
+ int array[]={1};
+ container con1(array, array);
+ inplace_merge(con1.begin(), con1.end(), con1.end());
+ container con2(array, array + 1);
+ inplace_merge(con2.begin(), con2.end(), con2.end());
+ inplace_merge(con2.begin(), con2.begin(), con2.end());
+}
+
+void
+test2()
+{
+ int array[]={0,2,4,1,3,5};
+ container con(array, array + 6);
+ inplace_merge(con.begin(), con.it(3), con.end());
+ VERIFY(array[0] == 0 && array[1] == 1 && array[2] == 2 &&
+ array[3] == 3 && array[4] == 4 && array[5] == 5);
+}
+
+struct S
+{
+ int a;
+ int b;
+ S(int _a, int _b) : a(_a), b(_b) { }
+ S() { }
+ bool
+ operator<(const S& _s) const
+ { return _s.a < a; }
+};
+
+void
+test3()
+{
+ S s[4];
+ s[0].a = 0;
+ s[1].a = 1;
+ s[2].a = 0;
+ s[3].a = 1;
+ s[0].b = 0;
+ s[1].b = 0;
+ s[2].b = 1;
+ s[3].b = 1;
+ inplace_merge(s, s + 2, s + 4);
+ VERIFY(s[0].b == 0 && s[1].b == 1 && s[2].b == 0 && s[3].b == 1);
+}
+
+int
+main()
+{
+ test1();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/inplace_merge/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/inplace_merge/check_type.cc
new file mode 100644
index 00000000000..f8cacfa7696
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/inplace_merge/check_type.cc
@@ -0,0 +1,48 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.4 [lib.alg.merge]
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+
+using __gnu_test::bidirectional_iterator_wrapper;
+
+struct S { };
+
+bool
+operator<(const S&, const S&) {return true;}
+
+struct X { };
+
+bool
+predicate(const X&, const X&) {return true;}
+
+void
+test1(bidirectional_iterator_wrapper<S>& s)
+{
+ std::inplace_merge(s, s, s);
+}
+
+void
+test2(bidirectional_iterator_wrapper<X>& x)
+{
+ std::inplace_merge(x, x, x, predicate);
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/1.cc b/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/1.cc
new file mode 100644
index 00000000000..8d38dadb8e6
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/1.cc
@@ -0,0 +1,86 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.8 [lib.alg.lex.comparison]
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::input_iterator_wrapper;
+
+typedef test_container<int, input_iterator_wrapper> Container;
+int array1[] = {0, 1};
+int array2[] = {1, 0};
+int array3[] = {1, 0, 1};
+
+void
+test1()
+{
+ Container con1(array1, array1);
+ Container con2(array2, array2);
+ VERIFY( !std::lexicographical_compare(con1.begin(), con1.end(),
+ con2.begin(), con2.end()) );
+}
+
+void
+test2()
+{
+ Container con1(array1, array1 + 2);
+ Container con2(array2, array2 + 2);
+ VERIFY( std::lexicographical_compare(con1.begin(), con1.end(),
+ con2.begin(), con2.end()) );
+}
+
+void
+test3()
+{
+ Container con1(array1, array1 + 2);
+ Container con2(array2, array2 + 2);
+ VERIFY( !std::lexicographical_compare(con2.begin(), con2.end(),
+ con1.begin(), con1.end()) );
+}
+
+void
+test4()
+{
+ Container con3(array3, array3 + 3);
+ Container con2(array2, array2 + 2);
+ VERIFY( std::lexicographical_compare(con2.begin(), con2.end(),
+ con3.begin(), con3.end()) );
+}
+
+void
+test5()
+{
+ Container con3(array3, array3 + 3);
+ Container con2(array2, array2 + 2);
+ VERIFY( !std::lexicographical_compare(con3.begin(), con3.end(),
+ con2.begin(), con2.end()) );
+}
+
+int
+main()
+{
+ test1();
+ test2();
+ test3();
+ test4();
+ test5();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/check_type.cc
new file mode 100644
index 00000000000..20b594cc06a
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/check_type.cc
@@ -0,0 +1,51 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.8 [lib.alg.lex.comparison]
+
+// { dg-do compile }
+
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+
+using __gnu_test::input_iterator_wrapper;
+
+struct Lhs1 { };
+
+struct Rhs1 { };
+
+bool
+operator<(const Lhs1&, const Rhs1&) {return true;}
+
+bool
+operator<(const Rhs1&, const Lhs1&) {return false;}
+
+struct X { };
+
+bool
+predicate(const X&, const X&) {return true;}
+
+bool
+test1(input_iterator_wrapper<Lhs1>& lhs1,
+ input_iterator_wrapper<Rhs1>& rhs1)
+{ return std::lexicographical_compare(lhs1, lhs1, rhs1, rhs1); }
+
+bool
+test2(input_iterator_wrapper<X>& x)
+{ return std::lexicographical_compare(x, x, x, x, predicate); }
diff --git a/libstdc++-v3/testsuite/25_algorithms/lower_bound/1.cc b/libstdc++-v3/testsuite/25_algorithms/lower_bound/1.cc
new file mode 100644
index 00000000000..baa00c1cd6c
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/lower_bound/1.cc
@@ -0,0 +1,47 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.3.1 [lib.lower.bound]
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::forward_iterator_wrapper;
+using std::lower_bound;
+
+typedef test_container<int, forward_iterator_wrapper> Container;
+int array[] = {0, 0, 0, 0, 1, 1, 1, 1};
+
+void
+test1()
+{
+ for(int i = 0; i < 5; ++i)
+ for(int j = 4; j < 7; ++j)
+ {
+ Container con(array + i, array + j);
+ VERIFY(lower_bound(con.begin(), con.end(), 1).ptr == array + 4);
+ }
+}
+
+int
+main()
+{
+ test1();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/lower_bound/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/lower_bound/check_type.cc
new file mode 100644
index 00000000000..1ba48d33f81
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/lower_bound/check_type.cc
@@ -0,0 +1,44 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.3.1 [lib.lower.bound]
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+
+using __gnu_test::forward_iterator_wrapper;
+
+struct S { };
+
+bool
+operator<(const S&, const S&) {return true;}
+
+struct X { };
+
+bool
+predicate(const X&, const X&) {return true;}
+
+forward_iterator_wrapper<S>
+test1(forward_iterator_wrapper<S>& s)
+{ return std::lower_bound(s, s, *s); }
+
+forward_iterator_wrapper<X>
+test2(forward_iterator_wrapper<X>& x)
+{ return std::lower_bound(x, x, *x, predicate); }
diff --git a/libstdc++-v3/testsuite/25_algorithms/lower_bound.cc b/libstdc++-v3/testsuite/25_algorithms/lower_bound/lower_bound.cc
index 6afb28fffbc..6afb28fffbc 100644
--- a/libstdc++-v3/testsuite/25_algorithms/lower_bound.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/lower_bound/lower_bound.cc
diff --git a/libstdc++-v3/testsuite/25_algorithms/max_element/1.cc b/libstdc++-v3/testsuite/25_algorithms/max_element/1.cc
new file mode 100644
index 00000000000..02d870baadb
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/max_element/1.cc
@@ -0,0 +1,71 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.7 [lib.alg.min.max]
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::forward_iterator_wrapper;
+using std::max_element;
+
+typedef test_container<int, forward_iterator_wrapper> Container;
+
+void
+test1()
+{
+ // Note: The standard is unclear on what should happen in this case.
+ // This seems the only really sensible behaviour, and what is done.
+ int array[] = {0};
+ Container con(array, array);
+ VERIFY(max_element(con.begin(), con.end()).ptr == array);
+}
+
+void
+test2()
+{
+ int array[] = {0};
+ Container con(array, array + 1);
+ VERIFY(max_element(con.begin(), con.end()).ptr == array);
+}
+
+void
+test3()
+{
+ int array[] = {3, 0};
+ Container con(array, array + 2);
+ VERIFY(max_element(con.begin(), con.end()).ptr == array);
+}
+
+void
+test4()
+{
+ int array[] = {0, 3, 6, 2, 6, 4, 0};
+ Container con(array, array + 7);
+ VERIFY(max_element(con.begin(), con.end()).ptr == array + 2);
+}
+
+int main()
+{
+ test1();
+ test2();
+ test3();
+ test4();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/max_element/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/max_element/check_type.cc
new file mode 100644
index 00000000000..f6bae763cc4
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/max_element/check_type.cc
@@ -0,0 +1,44 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.7 [lib.alg.min.max]
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+
+using __gnu_test::forward_iterator_wrapper;
+
+struct S { };
+
+bool
+operator<(const S&, const S&) {return true;}
+
+struct X { };
+
+bool
+predicate(const X&, const X&) {return true;}
+
+forward_iterator_wrapper<S>
+test1(forward_iterator_wrapper<S>& s)
+{ return std::max_element(s, s); }
+
+forward_iterator_wrapper<X>
+test2(forward_iterator_wrapper<X>& x)
+{ return std::max_element(x, x, predicate); }
diff --git a/libstdc++-v3/testsuite/25_algorithms/merge/1.cc b/libstdc++-v3/testsuite/25_algorithms/merge/1.cc
new file mode 100644
index 00000000000..c0ccd78a97b
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/merge/1.cc
@@ -0,0 +1,101 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.4 [lib.alg.merge]
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::input_iterator_wrapper;
+using __gnu_test::output_iterator_wrapper;
+using std::merge;
+
+typedef test_container<int, input_iterator_wrapper> Icontainer;
+typedef test_container<int, output_iterator_wrapper> Ocontainer;
+
+void
+test1()
+{
+ int array1[1], array2[1];
+ Icontainer con1(array1, array1);
+ Icontainer con2(array1, array1);
+ Ocontainer con3(array2, array2);
+ VERIFY(merge(con1.begin(), con1.end(), con2.begin(), con2.end(),
+ con3.begin()).ptr == array2);
+}
+
+void
+test2()
+{
+ int array1[]={0,1,4};
+ int array2[]={2,3};
+ int array3[5];
+ Icontainer con1(array1, array1 + 3);
+ Icontainer con2(array2, array2 + 2);
+ Ocontainer con3(array3, array3 + 5);
+ VERIFY(merge(con1.begin(), con1.end(), con2.begin(), con2.end(),
+ con3.begin()).ptr == array3 + 5);
+ VERIFY(array3[0] == 0 && array3[1] == 1 && array3[2] == 2 &&
+ array3[3] == 3 && array3[4] == 4);
+
+}
+
+struct S
+{
+ int i;
+ int j;
+ S() {}
+ S(int in)
+ {
+ if(in > 0)
+ {
+ i = in;
+ j = 1;
+ }
+ else
+ {
+ i = -in;
+ j = 0;
+ }
+ }
+};
+
+bool
+operator<(const S& s1, const S& s2)
+{ return s1.i < s2.i; }
+
+void
+test3()
+{
+ S array1[] = { -1 , -3};
+ S array2[] = { 1, 2, 3};
+ S array3[5];
+ merge(array1, array1 + 2, array2, array2 + 3, array3);
+ VERIFY(array3[0].j == 0 && array3[1].j == 1 && array3[2].j == 1 &&
+ array3[3].j == 0 && array3[4].j == 1);
+}
+
+int
+main()
+{
+ test1();
+ test2();
+ test3();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/merge/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/merge/check_type.cc
new file mode 100644
index 00000000000..27681d82dc9
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/merge/check_type.cc
@@ -0,0 +1,46 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.4 [lib.alg.merge]
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+using __gnu_test::input_iterator_wrapper;
+using __gnu_test::output_iterator_wrapper;
+
+struct S { };
+
+bool
+operator<(const S&, const S&) {return true;}
+
+struct X { };
+
+bool
+predicate(const X&, const X&) {return true;}
+
+output_iterator_wrapper<S>
+test1(input_iterator_wrapper<S>& in,
+ output_iterator_wrapper<S>& out)
+{ return std::merge(in, in, in, in, out); }
+
+output_iterator_wrapper<X>
+test2(input_iterator_wrapper<X>& in,
+ output_iterator_wrapper<X>& out)
+{ return std::merge(in, in, in, in, out, predicate); }
diff --git a/libstdc++-v3/testsuite/25_algorithms/min_element/1.cc b/libstdc++-v3/testsuite/25_algorithms/min_element/1.cc
new file mode 100644
index 00000000000..ba9a4a26e77
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/min_element/1.cc
@@ -0,0 +1,71 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.7 [lib.alg.min.max]
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::forward_iterator_wrapper;
+using std::min_element;
+
+typedef test_container<int, forward_iterator_wrapper> Container;
+
+void
+test1()
+{
+ // Note: The standard is unclear on what should happen in this case.
+ // This seems the only really sensible behaviour, and what is done.
+ int array[] = {0};
+ Container con(array, array);
+ VERIFY(min_element(con.begin(), con.end()).ptr == array);
+}
+
+void
+test2()
+{
+ int array[] = {0};
+ Container con(array, array + 1);
+ VERIFY(min_element(con.begin(), con.end()).ptr == array);
+}
+
+void
+test3()
+{
+ int array[] = {0, 3};
+ Container con(array, array + 2);
+ VERIFY(min_element(con.begin(), con.end()).ptr == array);
+}
+
+void
+test4()
+{
+ int array[] = {6, 3, 0, 2, 6, 4, 0};
+ Container con(array, array + 7);
+ VERIFY(min_element(con.begin(), con.end()).ptr == array + 2);
+}
+
+int main()
+{
+ test1();
+ test2();
+ test3();
+ test4();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/min_element/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/min_element/check_type.cc
new file mode 100644
index 00000000000..e4ff8d341b5
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/min_element/check_type.cc
@@ -0,0 +1,44 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.7 [lib.alg.min.max]
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+
+using __gnu_test::forward_iterator_wrapper;
+
+struct S { };
+
+bool
+operator<(const S&, const S&) {return true;}
+
+struct X { };
+
+bool
+predicate(const X&, const X&) {return true;}
+
+forward_iterator_wrapper<S>
+test1(forward_iterator_wrapper<S>& s)
+{ return std::min_element(s,s); }
+
+forward_iterator_wrapper<X>
+test2(forward_iterator_wrapper<X>& x)
+{ return std::min_element(x,x,predicate); }
diff --git a/libstdc++-v3/testsuite/25_algorithms/mismatch/1.cc b/libstdc++-v3/testsuite/25_algorithms/mismatch/1.cc
new file mode 100644
index 00000000000..a75405999a3
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/mismatch/1.cc
@@ -0,0 +1,89 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.1.7 [lib.mismatch]
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::input_iterator_wrapper;
+
+typedef test_container<int, input_iterator_wrapper> Container;
+int array1[] = {0, 1};
+int array2[] = {1, 0};
+int array3[] = {1, 0, 1};
+
+void test1a()
+{
+ Container con1(array1, array1);
+ Container con2(array2, array2);
+ VERIFY( std::mismatch(con1.begin(), con1.end(), con2.begin()).first.ptr
+ == array1 );
+}
+
+void test1b()
+{
+ Container con1(array1, array1);
+ Container con2(array2, array2);
+ VERIFY( std::mismatch(con1.begin(), con1.end(), con2.begin()).second.ptr
+ == array2 );
+}
+
+void test2a()
+{
+ Container con1(array1, array1 + 2);
+ Container con2(array2, array2 + 2);
+ VERIFY( std::mismatch(con1.begin(), con1.end(), con2.begin()).first.ptr
+ == array1 );
+}
+
+void test2b()
+{
+ Container con1(array1, array1 + 2);
+ Container con2(array2, array2 + 2);
+ VERIFY( std::mismatch(con1.begin(), con1.end(), con2.begin()).second.ptr
+ == array2 );
+}
+
+void test3a()
+{
+ Container con3(array3, array3 + 2);
+ Container con2(array2, array2 + 2);
+ VERIFY( std::mismatch(con3.begin(), con3.end(), con2.begin()).first.ptr
+ == array3 + 2 );
+}
+
+void test3b()
+{
+ Container con3(array3, array3 + 2);
+ Container con2(array2, array2 + 2);
+ VERIFY( std::mismatch(con3.begin(), con3.end(), con2.begin()).second.ptr
+ == array2 + 2 );
+}
+
+int main()
+{
+ test1a();
+ test1b();
+ test2a();
+ test2b();
+ test3a();
+ test3b();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/mismatch/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/mismatch/check_type.cc
new file mode 100644
index 00000000000..45f46296768
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/mismatch/check_type.cc
@@ -0,0 +1,51 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.1.7 [lib.mismatch]
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <utility>
+#include <testsuite_iterators.h>
+
+using __gnu_test::input_iterator_wrapper;
+
+struct Lhs1 { };
+
+struct Rhs1 { };
+
+bool operator==(const Lhs1&, const Rhs1&) {return true;}
+
+struct Lhs2 { };
+
+struct Rhs2 { };
+
+bool predicate(const Lhs2&, const Rhs2&) {return true;}
+
+std::pair<input_iterator_wrapper<Lhs1>, input_iterator_wrapper<Rhs1> >
+test1(input_iterator_wrapper<Lhs1>& lhs1, input_iterator_wrapper<Rhs1>& rhs1)
+{
+ return std::mismatch(lhs1, lhs1, rhs1);
+}
+
+std::pair<input_iterator_wrapper<Lhs2>, input_iterator_wrapper<Rhs2> >
+test2(input_iterator_wrapper<Lhs2>& lhs2, input_iterator_wrapper<Rhs2>& rhs2)
+{
+ return std::mismatch(lhs2, lhs2, rhs2, predicate);
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/next_permutation/1.cc b/libstdc++-v3/testsuite/25_algorithms/next_permutation/1.cc
new file mode 100644
index 00000000000..4c0496c9d36
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/next_permutation/1.cc
@@ -0,0 +1,84 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.9 [lib.alg.permutation.generators]
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::bidirectional_iterator_wrapper;
+using std::next_permutation;
+
+typedef test_container<int, bidirectional_iterator_wrapper> Container;
+
+void
+test1()
+{
+ // Note: The standard is unclear on what should happen in this case.
+ // This seems the only really sensible behaviour, and what is done.
+ int array[] = {0};
+ Container con(array, array);
+ VERIFY(!next_permutation(con.begin(), con.end()));
+}
+
+void
+test2()
+{
+ int array[] = {0};
+ Container con(array, array + 1);
+ VERIFY(!next_permutation(con.begin(), con.end()));
+}
+
+void
+test3()
+{
+ int array[] = {0, 3};
+ Container con(array, array + 2);
+ VERIFY(next_permutation(con.begin(), con.end()));
+ VERIFY(array[0] == 3 && array[1] == 0);
+ VERIFY(!next_permutation(con.begin(), con.end()));
+ VERIFY(array[0] == 0 && array[1] == 3);
+}
+
+void
+test4()
+{
+ int array[6] = {0, 1, 2, 3, 4, 5};
+ Container con(array, array + 6);
+ for(int i = 0 ; i < 719; ++i)
+ {
+ int temp_array[6];
+ std::copy(array, array + 6, temp_array);
+ VERIFY(next_permutation(array, array + 6));
+ VERIFY(std::lexicographical_compare(temp_array, temp_array + 6,
+ array, array + 6));
+ }
+ VERIFY(!next_permutation(array,array + 6));
+ for(int i = 0; i < 6; ++i)
+ VERIFY(array[i] == i);
+}
+
+int main()
+{
+ test1();
+ test2();
+ test3();
+ test4();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/next_permutation/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/next_permutation/check_type.cc
new file mode 100644
index 00000000000..15aff15e08b
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/next_permutation/check_type.cc
@@ -0,0 +1,44 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.9 [lib.alg.permutation.generators]
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+
+using __gnu_test::bidirectional_iterator_wrapper;
+
+struct S { };
+
+bool
+operator<(const S&, const S&) {return true;}
+
+struct X { };
+
+bool
+predicate(const X&, const X&) {return true;}
+
+bool
+test1(bidirectional_iterator_wrapper<S>& s)
+{ return std::next_permutation(s,s); }
+
+bool
+test2(bidirectional_iterator_wrapper<X>& x)
+{ return std::next_permutation(x,x,predicate); }
diff --git a/libstdc++-v3/testsuite/25_algorithms/nth_element/1.cc b/libstdc++-v3/testsuite/25_algorithms/nth_element/1.cc
new file mode 100644
index 00000000000..469e64bedf5
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/nth_element/1.cc
@@ -0,0 +1,79 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.2 [lib.alg.nth.element]
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::random_access_iterator_wrapper;
+using std::nth_element;
+
+typedef test_container<int, random_access_iterator_wrapper> Container;
+
+void
+test1()
+{
+ int array[]={0};
+ Container con(array, array);
+ partial_sort(con.begin(), con.begin(), con.end());
+}
+
+void
+test2()
+{
+ int array[]={2,1,0};
+ Container con(array, array + 2);
+ partial_sort(con.begin(), con.begin(), con.end());
+ partial_sort(con.begin(), con.end(), con.end());
+}
+
+void
+test3()
+{
+ int array[] = {6, 5, 4, 3, 2, 1, 0};
+ Container con(array, array + 7);
+ nth_element(con.begin(), con.it(3), con.end());
+ for(int i = 0; i < 3; ++i)
+ VERIFY(array[i] < array[3]);
+ for(int i = 4; i < 7; ++i)
+ VERIFY(array[3] < array[i]);
+}
+
+void
+test4()
+{
+ int array[] = {0, 6, 1, 5, 2, 4, 3};
+ Container con(array,array + 7);
+ nth_element(con.begin(), con.it(3), con.end());
+ for(int i = 0; i < 3; ++i)
+ VERIFY(array[i] < array[3]);
+ for(int i = 4; i < 7; ++i)
+ VERIFY(array[3] < array[i]);
+}
+
+int
+main()
+{
+ test1();
+ test2();
+ test3();
+ test4();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/nth_element/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/nth_element/check_type.cc
new file mode 100644
index 00000000000..3fd1ebadb2a
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/nth_element/check_type.cc
@@ -0,0 +1,45 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.2 [lib.alg.nth.element]
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+
+using __gnu_test::random_access_iterator_wrapper;
+
+struct S { };
+
+bool
+operator<(const S&, const S&) {return true;}
+
+struct X { };
+
+bool
+predicate(const X&, const X&) {return true;}
+
+void
+test1(random_access_iterator_wrapper<S>& s)
+{ std::nth_element(s, s, s); }
+
+void
+test2(random_access_iterator_wrapper<X>& x)
+{ std::nth_element(x, x, x, predicate); }
+
diff --git a/libstdc++-v3/testsuite/25_algorithms/partial_sort/1.cc b/libstdc++-v3/testsuite/25_algorithms/partial_sort/1.cc
new file mode 100644
index 00000000000..35c64ca0665
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/partial_sort/1.cc
@@ -0,0 +1,66 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.1.3 [lib.partial.sort]
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::random_access_iterator_wrapper;
+using std::partial_sort;
+
+typedef test_container<int, random_access_iterator_wrapper> Container;
+
+void
+test1()
+{
+ int array[]={2,1,0};
+ Container con1(array, array + 2);
+ Container con2(array, array);
+ partial_sort(con2.begin(), con2.begin(), con2.end());
+ partial_sort(con1.begin(), con1.begin(), con1.end());
+ partial_sort(con1.begin(), con1.end(), con1.end());
+}
+
+void
+test2()
+{
+ int array[] = {6, 5, 4, 3, 2, 1, 0};
+ Container con(array, array + 7);
+ partial_sort(con.begin(), con.it(3), con.end());
+ VERIFY(array[0] == 0 && array[1] == 1 && array[2] == 2);
+}
+
+void
+test3()
+{
+ int array[] = {0, 6, 1, 5, 2, 4, 3};
+ Container con(array,array + 7);
+ partial_sort(con.begin(), con.it(3), con.end());
+ VERIFY(array[0] == 0 && array[1] == 1 && array[2] == 2);
+}
+
+int
+main()
+{
+ test1();
+ test2();
+ test3();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/partial_sort/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/partial_sort/check_type.cc
new file mode 100644
index 00000000000..1a6a2e0fec8
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/partial_sort/check_type.cc
@@ -0,0 +1,49 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.1.3 [lib.partial.sort]
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+
+using __gnu_test::random_access_iterator_wrapper;
+
+struct S { };
+
+bool
+operator<(const S&, const S&) {return true;}
+
+struct X { };
+
+bool
+predicate(const X&, const X&) {return true;}
+
+void
+test1(random_access_iterator_wrapper<S>& s)
+{
+ std::partial_sort(s, s, s);
+}
+
+void
+test2(random_access_iterator_wrapper<X>& x)
+{
+ std::partial_sort(x, x, x, predicate);
+}
+
diff --git a/libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/1.cc b/libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/1.cc
new file mode 100644
index 00000000000..0b7263d3e30
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/1.cc
@@ -0,0 +1,89 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.1.4 [lib.partial.sort.copy]
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::random_access_iterator_wrapper;
+using __gnu_test::input_iterator_wrapper;
+using std::partial_sort_copy;
+
+typedef test_container<int, random_access_iterator_wrapper> Rcontainer;
+typedef test_container<int, input_iterator_wrapper> Icontainer;
+
+void
+test1()
+{
+ int array[]={2,1,0};
+ Rcontainer rcon1(array, array);
+ Rcontainer rcon2(array, array + 2);
+ Icontainer icon1(array, array);
+ Icontainer icon2(array, array + 2);
+ partial_sort_copy(icon1.begin(), icon1.end(), rcon1.begin(), rcon1.end());
+ partial_sort_copy(icon1.begin(), icon1.end(), rcon2.begin(), rcon2.end());
+ partial_sort_copy(icon2.begin(), icon2.end(), rcon1.begin(), rcon1.end());
+ partial_sort_copy(icon2.begin(), icon2.end(), rcon2.begin(), rcon2.end());
+}
+
+void
+test2()
+{
+ int array1[] = {4, 3, 2, 1, 0};
+ int array2[5];
+ Icontainer icon(array1, array1 + 5);
+ Rcontainer rcon(array2, array2 + 5);
+ partial_sort_copy(icon.begin(), icon.end(), rcon.begin(), rcon.end());
+ VERIFY(array2[0] == 0 && array2[1] == 1 && array2[2] == 2 &&
+ array2[3] == 3 && array2[4] == 4);
+}
+
+void
+test3()
+{
+ int array1[] = {4, 0, 1, 3, 2};
+ int array2[5];
+ Icontainer icon(array1, array1 + 5);
+ Rcontainer rcon(array2, array2 + 2);
+ partial_sort_copy(icon.begin(), icon.end(), rcon.begin(), rcon.end());
+ VERIFY(array2[0] == 0 && array2[1] == 1);
+}
+
+void
+test4()
+{
+ int array1[] = {4, 1, 3, 2, 0};
+ int array2[20];
+ Icontainer icon(array1, array1 + 5);
+ Rcontainer rcon(array2, array2 + 20);
+ partial_sort_copy(icon.begin(), icon.end(), rcon.begin(), rcon.end());
+ VERIFY(array2[0] == 0 && array2[1] == 1 && array2[2] == 2 &&
+ array2[3] == 3 && array2[4] == 4);
+}
+
+int
+main()
+{
+ test1();
+ test2();
+ test3();
+ test4();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/check_type.cc
new file mode 100644
index 00000000000..140f15bcc4d
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/check_type.cc
@@ -0,0 +1,68 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.1.4 [lib.partial.sort.copy]
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+
+using __gnu_test::input_iterator_wrapper;
+using __gnu_test::random_access_iterator_wrapper;
+
+struct S1 { };
+struct S2
+{
+ S2(const S1&) {}
+ S2() {}
+};
+
+bool
+operator<(const S1&, const S1&)
+{return true;}
+
+bool
+operator<(const S2&, const S2&)
+{return true;}
+
+struct X1 { };
+struct X2
+{
+ X2(const X1&) {}
+ X2() {}
+};
+
+struct predicate
+{
+ bool
+ operator()(const X1&, const X1&)
+ {return true;}
+
+ bool
+ operator()(const X2&, const X2&)
+ {return true;}
+};
+
+random_access_iterator_wrapper<S2>
+test1(input_iterator_wrapper<S1>& s1, random_access_iterator_wrapper<S2>& s2)
+{ return std::partial_sort_copy(s1, s1, s2, s2); }
+
+random_access_iterator_wrapper<X2>
+test2(input_iterator_wrapper<X1>& x1, random_access_iterator_wrapper<X2>& x2)
+{ return std::partial_sort_copy(x1, x1, x2, x2, predicate()); }
diff --git a/libstdc++-v3/testsuite/25_algorithms/partition.cc b/libstdc++-v3/testsuite/25_algorithms/partition/partition.cc
index b05c203bd32..b05c203bd32 100644
--- a/libstdc++-v3/testsuite/25_algorithms/partition.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/partition/partition.cc
diff --git a/libstdc++-v3/testsuite/25_algorithms/prev_permutation/1.cc b/libstdc++-v3/testsuite/25_algorithms/prev_permutation/1.cc
new file mode 100644
index 00000000000..530e032d7fc
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/prev_permutation/1.cc
@@ -0,0 +1,84 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.9 [lib.alg.permutation.generators]
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::bidirectional_iterator_wrapper;
+using std::prev_permutation;
+
+typedef test_container<int, bidirectional_iterator_wrapper> Container;
+
+void
+test1()
+{
+ // Note: The standard is unclear on what should happen in this case.
+ // This seems the only really sensible behaviour, and what is done.
+ int array[] = {0};
+ Container con(array, array);
+ VERIFY(!prev_permutation(con.begin(), con.end()));
+}
+
+void
+test2()
+{
+ int array[] = {0};
+ Container con(array, array + 1);
+ VERIFY(!prev_permutation(con.begin(), con.end()));
+}
+
+void
+test3()
+{
+ int array[] = {3, 0};
+ Container con(array, array + 2);
+ VERIFY(prev_permutation(con.begin(), con.end()));
+ VERIFY(array[0] == 0 && array[1] == 3);
+ VERIFY(!prev_permutation(con.begin(), con.end()));
+ VERIFY(array[0] == 3 && array[1] == 0);
+}
+
+void
+test4()
+{
+ int array[6] = {5, 4, 3, 2, 1, 0};
+ Container con(array, array + 6);
+ for(int i = 0 ; i < 719; ++i)
+ {
+ int temp_array[6];
+ std::copy(array, array + 6, temp_array);
+ VERIFY(prev_permutation(array, array + 6));
+ VERIFY(std::lexicographical_compare(array, array + 6,
+ temp_array, temp_array + 6));
+ }
+ VERIFY(!prev_permutation(array,array + 6));
+ for(int i = 0; i < 6; ++i)
+ VERIFY(array[i] == 5 - i);
+}
+
+int main()
+{
+ test1();
+ test2();
+ test3();
+ test4();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/prev_permutation/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/prev_permutation/check_type.cc
new file mode 100644
index 00000000000..f0fafc60cff
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/prev_permutation/check_type.cc
@@ -0,0 +1,44 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.9 [lib.alg.permutation.generators]
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+
+using __gnu_test::bidirectional_iterator_wrapper;
+
+struct S { };
+
+bool
+operator<(const S&, const S&) {return true;}
+
+struct X { };
+
+bool
+predicate(const X&, const X&) {return true;}
+
+bool
+test1(bidirectional_iterator_wrapper<S>& s)
+{ return std::prev_permutation(s,s); }
+
+bool
+test2(bidirectional_iterator_wrapper<X>& x)
+{ return std::prev_permutation(x,x,predicate); }
diff --git a/libstdc++-v3/testsuite/25_algorithms/remove/1.cc b/libstdc++-v3/testsuite/25_algorithms/remove/1.cc
new file mode 100644
index 00000000000..95ac53c1ba5
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/remove/1.cc
@@ -0,0 +1,63 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.2.4 remove
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::forward_iterator_wrapper;
+
+typedef test_container<int, forward_iterator_wrapper> Container;
+
+void
+test1()
+{
+ int array[1];
+ Container con(array, array);
+ VERIFY(std::remove(con.begin(), con.end(), 1).ptr == array);
+}
+
+void
+test2()
+{
+ int array[] = {1};
+ Container con(array, array + 1);
+ VERIFY(std::remove(con.begin(), con.end(), 0).ptr == array + 1);
+ VERIFY(std::remove(con.begin(), con.end(), 1).ptr == array);
+}
+
+void
+test3()
+{
+ int array[] = {0, 1, 0, 1, 0, 0, 1, 1};
+ Container con(array, array + 8);
+ VERIFY(std::remove(con.begin(), con.end(), 1).ptr == array + 4);
+ VERIFY(array[0] == 0 && array[1] == 0 && array[2] == 0 &&
+ array[3] == 0);
+}
+
+int
+main()
+{
+ test1();
+ test2();
+ test3();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/remove/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/remove/check_type.cc
new file mode 100644
index 00000000000..46a44de1cb9
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/remove/check_type.cc
@@ -0,0 +1,39 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.2.7 Remove
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+
+using __gnu_test::forward_iterator_wrapper;
+
+struct X { };
+
+struct Y { };
+
+bool
+operator==(const X&, const Y&)
+{ return true; }
+
+forward_iterator_wrapper<X>
+test1(forward_iterator_wrapper<X>& begin,
+ forward_iterator_wrapper<X>& end, const Y& val)
+{ return std::remove(begin, end, val); }
diff --git a/libstdc++-v3/testsuite/25_algorithms/remove_if/1.cc b/libstdc++-v3/testsuite/25_algorithms/remove_if/1.cc
new file mode 100644
index 00000000000..b72e02491aa
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/remove_if/1.cc
@@ -0,0 +1,66 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.2.4 remove
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::forward_iterator_wrapper;
+
+typedef test_container<int, forward_iterator_wrapper> Container;
+
+bool equal1(int val) { return val == 1; }
+bool equal0(int val) { return val == 0; }
+
+void
+test1()
+{
+ int array[1];
+ Container con(array, array);
+ VERIFY(std::remove_if(con.begin(), con.end(), equal1).ptr == array);
+}
+
+void
+test2()
+{
+ int array[] = {1};
+ Container con(array, array + 1);
+ VERIFY(std::remove_if(con.begin(), con.end(), equal0).ptr == array + 1);
+ VERIFY(std::remove_if(con.begin(), con.end(), equal1).ptr == array);
+}
+
+void
+test3()
+{
+ int array[] = {0, 1, 0, 1, 0, 0, 1, 1};
+ Container con(array, array + 8);
+ VERIFY(std::remove_if(con.begin(), con.end(), equal1).ptr == array + 4);
+ VERIFY(array[0] == 0 && array[1] == 0 && array[2] == 0 &&
+ array[3] == 0);
+}
+
+int
+main()
+{
+ test1();
+ test2();
+ test3();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/remove_if/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/remove_if/check_type.cc
new file mode 100644
index 00000000000..dbcde808bfb
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/remove_if/check_type.cc
@@ -0,0 +1,50 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.2.7 Remove_if
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+
+using __gnu_test::forward_iterator_wrapper;
+
+struct X { };
+
+bool
+pred_fn(const X&)
+{ return true; }
+
+struct pred_obj
+{
+ bool
+ operator()(const X&) const
+ { return true; }
+};
+
+forward_iterator_wrapper<X>
+test1(forward_iterator_wrapper<X>& begin,
+ forward_iterator_wrapper<X>& end)
+{ return std::remove_if(begin, end, pred_fn); }
+
+forward_iterator_wrapper<X>
+test2(forward_iterator_wrapper<X>& begin,
+ forward_iterator_wrapper<X>& end)
+{ return std::remove_if(begin, end, pred_obj()); }
+
diff --git a/libstdc++-v3/testsuite/25_algorithms/replace/1.cc b/libstdc++-v3/testsuite/25_algorithms/replace/1.cc
new file mode 100644
index 00000000000..4878855dccd
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/replace/1.cc
@@ -0,0 +1,61 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.2.4 replace
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::forward_iterator_wrapper;
+
+typedef test_container<int, forward_iterator_wrapper> Container;
+int array[] = {0, 0, 0, 1, 0, 1};
+
+void
+test1()
+{
+ Container con(array, array);
+ std::replace(con.begin(), con.end(), 1, 1);
+}
+
+void
+test2()
+{
+ Container con(array, array + 1);
+ std::replace(con.begin(), con.end(), 0, 1);
+ VERIFY(array[0] == 1);
+}
+
+void
+test3()
+{
+ Container con(array, array + 6);
+ std::replace(con.begin(), con.end(), 1, 2);
+ VERIFY(array[0] == 2 && array[1] == 0 && array[2] == 0 &&
+ array[3] == 2 && array[4] == 0 && array[5] == 2);
+}
+
+int
+main()
+{
+ test1();
+ test2();
+ test3();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/replace/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/replace/check_type.cc
new file mode 100644
index 00000000000..083342192ab
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/replace/check_type.cc
@@ -0,0 +1,38 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.2.4 Replace
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+
+using __gnu_test::forward_iterator_wrapper;
+
+struct X { };
+
+bool
+operator==(const X&, const X&)
+{ return true; }
+
+void
+test1(forward_iterator_wrapper<X>& begin,
+ forward_iterator_wrapper<X>& end, const X& old_val,
+ const X& new_val)
+{ return std::replace(begin, end, old_val, new_val); }
diff --git a/libstdc++-v3/testsuite/25_algorithms/replace_copy/1.cc b/libstdc++-v3/testsuite/25_algorithms/replace_copy/1.cc
new file mode 100644
index 00000000000..ebaea0cb666
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/replace_copy/1.cc
@@ -0,0 +1,72 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.2.4 replace_copy
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::input_iterator_wrapper;
+using __gnu_test::output_iterator_wrapper;
+
+typedef test_container<int, input_iterator_wrapper> Icontainer;
+typedef test_container<int, output_iterator_wrapper> Ocontainer;
+int array[] = {0, 0, 0, 1, 0, 1};
+
+void
+test1()
+{
+ int out[1];
+ Icontainer in_con(array, array);
+ Ocontainer out_con(out, out);
+ VERIFY(std::replace_copy(in_con.begin(), in_con.end(),
+ out_con.begin(), 1, 1).ptr == out);
+}
+
+void
+test2()
+{
+ int out[1];
+ Icontainer in_con(array, array + 1);
+ Ocontainer out_con(out, out + 1);
+ VERIFY(std::replace_copy(in_con.begin(), in_con.end(),
+ out_con.begin(), 0, 1).ptr == out + 1);
+ VERIFY(out[0] == 1);
+}
+
+void
+test3()
+{
+ int out[6];
+ Icontainer in_con(array, array + 6);
+ Ocontainer out_con(out, out + 6);
+ VERIFY(std::replace_copy(in_con.begin(), in_con.end(),
+ out_con.begin(), 1, 2).ptr == out + 6);
+ VERIFY(out[0] == 0 && out[1] == 0 && out[2] == 0 &&
+ out[3] == 2 && out[4] == 0 && out[5] == 2);
+}
+
+int
+main()
+{
+ test1();
+ test2();
+ test3();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/replace_copy/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/replace_copy/check_type.cc
new file mode 100644
index 00000000000..1a19a16e4ac
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/replace_copy/check_type.cc
@@ -0,0 +1,56 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.2.4 replace_copy
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+
+using __gnu_test::input_iterator_wrapper;
+using __gnu_test::output_iterator_wrapper;
+
+struct X { };
+
+struct Y { };
+
+struct Z
+{
+ Z&
+ operator=(const X&)
+ { }
+
+ Z&
+ operator=(const Y&)
+ { }
+};
+
+bool
+operator==(const X&, const Y&)
+{ return true; }
+
+output_iterator_wrapper<Z>
+test1(input_iterator_wrapper<X>& begin,
+ input_iterator_wrapper<X>& end,
+ output_iterator_wrapper<Z>& output,
+ const Y& old_val, const Y& new_val)
+{
+ return std::replace_copy(begin, end, output, old_val,
+ new_val);
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/replace_copy_if/1.cc b/libstdc++-v3/testsuite/25_algorithms/replace_copy_if/1.cc
new file mode 100644
index 00000000000..2c9c32d67dd
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/replace_copy_if/1.cc
@@ -0,0 +1,76 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.2.4 replace_copy_if
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::input_iterator_wrapper;
+using __gnu_test::output_iterator_wrapper;
+
+typedef test_container<int, input_iterator_wrapper> Icontainer;
+typedef test_container<int, output_iterator_wrapper> Ocontainer;
+int array[] = {0, 0, 0, 1, 0, 1};
+
+bool
+pred(int i)
+{ return i == 1; }
+
+void
+test1()
+{
+ int out[1];
+ Icontainer in_con(array, array);
+ Ocontainer out_con(out, out);
+ VERIFY(std::replace_copy_if(in_con.begin(), in_con.end(),
+ out_con.begin(), pred, 1).ptr == out);
+}
+
+void
+test2()
+{
+ int out[1];
+ Icontainer in_con(array, array + 1);
+ Ocontainer out_con(out, out + 1);
+ VERIFY(std::replace_copy_if(in_con.begin(), in_con.end(),
+ out_con.begin(), pred, 2).ptr == out + 1);
+ VERIFY(out[0] == 0);
+}
+
+void
+test3()
+{
+ int out[6];
+ Icontainer in_con(array, array + 6);
+ Ocontainer out_con(out, out + 6);
+ VERIFY(std::replace_copy_if(in_con.begin(), in_con.end(),
+ out_con.begin(), pred, 2).ptr == out + 6);
+ VERIFY(out[0] == 0 && out[1] == 0 && out[2] == 0 &&
+ out[3] == 2 && out[4] == 0 && out[5] == 2);
+}
+
+int
+main()
+{
+ test1();
+ test2();
+ test3();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/replace_copy_if/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/replace_copy_if/check_type.cc
new file mode 100644
index 00000000000..55b90402242
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/replace_copy_if/check_type.cc
@@ -0,0 +1,56 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.2.4 replace_copy_if
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+
+using __gnu_test::input_iterator_wrapper;
+using __gnu_test::output_iterator_wrapper;
+
+struct X { };
+
+struct Y { };
+
+struct Z
+{
+ Z&
+ operator=(const X&)
+ { }
+
+ Z&
+ operator=(const Y&)
+ { }
+};
+
+bool
+predicate(const X&)
+{ return true; }
+
+output_iterator_wrapper<Z>
+test1(input_iterator_wrapper<X>& begin,
+ input_iterator_wrapper<X>& end,
+ output_iterator_wrapper<Z>& output,
+ const Y& new_val)
+{
+ return std::replace_copy_if(begin, end, output, predicate,
+ new_val);
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/replace_if/1.cc b/libstdc++-v3/testsuite/25_algorithms/replace_if/1.cc
new file mode 100644
index 00000000000..98cf1f3dde1
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/replace_if/1.cc
@@ -0,0 +1,65 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.2.4 replace_if
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::forward_iterator_wrapper;
+
+typedef test_container<int, forward_iterator_wrapper> Container;
+int array[] = {1, 0, 0, 1, 0, 1};
+
+bool
+predicate(const int& i)
+{ return i == 1; }
+
+void
+test1()
+{
+ Container con(array, array);
+ std::replace_if(con.begin(), con.end(), predicate, 1);
+}
+
+void
+test2()
+{
+ Container con(array, array + 1);
+ std::replace_if(con.begin(), con.end(), predicate, 2);
+ VERIFY(array[0] == 2);
+}
+
+void
+test3()
+{
+ Container con(array, array + 6);
+ std::replace_if(con.begin(), con.end(), predicate, 3);
+ VERIFY(array[0] == 2 && array[1] == 0 && array[2] == 0 &&
+ array[3] == 3 && array[4] == 0 && array[5] == 3);
+}
+
+int
+main()
+{
+ test1();
+ test2();
+ test3();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/replace_if/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/replace_if/check_type.cc
new file mode 100644
index 00000000000..b8adaec9fcc
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/replace_if/check_type.cc
@@ -0,0 +1,52 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.2.4 replace_if
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+
+using __gnu_test::forward_iterator_wrapper;
+
+struct X { };
+
+bool
+pred_fn(const X&)
+{ return true; }
+
+struct pred_obj
+{
+ bool
+ operator()(const X&)
+ { return true; }
+};
+
+
+void
+test1(forward_iterator_wrapper<X>& begin,
+ forward_iterator_wrapper<X>& end, const X& new_val)
+{ return std::replace_if(begin, end, pred_fn, new_val); }
+
+void
+test2(forward_iterator_wrapper<X>& begin,
+ forward_iterator_wrapper<X>& end, const X& new_val)
+{ return std::replace_if(begin, end, pred_obj(), new_val); }
+
+
diff --git a/libstdc++-v3/testsuite/25_algorithms/rotate/1.cc b/libstdc++-v3/testsuite/25_algorithms/rotate/1.cc
new file mode 100644
index 00000000000..be41d57bc99
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/rotate/1.cc
@@ -0,0 +1,126 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.2.10 rotate
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::forward_iterator_wrapper;
+using __gnu_test::bidirectional_iterator_wrapper;
+using __gnu_test::random_access_iterator_wrapper;
+
+typedef test_container<int, forward_iterator_wrapper> Fcontainer;
+typedef test_container<int, bidirectional_iterator_wrapper> Bcontainer;
+typedef test_container<int, random_access_iterator_wrapper> Rcontainer;
+
+
+
+void
+test1()
+{
+ bool test __attribute__((unused)) = true;
+ int array[]={1};
+ Fcontainer fcon(array, array);
+ Bcontainer bcon(array, array);
+ Rcontainer rcon(array, array);
+ std::rotate(fcon.begin(), fcon.begin(), fcon.end());
+ std::rotate(bcon.begin(), bcon.begin(), bcon.end());
+ std::rotate(rcon.begin(), rcon.begin(), rcon.end());
+}
+
+void
+test2()
+{
+ bool test __attribute__((unused)) = true;
+ int array[] = {1};
+ Fcontainer fcon(array, array + 1);
+ Bcontainer bcon(array, array + 1);
+ Rcontainer rcon(array, array + 1);
+ std::rotate(fcon.begin(), fcon.begin(), fcon.end());
+ std::rotate(bcon.begin(), bcon.begin(), bcon.end());
+ std::rotate(rcon.begin(), rcon.begin(), rcon.end());
+ std::rotate(fcon.begin(), fcon.end(), fcon.end());
+ std::rotate(bcon.begin(), bcon.end(), bcon.end());
+ std::rotate(rcon.begin(), rcon.end(), rcon.end());
+}
+
+void
+test3()
+{
+ bool test __attribute__((unused)) = true;
+ int array[] = {1, 2, 3, 4, 5};
+ Fcontainer fcon(array, array + 5);
+ Bcontainer bcon(array, array + 5);
+ Rcontainer rcon(array, array + 5);
+ std::rotate(fcon.begin(), fcon.it(2), fcon.end());
+ VERIFY(array[0] == 3 && array[1] == 4 && array[2] == 5 &&
+ array[3] == 1 && array[4] == 2);
+ std::rotate(bcon.begin(), bcon.it(2), bcon.end());
+ VERIFY(array[0] == 5 && array[1] == 1 && array[2] == 2 &&
+ array[3] == 3 && array[4] == 4);
+ std::rotate(rcon.begin(), rcon.it(2), rcon.end());
+ VERIFY(array[0] == 2 && array[1] == 3 && array[2] == 4 &&
+ array[3] == 5 && array[4] == 1);
+}
+
+void
+test4()
+{
+ bool test __attribute__((unused)) = true;
+ int array[] = {1, 2, 3, 4};
+ Fcontainer fcon(array, array + 4);
+ Bcontainer bcon(array, array + 4);
+ Rcontainer rcon(array, array + 4);
+
+ std::rotate(fcon.begin(), fcon.it(3), fcon.end());
+ VERIFY(array[0] == 4 && array[1] == 1 && array[2] == 2 &&
+ array[3] == 3);
+
+ std::rotate(bcon.begin(), bcon.it(3), bcon.end());
+ VERIFY(array[0] == 3 && array[1] == 4 && array[2] == 1 &&
+ array[3] == 2);
+
+ std::rotate(rcon.begin(), rcon.it(3), rcon.end());
+ VERIFY(array[0] == 2 && array[1] == 3 && array[2] == 4 &&
+ array[3] == 1);
+
+}
+
+void
+test5()
+{
+ bool test __attribute__((unused)) = true;
+ int array[] = {1, 2, 3, 4};
+ Rcontainer con(array, array + 4);
+ std::rotate(con.begin(), con.it(2), con.end());
+ VERIFY(array[0] == 3 && array[1] == 4 && array[2] == 1 &&
+ array[3] == 2);
+}
+
+int
+main()
+{
+ test1();
+ test2();
+ test3();
+ test4();
+ test5();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/rotate/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/rotate/check_type.cc
new file mode 100644
index 00000000000..31b7123954c
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/rotate/check_type.cc
@@ -0,0 +1,48 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.2.10 Rotate
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+
+struct X { };
+
+bool operator<(X,X) { return true;}
+
+void
+test1(__gnu_test::forward_iterator_wrapper<X>& begin,
+ __gnu_test::forward_iterator_wrapper<X>& middle,
+ __gnu_test::forward_iterator_wrapper<X>& end)
+{ return std::rotate(begin,middle,end); }
+
+void
+test1(__gnu_test::bidirectional_iterator_wrapper<X>& begin,
+ __gnu_test::bidirectional_iterator_wrapper<X>& middle,
+ __gnu_test::bidirectional_iterator_wrapper<X>& end)
+{ return std::rotate(begin,middle,end); }
+
+void
+test1(__gnu_test::random_access_iterator_wrapper<X>& begin,
+ __gnu_test::random_access_iterator_wrapper<X>& middle,
+ __gnu_test::random_access_iterator_wrapper<X>& end)
+{ return std::rotate(begin,middle,end); }
+
+
diff --git a/libstdc++-v3/testsuite/25_algorithms/rotate.cc b/libstdc++-v3/testsuite/25_algorithms/rotate/rotate.cc
index 00768a230c8..00768a230c8 100644
--- a/libstdc++-v3/testsuite/25_algorithms/rotate.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/rotate/rotate.cc
diff --git a/libstdc++-v3/testsuite/25_algorithms/search/1.cc b/libstdc++-v3/testsuite/25_algorithms/search/1.cc
new file mode 100644
index 00000000000..5a0ed51cb68
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/search/1.cc
@@ -0,0 +1,113 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.1.5 [lib.alg.search]
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::forward_iterator_wrapper;
+using std::search;
+
+typedef test_container<int, forward_iterator_wrapper> Container;
+int array1[] = {0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1};
+int array2[] = {0, 0, 0};
+
+void
+test1()
+{
+ bool test __attribute__((unused)) = true;
+ Container con1(array1, array1);
+ Container con2(array1, array1 + 1);
+ VERIFY(search(con1.begin(), con1.end(), con2.begin(), con2.end()).ptr == array1);
+ VERIFY(search(con2.begin(), con2.end(), con1.begin(), con1.end()).ptr == array1);
+}
+
+void
+test2()
+{
+ bool test __attribute__((unused)) = true;
+ Container con1(array1, array1 + 3);
+ Container con2(array2, array2 + 3);
+ VERIFY(search(con1.begin(), con1.end(), con2.begin(), con2.end()).ptr
+ == array1);
+}
+
+void
+test3()
+{
+ bool test __attribute__((unused)) = true;
+ Container con1(array1 + 3, array1 + 10);
+ Container con2(array2, array2 + 3);
+ VERIFY(search(con1.begin(), con1.end(), con2.begin(), con2.end()).ptr
+ == array1 + 10);
+}
+
+void
+test4()
+{
+ bool test __attribute__((unused)) = true;
+ Container con1(array1, array1 + 10);
+ Container con2(array2, array2 + 1);
+ VERIFY(search(con1.begin(), con1.end(), con2.begin(), con2.end()).ptr
+ == array1);
+}
+
+void
+test5()
+{
+ bool test __attribute__((unused)) = true;
+ Container con1(array1 + 6, array1 + 10);
+ Container con2(array2, array2 + 1);
+ VERIFY(search(con1.begin(), con1.end(), con2.begin(), con2.end()).ptr
+ == array1 + 10);
+}
+
+void
+test6()
+{
+ bool test __attribute__((unused)) = true;
+ int array3[]={2, 2, 1, 2, 3, 5};
+ int array4[]={1, 2, 3, 4};
+ Container con1(array3, array3 + 3);
+ Container con2(array3, array3 + 4);
+ Container con3(array3, array3 + 5);
+ Container con4(array3, array3 + 6);
+ Container endcon(array4, array4 + 4);
+ VERIFY(search(con1.begin(), con1.end(), endcon.begin(), endcon.end()).ptr
+ == array3 + 3);
+ VERIFY(search(con2.begin(), con2.end(), endcon.begin(), endcon.end()).ptr
+ == array3 + 4);
+ VERIFY(search(con3.begin(), con3.end(), endcon.begin(), endcon.end()).ptr
+ == array3 + 5);
+ VERIFY(search(con4.begin(), con4.end(), endcon.begin(), endcon.end()).ptr
+ == array3 + 6);
+}
+
+int
+main()
+{
+ test1();
+ test2();
+ test3();
+ test4();
+ test5();
+ test6();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/search/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/search/check_type.cc
new file mode 100644
index 00000000000..9e3a587f2b7
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/search/check_type.cc
@@ -0,0 +1,46 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.1.9 [lib.alg.search]
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+
+using __gnu_test::forward_iterator_wrapper;
+
+struct S1 { };
+struct S2 { };
+
+bool
+operator==(const S1&, const S2&) {return true;}
+
+struct X1 { };
+struct X2 { };
+
+bool
+predicate(const X1&, const X2&) {return true;}
+
+forward_iterator_wrapper<S1>
+test1(forward_iterator_wrapper<S1>& s1, forward_iterator_wrapper<S2>& s2)
+{ return std::search(s1, s1, s2, s2); }
+
+forward_iterator_wrapper<X1>
+test2(forward_iterator_wrapper<X1>& x1, forward_iterator_wrapper<X2>& x2)
+{ return std::search(x1, x1, x2, x2, predicate); }
diff --git a/libstdc++-v3/testsuite/25_algorithms/search_n/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/search_n/check_type.cc
new file mode 100644
index 00000000000..dd4073ff308
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/search_n/check_type.cc
@@ -0,0 +1,39 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.1.9 search_n
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+
+using __gnu_test::forward_iterator_wrapper;
+
+struct X { };
+
+struct Y { };
+
+bool
+operator==(const X&, const Y&)
+{ return true; }
+
+forward_iterator_wrapper<X>
+test1(forward_iterator_wrapper<X>& begin,
+ forward_iterator_wrapper<X>& end, int i, Y& value)
+{ return std::search_n(begin, end, i , value); }
diff --git a/libstdc++-v3/testsuite/25_algorithms/search_n/iterator.cc b/libstdc++-v3/testsuite/25_algorithms/search_n/iterator.cc
index f822745be22..fea009d2775 100644
--- a/libstdc++-v3/testsuite/25_algorithms/search_n/iterator.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/search_n/iterator.cc
@@ -76,7 +76,7 @@ int main() {
{
test_container<int, forward_iterator_wrapper>
forwardcon(array2, array2 + i);
- test_container<int, bidirectional_iterator_wrapper>
+ test_container<int, random_access_iterator_wrapper>
randomcon(array2, array2 + i);
test_container<int, bidirectional_iterator_wrapper>
bidircon(array2, array2 + i);
diff --git a/libstdc++-v3/testsuite/25_algorithms/set_difference/1.cc b/libstdc++-v3/testsuite/25_algorithms/set_difference/1.cc
new file mode 100644
index 00000000000..9d0fbe62639
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/set_difference/1.cc
@@ -0,0 +1,132 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.5.3 [lib.set.difference]
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::input_iterator_wrapper;
+using __gnu_test::output_iterator_wrapper;
+using std::set_difference;
+
+typedef test_container<int, input_iterator_wrapper> Icontainer;
+typedef test_container<int, output_iterator_wrapper> Ocontainer;
+
+void
+test1()
+{
+ int array1[1], array2[1];
+ Icontainer con1(array1, array1);
+ Icontainer con2(array1, array1);
+ Ocontainer con3(array2, array2);
+ VERIFY(set_difference(con1.begin(), con1.end(), con2.begin(), con2.end(),
+ con3.begin()).ptr == array2);
+}
+
+void
+test2()
+{
+ int array1[] = {1};
+ int array2[] = {0};
+ Icontainer con1(array1, array1);
+ Icontainer con2(array1, array1 + 1);
+ Ocontainer con3(array2, array2);
+ VERIFY(set_difference(con1.begin(), con1.end(), con2.begin(), con2.end(),
+ con3.begin()).ptr == array2);
+}
+
+void
+test3()
+{
+ int array1[] = {1};
+ int array2[] = {0};
+ Icontainer con1(array1, array1 + 1);
+ Icontainer con2(array1, array1);
+ Ocontainer con3(array2, array2 + 1);
+ VERIFY(set_difference(con1.begin(), con1.end(), con2.begin(), con2.end(),
+ con3.begin()).ptr == array2 + 1);
+}
+
+void
+test4()
+{
+ int array1[]={0,1,1,2,4};
+ int array2[]={1,2,3};
+ int array3[6];
+ Icontainer con1(array1, array1 + 5);
+ Icontainer con2(array2, array2 + 3);
+ Ocontainer con3(array3, array3 + 3);
+ VERIFY(set_difference(con1.begin(), con1.end(), con2.begin(), con2.end(),
+ con3.begin()).ptr == array3 + 3);
+ VERIFY(array3[0] == 0 && array3[1] == 1 && array3[2] == 4);
+}
+
+struct S
+{
+ int i;
+ int j;
+ S() {}
+ S(int in)
+ {
+ if(in > 0)
+ {
+ i = in;
+ j = 1;
+ }
+ else
+ {
+ i = -in;
+ j = 0;
+ }
+ }
+};
+
+bool
+operator<(const S& s1, const S& s2)
+{ return s1.i < s2.i; }
+
+typedef test_container<S, input_iterator_wrapper> SIcontainer;
+typedef test_container<S, output_iterator_wrapper> SOcontainer;
+
+void
+test5()
+{
+ S array1[] = { -1, -1, -1, -2, -2, -3, -4};
+ S array2[] = { 1, 1, 1, 1, 2, 4, 4};
+ S array3[9];
+ SIcontainer con1(array1, array1 + 7);
+ SIcontainer con2(array2, array2 + 7);
+ SOcontainer con3(array3, array3 + 2);
+ VERIFY(set_difference(con1.begin(), con1.end(), con2.begin(), con2.end(),
+ con3.begin()).ptr == array3 + 2);
+ for(int i = 0; i < 2; ++i)
+ VERIFY(array3[i].j == 0);
+}
+
+int main()
+{
+ test1();
+ test2();
+ test3();
+ test4();
+ test5();
+}
+
diff --git a/libstdc++-v3/testsuite/25_algorithms/set_difference/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/set_difference/check_type.cc
new file mode 100644
index 00000000000..43d54ad5ae3
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/set_difference/check_type.cc
@@ -0,0 +1,44 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.5.4 [lib.set.difference]
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+using __gnu_test::input_iterator_wrapper;
+using __gnu_test::output_iterator_wrapper;
+
+struct S { };
+
+bool
+operator<(const S&, const S&) {return true;}
+
+struct X { };
+
+bool
+predicate(const X&, const X&) {return true;}
+
+output_iterator_wrapper<S>
+test1(input_iterator_wrapper<S>& in, output_iterator_wrapper<S>& out)
+{ return std::set_difference(in, in, in, in, out); }
+
+output_iterator_wrapper<X>
+test2(input_iterator_wrapper<X>& in, output_iterator_wrapper<X>& out)
+{ return std::set_difference(in, in, in, in, out, predicate); }
diff --git a/libstdc++-v3/testsuite/25_algorithms/set_intersection/1.cc b/libstdc++-v3/testsuite/25_algorithms/set_intersection/1.cc
new file mode 100644
index 00000000000..d0a648e9a53
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/set_intersection/1.cc
@@ -0,0 +1,132 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.5.3 [lib.set.intersection]
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::input_iterator_wrapper;
+using __gnu_test::output_iterator_wrapper;
+using std::set_intersection;
+
+typedef test_container<int, input_iterator_wrapper> Icontainer;
+typedef test_container<int, output_iterator_wrapper> Ocontainer;
+
+void
+test1()
+{
+ int array1[1], array2[1];
+ Icontainer con1(array1, array1);
+ Icontainer con2(array1, array1);
+ Ocontainer con3(array2, array2);
+ VERIFY(set_intersection(con1.begin(), con1.end(), con2.begin(), con2.end(),
+ con3.begin()).ptr == array2);
+}
+
+void
+test2()
+{
+ int array1[] = {1};
+ int array2[] = {0};
+ Icontainer con1(array1, array1);
+ Icontainer con2(array1, array1 + 1);
+ Ocontainer con3(array2, array2);
+ VERIFY(set_intersection(con1.begin(), con1.end(), con2.begin(), con2.end(),
+ con3.begin()).ptr == array2);
+}
+
+void
+test3()
+{
+ int array1[] = {1};
+ int array2[] = {0};
+ Icontainer con1(array1, array1 + 1);
+ Icontainer con2(array1, array1);
+ Ocontainer con3(array2, array2);
+ VERIFY(set_intersection(con1.begin(), con1.end(), con2.begin(), con2.end(),
+ con3.begin()).ptr == array2);
+}
+
+void
+test4()
+{
+ int array1[]={0,1,1,2,4};
+ int array2[]={1,2,3};
+ int array3[6];
+ Icontainer con1(array1, array1 + 5);
+ Icontainer con2(array2, array2 + 3);
+ Ocontainer con3(array3, array3 + 2);
+ VERIFY(set_intersection(con1.begin(), con1.end(), con2.begin(), con2.end(),
+ con3.begin()).ptr == array3 + 2);
+ VERIFY(array3[0] == 1 && array3[1] == 2);
+}
+
+struct S
+{
+ int i;
+ int j;
+ S() {}
+ S(int in)
+ {
+ if(in > 0)
+ {
+ i = in;
+ j = 1;
+ }
+ else
+ {
+ i = -in;
+ j = 0;
+ }
+ }
+};
+
+bool
+operator<(const S& s1, const S& s2)
+{ return s1.i < s2.i; }
+
+typedef test_container<S, input_iterator_wrapper> SIcontainer;
+typedef test_container<S, output_iterator_wrapper> SOcontainer;
+
+void
+test5()
+{
+ S array1[] = { -1, -1, -1, -2, -2, -4};
+ S array2[] = { 1, 1, 1, 1, 2, 3, 4, 4};
+ S array3[5];
+ SIcontainer con1(array1, array1 + 6);
+ SIcontainer con2(array2, array2 + 8);
+ SOcontainer con3(array3, array3 + 5);
+ VERIFY(set_intersection(con1.begin(), con1.end(), con2.begin(), con2.end(),
+ con3.begin()).ptr == array3 + 5);
+ for(int i = 0; i < 5; ++i)
+ VERIFY(array3[i].j == 0);
+}
+
+int main()
+{
+ test1();
+ test2();
+ test3();
+ test4();
+ test5();
+}
+
diff --git a/libstdc++-v3/testsuite/25_algorithms/set_intersection/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/set_intersection/check_type.cc
new file mode 100644
index 00000000000..a1ef6f9486e
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/set_intersection/check_type.cc
@@ -0,0 +1,44 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.5.3 [lib.set.intersection]
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+using __gnu_test::input_iterator_wrapper;
+using __gnu_test::output_iterator_wrapper;
+
+struct S { };
+
+bool
+operator<(const S&, const S&) {return true;}
+
+struct X { };
+
+bool
+predicate(const X&, const X&) {return true;}
+
+output_iterator_wrapper<S>
+test1(input_iterator_wrapper<S>& in, output_iterator_wrapper<S>& out)
+{ return std::set_intersection(in, in, in, in, out); }
+
+output_iterator_wrapper<X>
+test2(input_iterator_wrapper<X>& in, output_iterator_wrapper<X>& out)
+{ return std::set_intersection(in, in, in, in, out, predicate); }
diff --git a/libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/1.cc b/libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/1.cc
new file mode 100644
index 00000000000..932eb4f41cf
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/1.cc
@@ -0,0 +1,134 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.5.5 [lib.set.symmetric.difference]
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::input_iterator_wrapper;
+using __gnu_test::output_iterator_wrapper;
+using std::set_symmetric_difference;
+
+typedef test_container<int, input_iterator_wrapper> Icontainer;
+typedef test_container<int, output_iterator_wrapper> Ocontainer;
+
+void
+test1()
+{
+ int array1[1], array2[1];
+ Icontainer con1(array1, array1);
+ Icontainer con2(array1, array1);
+ Ocontainer con3(array2, array2);
+ VERIFY(set_symmetric_difference(con1.begin(), con1.end(), con2.begin(),
+ con2.end(), con3.begin()).ptr == array2);
+}
+
+void
+test2()
+{
+ int array1[] = {1};
+ int array2[] = {0};
+ Icontainer con1(array1, array1);
+ Icontainer con2(array1, array1 + 1);
+ Ocontainer con3(array2, array2 + 1);
+ VERIFY(set_symmetric_difference(con1.begin(), con1.end(), con2.begin(),
+ con2.end(), con3.begin()).ptr == array2 + 1);
+}
+
+void
+test3()
+{
+ int array1[] = {1};
+ int array2[] = {0};
+ Icontainer con1(array1, array1 + 1);
+ Icontainer con2(array1, array1);
+ Ocontainer con3(array2, array2 + 1);
+ VERIFY(set_symmetric_difference(con1.begin(), con1.end(), con2.begin(),
+ con2.end(), con3.begin()).ptr == array2 + 1);
+}
+
+void
+test4()
+{
+ int array1[]={0,1,1,2,4};
+ int array2[]={1,2,2,3};
+ int array3[5];
+ Icontainer con1(array1, array1 + 5);
+ Icontainer con2(array2, array2 + 4);
+ Ocontainer con3(array3, array3 + 5);
+ VERIFY(set_symmetric_difference(con1.begin(), con1.end(), con2.begin(),
+ con2.end(), con3.begin()).ptr == array3 + 5);
+ VERIFY(array3[0] == 0 && array3[1] == 1 && array3[2] == 2 &&
+ array3[3] == 3 && array3[4] == 4);
+}
+
+struct S
+{
+ int i;
+ int j;
+ S() {}
+ S(int in)
+ {
+ if(in > 0)
+ {
+ i = in;
+ j = 1;
+ }
+ else
+ {
+ i = -in;
+ j = 0;
+ }
+ }
+};
+
+bool
+operator<(const S& s1, const S& s2)
+{ return s1.i < s2.i; }
+
+typedef test_container<S, input_iterator_wrapper> SIcontainer;
+typedef test_container<S, output_iterator_wrapper> SOcontainer;
+
+void
+test5()
+{
+ S array1[] = { -1, -1, -2, -2, -4, -5};
+ S array2[] = { 1, 1, 1, 2, 3, 4};
+ S array3[4];
+ SIcontainer con1(array1, array1 + 6);
+ SIcontainer con2(array2, array2 + 6);
+ SOcontainer con3(array3, array3 + 4);
+ VERIFY(set_symmetric_difference(con1.begin(), con1.end(), con2.begin(),
+ con2.end(), con3.begin()).ptr == array3 + 4);
+ VERIFY(array3[0].j == 1 && array3[1].j == 0 && array3[2].j == 1 &&
+ array3[3].j == 0);
+}
+
+int
+main()
+{
+ test1();
+ test2();
+ test3();
+ test4();
+ test5();
+}
+
diff --git a/libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/check_type.cc
new file mode 100644
index 00000000000..c9c63a7f2d0
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/check_type.cc
@@ -0,0 +1,45 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.5.5 [lib.set.symmetric.difference]
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+using __gnu_test::input_iterator_wrapper;
+using __gnu_test::output_iterator_wrapper;
+
+struct S { };
+
+bool
+operator<(const S&, const S&) {return true;}
+
+struct X { };
+
+bool
+predicate(const X&, const X&) {return true;}
+
+output_iterator_wrapper<S>
+test1(input_iterator_wrapper<S>& in, output_iterator_wrapper<S>& out)
+{ return std::set_symmetric_difference(in, in, in, in, out); }
+
+output_iterator_wrapper<X>
+test2(input_iterator_wrapper<X>& in, output_iterator_wrapper<X>& out)
+{ return std::set_symmetric_difference(in, in, in, in, out, predicate);
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/set_union/1.cc b/libstdc++-v3/testsuite/25_algorithms/set_union/1.cc
new file mode 100644
index 00000000000..03bfcaca8b2
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/set_union/1.cc
@@ -0,0 +1,137 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.5.2 [lib.set.union]
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::input_iterator_wrapper;
+using __gnu_test::output_iterator_wrapper;
+using std::set_union;
+
+typedef test_container<int, input_iterator_wrapper> Icontainer;
+typedef test_container<int, output_iterator_wrapper> Ocontainer;
+
+void
+test1()
+{
+ int array1[1], array2[1];
+ Icontainer con1(array1, array1);
+ Icontainer con2(array1, array1);
+ Ocontainer con3(array2, array2);
+ VERIFY(set_union(con1.begin(), con1.end(), con2.begin(), con2.end(),
+ con3.begin()).ptr == array2);
+}
+
+void
+test2()
+{
+ int array1[] = {1};
+ int array2[] = {0};
+ Icontainer con1(array1, array1);
+ Icontainer con2(array1, array1 + 1);
+ Ocontainer con3(array2, array2 + 1);
+ VERIFY(set_union(con1.begin(), con1.end(), con2.begin(), con2.end(),
+ con3.begin()).ptr == array2 + 1);
+ VERIFY(array2[0] == 1);
+}
+
+void
+test3()
+{
+ int array1[] = {1};
+ int array2[] = {0};
+ Icontainer con1(array1, array1 + 1);
+ Icontainer con2(array1, array1);
+ Ocontainer con3(array2, array2 + 1);
+ VERIFY(set_union(con1.begin(), con1.end(), con2.begin(), con2.end(),
+ con3.begin()).ptr == array2 + 1);
+ VERIFY(array2[0] == 1);
+}
+
+void
+test4()
+{
+ int array1[]={0,1,1,2,4};
+ int array2[]={1,2,3};
+ int array3[6];
+ Icontainer con1(array1, array1 + 5);
+ Icontainer con2(array2, array2 + 3);
+ Ocontainer con3(array3, array3 + 6);
+ VERIFY(set_union(con1.begin(), con1.end(), con2.begin(), con2.end(),
+ con3.begin()).ptr == array3 + 6);
+ VERIFY(array3[0] == 0 && array3[1] == 1 && array3[2] == 1 &&
+ array3[3] == 2 && array3[4] == 3 && array3[5] == 4);
+}
+
+struct S
+{
+ int i;
+ int j;
+ S() {}
+ S(int in)
+ {
+ if(in > 0)
+ {
+ i = in;
+ j = 1;
+ }
+ else
+ {
+ i = -in;
+ j = 0;
+ }
+ }
+};
+
+bool
+operator<(const S& s1, const S& s2)
+{ return s1.i < s2.i; }
+
+typedef test_container<S, input_iterator_wrapper> SIcontainer;
+typedef test_container<S, output_iterator_wrapper> SOcontainer;
+
+void
+test5()
+{
+ S array1[] = { -1, -1, -1, -2, -2, -4};
+ S array2[] = { 1, 1, 1, 1, 2, 3, 4, 4};
+ S array3[9];
+ SIcontainer con1(array1, array1 + 6);
+ SIcontainer con2(array2, array2 + 8);
+ SOcontainer con3(array3, array3 + 9);
+ VERIFY(set_union(con1.begin(), con1.end(), con2.begin(), con2.end(),
+ con3.begin()).ptr == array3 + 9);
+ VERIFY(array3[0].j == 0 && array3[1].j == 0 && array3[2].j == 0 &&
+ array3[3].j == 1 && array3[4].j == 0 && array3[5].j == 0 &&
+ array3[6].j == 1 && array3[7].j == 0 && array3[8].j == 1);
+}
+
+int
+main()
+{
+ test1();
+ test2();
+ test3();
+ test4();
+ test5();
+}
+
diff --git a/libstdc++-v3/testsuite/25_algorithms/set_union/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/set_union/check_type.cc
new file mode 100644
index 00000000000..286de97fec4
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/set_union/check_type.cc
@@ -0,0 +1,44 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.5.2 [lib.set.union]
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+using __gnu_test::input_iterator_wrapper;
+using __gnu_test::output_iterator_wrapper;
+
+struct S { };
+
+bool
+operator<(const S&, const S&) {return true;}
+
+struct X { };
+
+bool
+predicate(const X&, const X&) {return true;}
+
+output_iterator_wrapper<S>
+test1(input_iterator_wrapper<S>& in, output_iterator_wrapper<S>& out)
+{ return std::set_union(in, in, in, in, out); }
+
+output_iterator_wrapper<X>
+test2(input_iterator_wrapper<X>& in, output_iterator_wrapper<X>& out)
+{ return std::set_union(in, in, in, in, out, predicate); }
diff --git a/libstdc++-v3/testsuite/25_algorithms/stable_sort/1.cc b/libstdc++-v3/testsuite/25_algorithms/stable_sort/1.cc
new file mode 100644
index 00000000000..659c2782a39
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/stable_sort/1.cc
@@ -0,0 +1,90 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.1.2 [lib.stable.sort]
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::random_access_iterator_wrapper;
+using std::stable_sort;
+
+typedef test_container<int, random_access_iterator_wrapper> Container;
+
+void
+test1()
+{
+ int array[]={0};
+ Container con(array, array);
+ stable_sort(con.begin(), con.end());
+}
+
+void
+test2()
+{
+ int array[] = {6, 5, 4, 3, 2, 1, 0};
+ Container con(array, array + 7);
+ stable_sort(con.begin(), con.end());
+ VERIFY(array[0] == 0 && array[1] == 1 && array[2] == 2 &&
+ array[3] == 3 && array[4] == 4 && array[5] == 5 &&
+ array[6] == 6);
+}
+struct S
+{
+ int i;
+ int j;
+ S() {}
+ S(int in)
+ {
+ if(in > 0)
+ {
+ i = in;
+ j = 1;
+ }
+ else
+ {
+ i = -in;
+ j = 0;
+ }
+ }
+};
+
+bool
+operator<(const S& s1, const S& s2)
+{ return s1.i < s2.i; }
+
+void
+test3()
+{
+
+ S array[] = {-1, -2, 1, 2, -3 ,-5 ,3 , -4, 5, 4};
+ test_container<S, random_access_iterator_wrapper> con(array,array + 10);
+ stable_sort(con.begin(), con.end());
+ for(int i = 0; i < 10; ++i)
+ VERIFY(array[i].j == i % 2);
+}
+
+int
+main()
+{
+ test1();
+ test2();
+ test3();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/stable_sort/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/stable_sort/check_type.cc
new file mode 100644
index 00000000000..8e7c51d18d7
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/stable_sort/check_type.cc
@@ -0,0 +1,49 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.1.1 [lib.stable.sort]
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+
+using __gnu_test::random_access_iterator_wrapper;
+
+struct S { };
+
+bool
+operator<(const S&, const S&) {return true;}
+
+struct X { };
+
+bool
+predicate(const X&, const X&) {return true;}
+
+void
+test1(random_access_iterator_wrapper<S>& s)
+{
+ std::stable_sort(s, s);
+}
+
+void
+test2(random_access_iterator_wrapper<X>& x)
+{
+ std::stable_sort(x, x, predicate);
+}
+
diff --git a/libstdc++-v3/testsuite/25_algorithms/swap_ranges/1.cc b/libstdc++-v3/testsuite/25_algorithms/swap_ranges/1.cc
new file mode 100644
index 00000000000..e4a23e28afd
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/swap_ranges/1.cc
@@ -0,0 +1,60 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.2.2 swap_ranges
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::forward_iterator_wrapper;
+
+typedef test_container<int, forward_iterator_wrapper> Container;
+
+
+void
+test1()
+{
+ bool test __attribute__((unused)) = true;
+ int array1[]={1, 2};
+ int array2[]={3, 4};
+ Container con1(array1, array1 + 2);
+ Container con2(array2, array2 + 2);
+ VERIFY(std::swap_ranges(con1.begin(), con1.end(), con2.begin()).ptr ==
+ array2 + 2);
+ VERIFY(array1[0] == 3 && array1[1] == 4 && array2[0] == 1 && array2[1] == 2);
+}
+
+void
+test2()
+{
+ bool test __attribute__((unused)) = true;
+ int array1[] = {1};
+ int array2[] = {1};
+ Container con1(array1, array1);
+ Container con2(array2, array2);
+ VERIFY(swap_ranges(con1.begin(), con1.end(), con2.begin()).ptr == array2);
+}
+
+int
+main()
+{
+ test1();
+ test2();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/swap_ranges/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/swap_ranges/check_type.cc
new file mode 100644
index 00000000000..a19d92c6518
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/swap_ranges/check_type.cc
@@ -0,0 +1,35 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.2.4 Swap Ranges
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+
+using __gnu_test::forward_iterator_wrapper;
+
+struct X {
+};
+
+void
+test1(forward_iterator_wrapper<X>& begin,
+ forward_iterator_wrapper<X>& end,
+ forward_iterator_wrapper<X>& begin2)
+{ std::swap_ranges(begin, end, begin2); }
diff --git a/libstdc++-v3/testsuite/25_algorithms/unique_copy/1.cc b/libstdc++-v3/testsuite/25_algorithms/unique_copy/1.cc
new file mode 100644
index 00000000000..4f96c3a64c0
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/unique_copy/1.cc
@@ -0,0 +1,85 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.5.8 [lib.alg.unique]
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::input_iterator_wrapper;
+using __gnu_test::forward_iterator_wrapper;
+using __gnu_test::output_iterator_wrapper;
+using std::unique;
+
+typedef test_container<int, input_iterator_wrapper> Icontainer;
+typedef test_container<int, forward_iterator_wrapper> Fcontainer;
+typedef test_container<int, output_iterator_wrapper> Ocontainer;
+
+int array1[] = {0, 0, 0, 1, 1, 1};
+int array2[2];
+
+void
+test1()
+{
+ bool test __attribute__((unused)) = true;
+ Icontainer con1(array1, array1);
+ Ocontainer con2(array2, array2);
+ VERIFY(unique_copy(con1.begin(), con1.end(), con2.begin()).ptr == array2);
+}
+
+void
+test2()
+{
+ bool test __attribute__((unused)) = true;
+ Icontainer con1(array1, array1 + 6);
+ Ocontainer con2(array2, array2 + 2);
+ VERIFY(unique_copy(con1.begin(), con1.end(), con2.begin()).ptr
+ == array2 + 2);
+ VERIFY(array2[0] == 0 && array2[1] == 1);
+}
+
+void
+test3()
+{
+ bool test __attribute__((unused)) = true;
+ Icontainer con1(array1, array1);
+ Fcontainer con2(array2, array2);
+ VERIFY(unique_copy(con1.begin(), con1.end(), con2.begin()).ptr == array2);
+}
+
+void
+test4()
+{
+ bool test __attribute__((unused)) = true;
+ Icontainer con1(array1, array1 + 6);
+ Fcontainer con2(array2, array2 + 2);
+ VERIFY(unique_copy(con1.begin(), con1.end(), con2.begin()).ptr
+ == array2 + 2);
+ VERIFY(array2[0] == 0 && array2[1] == 1);
+}
+
+int
+main()
+{
+ test1();
+ test2();
+ test3();
+ test4();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/unique_copy/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/unique_copy/check_type.cc
new file mode 100644
index 00000000000..1c6731e9df9
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/unique_copy/check_type.cc
@@ -0,0 +1,55 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.5.8 [lib.alg.unique_copy]
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+
+using __gnu_test::input_iterator_wrapper;
+using __gnu_test::output_iterator_wrapper;
+
+struct S1 { };
+
+struct S2
+{
+ S2(const S1& s1) {}
+};
+
+bool
+operator==(const S1&, const S1&) {return true;}
+
+struct X1 { };
+
+struct X2
+{
+ X2(const X1& x1) {}
+};
+
+bool
+predicate(const X1&, const X1&) {return true;}
+
+output_iterator_wrapper<S2>
+test1(input_iterator_wrapper<S1>& s1, output_iterator_wrapper<S2>& s2)
+{ return std::unique_copy(s1, s1, s2); }
+
+output_iterator_wrapper<X2>
+test2(input_iterator_wrapper<X1>& x1, output_iterator_wrapper<X2>& x2)
+{ return std::unique_copy(x1, x1, x2, predicate); }
diff --git a/libstdc++-v3/testsuite/25_algorithms/upper_bound/1.cc b/libstdc++-v3/testsuite/25_algorithms/upper_bound/1.cc
new file mode 100644
index 00000000000..8b518ef0098
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/upper_bound/1.cc
@@ -0,0 +1,47 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.3.2 [lib.upper.bound]
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::forward_iterator_wrapper;
+using std::upper_bound;
+
+typedef test_container<int, forward_iterator_wrapper> Container;
+int array[] = {0, 0, 0, 0, 1, 1, 1, 1};
+
+void
+test1()
+{
+ for(int i = 0; i < 5; ++i)
+ for(int j = 4; j < 7; ++j)
+ {
+ Container con(array + i, array + j);
+ VERIFY(upper_bound(con.begin(), con.end(), 0).ptr == array + 4);
+ }
+}
+
+int
+main()
+{
+ test1();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/upper_bound/check_type.cc b/libstdc++-v3/testsuite/25_algorithms/upper_bound/check_type.cc
new file mode 100644
index 00000000000..f0c0774add0
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/upper_bound/check_type.cc
@@ -0,0 +1,44 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 25.3.3.2 [lib.upper.bound]
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+
+using __gnu_test::forward_iterator_wrapper;
+
+struct S { };
+
+bool
+operator<(const S&, const S&) {return true;}
+
+struct X { };
+
+bool
+predicate(const X&, const X&) {return true;}
+
+forward_iterator_wrapper<S>
+test1(forward_iterator_wrapper<S>& s)
+{ return std::upper_bound(s, s, *s); }
+
+forward_iterator_wrapper<X>
+test2(forward_iterator_wrapper<X>& x)
+{ return std::upper_bound(x, x, *x, predicate); }
diff --git a/libstdc++-v3/testsuite/26_numerics/cstdlib/13943.cc b/libstdc++-v3/testsuite/26_numerics/cstdlib/13943.cc
new file mode 100644
index 00000000000..920ddcc43b3
--- /dev/null
+++ b/libstdc++-v3/testsuite/26_numerics/cstdlib/13943.cc
@@ -0,0 +1,52 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <cstdlib>
+#include <testsuite_hooks.h>
+
+#if _GLIBCXX_USE_C99
+// libstdc++/13943
+void test01()
+{
+ using namespace std;
+ bool test __attribute__((unused)) = true;
+
+ VERIFY( llabs(-3) == 3 );
+
+ lldiv_t q = lldiv(6, 4);
+ VERIFY( q.quot == 1 );
+ VERIFY( q.rem == 2 );
+}
+#endif
+
+int main()
+{
+#if _GLIBCXX_USE_C99
+ test01();
+#endif
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_streambuf/in_avail/char/9701-3.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/in_avail/char/9701-3.cc
index 5dc68c62b9a..5dc68c62b9a 100644
--- a/libstdc++-v3/testsuite/27_io/basic_streambuf/in_avail/char/9701-3.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/in_avail/char/9701-3.cc
diff --git a/libstdc++-v3/testsuite/27_io/basic_streambuf/in_avail/wchar_t/9701-3.cc b/libstdc++-v3/testsuite/27_io/basic_streambuf/in_avail/char/1.cc
index 239f790fe47..ee9a81c816d 100644
--- a/libstdc++-v3/testsuite/27_io/basic_streambuf/in_avail/wchar_t/9701-3.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_streambuf/in_avail/char/1.cc
@@ -1,4 +1,6 @@
-// Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+// 2005-06-07 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -16,44 +18,37 @@
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
// USA.
-// 27.5.2.2.3 Get area
+// 27.8.1.4 Overridden virtual functions
#include <fstream>
#include <testsuite_hooks.h>
-class Derived_fbuf : public std::wfilebuf
-{
-public:
- const char_type* pub_egptr() const
- { return egptr(); }
+typedef std::basic_streambuf<char> streambuf_type;
- const char_type* pub_gptr() const
- { return gptr(); }
+struct testbuf : streambuf_type
+{
+ testbuf() { }
};
-// libstdc++/9701 (in_avail)
-void test01()
+void test05()
{
- using namespace std;
- bool test __attribute__((unused)) = true;
- const char* name = "tmp_file1_w";
+ typedef streambuf_type::int_type int_type;
+ typedef streambuf_type::traits_type traits_type;
+ typedef streambuf_type::pos_type pos_type;
+ typedef streambuf_type::off_type off_type;
+ typedef size_t size_type;
- Derived_fbuf df2;
- df2.open(name, ios_base::in | ios_base::out | ios_base::trunc);
-
- df2.sputn(L"Comomoc", 7);
-
- df2.pubseekoff(0, ios_base::beg);
- df2.sbumpc();
- df2.sputbackc(L't');
+ bool test __attribute__((unused)) = true;
+ std::streamoff strmof_1, strmof_2;
+ testbuf sb01;
- VERIFY( df2.pub_gptr() < df2.pub_egptr() );
- VERIFY( df2.in_avail() == df2.pub_egptr() - df2.pub_gptr() );
+ // int in_avail()
+ strmof_1 = sb01.in_avail();
+ VERIFY( strmof_1 == 0 );
}
-int
-main()
+int main()
{
- test01();
+ test05();
return 0;
}
diff --git a/libstdc++-v3/testsuite/27_io/basic_streambuf/in_avail/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/basic_streambuf/in_avail/wchar_t/1.cc
new file mode 100644
index 00000000000..fd10c0b0d9d
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/basic_streambuf/in_avail/wchar_t/1.cc
@@ -0,0 +1,54 @@
+// 2005-06-07 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 27.8.1.4 Overridden virtual functions
+
+#include <fstream>
+#include <testsuite_hooks.h>
+
+typedef std::basic_streambuf<wchar_t> streambuf_type;
+
+struct testbuf : streambuf_type
+{
+ testbuf() { }
+};
+
+void test05()
+{
+ typedef streambuf_type::int_type int_type;
+ typedef streambuf_type::traits_type traits_type;
+ typedef streambuf_type::pos_type pos_type;
+ typedef streambuf_type::off_type off_type;
+ typedef size_t size_type;
+
+ bool test __attribute__((unused)) = true;
+ std::streamoff strmof_1, strmof_2;
+ testbuf sb01;
+
+ // int in_avail()
+ strmof_1 = sb01.in_avail();
+ VERIFY( strmof_1 == 0 );
+}
+
+int main()
+{
+ test05();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringbuf/in_avail/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_stringbuf/in_avail/char/1.cc
index 99942f76610..5833c9652c9 100644
--- a/libstdc++-v3/testsuite/27_io/basic_stringbuf/in_avail/char/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_stringbuf/in_avail/char/1.cc
@@ -1,6 +1,6 @@
// 981208 bkoz test functionality of basic_stringbuf for char_type == char
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -43,8 +43,8 @@ void test04()
VERIFY( strmof_1 == static_cast<std::streamoff>(str_01.length()) );
VERIFY( strmof_2 == static_cast<std::streamoff>(str_02.length()) );
strmof_1 = strb_03.in_avail();
- // zero cuz write-only, or eof()? zero, from showmany
- VERIFY( strmof_1 == 0 );
+ // zero cuz write-only, or eof() to match basic_filebuf
+ VERIFY( strmof_1 == -1 );
}
int main()
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringbuf/in_avail/char/21955.cc b/libstdc++-v3/testsuite/27_io/basic_stringbuf/in_avail/char/21955.cc
new file mode 100644
index 00000000000..023418cfd64
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/basic_stringbuf/in_avail/char/21955.cc
@@ -0,0 +1,54 @@
+// 2005-06-07 Benjamin Kosnik
+
+// Copyright (C) 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+#include <sstream>
+#include <testsuite_hooks.h>
+#include <stdexcept>
+
+double
+test_stringstream()
+{
+ double result;
+ char* source = "1918";
+ std::stringstream s;
+ s << source;
+
+ std::string tmp = s.str();
+ std::streambuf* sb = s.rdbuf();
+ int i = sb->in_avail();
+
+ if (i)
+ {
+ s >> result;
+ }
+ else
+ {
+ throw std::runtime_error("conversion failed");
+ }
+ return result;
+}
+
+
+int main ()
+{
+ test_stringstream();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringbuf/in_avail/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/basic_stringbuf/in_avail/wchar_t/1.cc
index ed6f2484dbc..346a4db1baf 100644
--- a/libstdc++-v3/testsuite/27_io/basic_stringbuf/in_avail/wchar_t/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_stringbuf/in_avail/wchar_t/1.cc
@@ -1,6 +1,6 @@
// 981208 bkoz test functionality of basic_stringbuf for char_type == wchar_t
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -43,8 +43,8 @@ void test04()
VERIFY( strmof_1 == static_cast<std::streamoff>(str_01.length()) );
VERIFY( strmof_2 == static_cast<std::streamoff>(str_02.length()) );
strmof_1 = strb_03.in_avail();
- // zero cuz write-only, or eof()? zero, from showmany
- VERIFY( strmof_1 == 0 );
+ // zero cuz write-only, or eof() to match basic_filebuf
+ VERIFY( strmof_1 == -1 );
}
int main()
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/1.cc
index 2f9a5cf176f..d788f1274c2 100644
--- a/libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/1.cc
@@ -1,6 +1,6 @@
// 981208 bkoz test functionality of basic_stringbuf for char_type == char
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -45,7 +45,7 @@ void test03()
std::streamsize d1 = strb_01.in_avail();
std::streamsize d2 = strb_03.in_avail();
VERIFY( d1 ); // non-zero
- VERIFY( !d2 ); // zero, cuz ios_base::out
+ VERIFY( d2 == -1 ); // -1, cuz ios_base::out
VERIFY( d1 != d2 ); //these should be the same
VERIFY( static_cast<std::streamsize>(str_01.length()) == d1 );
VERIFY( strb_01.str() == strb_03.str() ); //ditto
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/1.cc
index 4c89bc932c7..cc0e0ab2dcd 100644
--- a/libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/1.cc
@@ -1,6 +1,6 @@
// 981208 bkoz test functionality of basic_stringbuf for char_type == wchar_t
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -45,7 +45,7 @@ void test03()
std::streamsize d1 = strb_01.in_avail();
std::streamsize d2 = strb_03.in_avail();
VERIFY( d1 ); // non-zero
- VERIFY( !d2 ); // zero, cuz ios_base::out
+ VERIFY( d2 == -1 ); // -1, cuz ios_base::out
VERIFY( d1 != d2 ); //these should be the same
VERIFY( static_cast<std::streamsize>(str_01.length()) == d1 );
VERIFY( strb_01.str() == strb_03.str() ); //ditto
diff --git a/libstdc++-v3/testsuite/27_io/ios_base/cons/assign_neg.cc b/libstdc++-v3/testsuite/27_io/ios_base/cons/assign_neg.cc
index 50c8eb8b05f..ea6eb423cec 100644
--- a/libstdc++-v3/testsuite/27_io/ios_base/cons/assign_neg.cc
+++ b/libstdc++-v3/testsuite/27_io/ios_base/cons/assign_neg.cc
@@ -40,6 +40,7 @@ void test01()
test_base io2;
io1 = io2;
}
-// { dg-error "within this context" "" { target *-*-* } 41 }
+// { dg-error "synthesized" "" { target *-*-* } 41 }
+// { dg-error "within this context" "" { target *-*-* } 34 }
// { dg-error "is private" "" { target *-*-* } 782 }
// { dg-error "operator=" "" { target *-*-* } 0 }
diff --git a/libstdc++-v3/testsuite/27_io/ios_base/cons/copy_neg.cc b/libstdc++-v3/testsuite/27_io/ios_base/cons/copy_neg.cc
index 925087d5b27..2c047a5c3b5 100644
--- a/libstdc++-v3/testsuite/27_io/ios_base/cons/copy_neg.cc
+++ b/libstdc++-v3/testsuite/27_io/ios_base/cons/copy_neg.cc
@@ -40,6 +40,7 @@ void test02()
test_base io1;
test_base io2 = io1;
}
-// { dg-error "within this context" "" { target *-*-* } 41 }
+// { dg-error "within this context" "" { target *-*-* } 35 }
+// { dg-error "synthesized" "" { target *-*-* } 41 }
// { dg-error "is private" "" { target *-*-* } 779 }
// { dg-error "copy constructor" "" { target *-*-* } 0 }
diff --git a/libstdc++-v3/testsuite/Makefile.in b/libstdc++-v3/testsuite/Makefile.in
index 64f38c1dfb6..df262facdae 100644
--- a/libstdc++-v3/testsuite/Makefile.in
+++ b/libstdc++-v3/testsuite/Makefile.in
@@ -40,7 +40,8 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(top_srcdir)/fragment.am
subdir = testsuite
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/../config/no-executables.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/../config/lead-dot.m4 \
+ $(top_srcdir)/../config/no-executables.m4 \
$(top_srcdir)/../libtool.m4 $(top_srcdir)/crossconfig.m4 \
$(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/configure.ac
diff --git a/libstdc++-v3/testsuite/ext/array_allocator/2.cc b/libstdc++-v3/testsuite/ext/array_allocator/2.cc
index 1e837258923..f580ea250b7 100644
--- a/libstdc++-v3/testsuite/ext/array_allocator/2.cc
+++ b/libstdc++-v3/testsuite/ext/array_allocator/2.cc
@@ -1,4 +1,7 @@
-// Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+// Expected execution error for PR19495.
+// { dg-do run { xfail powerpc*-*-linux* } }
+
+// Copyright (C) 2004 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -32,10 +35,7 @@
typedef char char_type;
typedef std::char_traits<char_type> traits_type;
-// NB: Array_allocator doesn't properly support rebinding, used by
-// basic_string. See libstdc++/21609 for details.
-typedef std::tr1::array<size_t, 16> array_type;
-typedef __gnu_cxx::array_allocator<size_t, array_type> allocator_type;
+typedef std::tr1::array<char_type, 32> array_type;
array_type extern_array;
@@ -44,8 +44,10 @@ void test01()
bool test __attribute__((unused)) = true;
using std::basic_string;
+ typedef __gnu_cxx::array_allocator<char_type, array_type> allocator_type;
typedef basic_string<char_type, traits_type, allocator_type> string_type;
+ size_t index = array_type::_S_index;
allocator_type a(&extern_array);
string_type s(a);
diff --git a/libstdc++-v3/testsuite/ext/is_heap/1.cc b/libstdc++-v3/testsuite/ext/is_heap/1.cc
new file mode 100644
index 00000000000..3974f03c464
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/is_heap/1.cc
@@ -0,0 +1,46 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+#include <testsuite_iterators.h>
+
+using __gnu_test::test_container;
+using __gnu_test::random_access_iterator_wrapper;
+
+typedef test_container<int, random_access_iterator_wrapper> container;
+
+void
+test1()
+{
+ int array[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
+ for(int i = 0; i < 10; ++i)
+ {
+ container con(array, array + i);
+ std::make_heap(con.begin(), con.end());
+ VERIFY(std::__is_heap(con.begin(), con.end()));
+ VERIFY(std::__is_heap(con.begin(), i));
+ }
+}
+
+int
+main()
+{
+ test1();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/ext/is_heap/check_type.cc b/libstdc++-v3/testsuite/ext/is_heap/check_type.cc
new file mode 100644
index 00000000000..6c791bd80ac
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/is_heap/check_type.cc
@@ -0,0 +1,47 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// { dg-do compile }
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+
+using __gnu_test::random_access_iterator_wrapper;
+
+struct S { };
+
+bool
+operator<(const S&, const S&) {return true;}
+
+struct X { };
+
+bool
+predicate(const X&, const X&) {return true;}
+
+bool
+test1(random_access_iterator_wrapper<S>& start,
+ random_access_iterator_wrapper<S>& end)
+{ return std::__is_heap(start, end) && std::__is_heap(start, 1); }
+
+bool
+test2(random_access_iterator_wrapper<X>& start,
+ random_access_iterator_wrapper<X>& end)
+{
+ return std::__is_heap(start, end, predicate) &&
+ std::__is_heap(start, predicate, 1);
+}
diff --git a/libstdc++-v3/testsuite/ext/median.cc b/libstdc++-v3/testsuite/ext/median.cc
new file mode 100644
index 00000000000..97e44ea5bb9
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/median.cc
@@ -0,0 +1,42 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// median - SGI extension
+
+#include <algorithm>
+#include <testsuite_hooks.h>
+
+bool pred(const int& l, const int& r)
+{
+ return l<r;
+}
+
+using std::__median;
+
+int main(void)
+{
+ const int i=1;
+ const int j=2;
+ const int k=3;
+ VERIFY(__median(i, j, k) == j && __median(i, j, k, pred) == j);
+ VERIFY(__median(i, k, j) == j && __median(i, k, j, pred) == j);
+ VERIFY(__median(j, i, k) == j && __median(j, i, k, pred) == j);
+ VERIFY(__median(j, k, i) == j && __median(j, k, i, pred) == j);
+ VERIFY(__median(k, i, j) == j && __median(k, i, j, pred) == j);
+ VERIFY(__median(k, j, i) == j && __median(k, j, i, pred) == j);
+}
diff --git a/libstdc++-v3/testsuite/lib/libstdc++.exp b/libstdc++-v3/testsuite/lib/libstdc++.exp
index 2dbf8217938..bcae3777e75 100644
--- a/libstdc++-v3/testsuite/lib/libstdc++.exp
+++ b/libstdc++-v3/testsuite/lib/libstdc++.exp
@@ -103,14 +103,7 @@ proc libstdc++_init { testfile } {
# headers, or without assertions.
global DEFAULT_CXXFLAGS
if ![info exists DEFAULT_CXXFLAGS] then {
- # Set up includes for stdc++.h.gch, the precompiled header file.
- if { [file exists $flags_file] } {
- set cxxpchflags [exec sh $flags_file --cxxpchflags]
- } else {
- set cxxpchflags ""
- }
- set DEFAULT_CXXFLAGS " ${cxxpchflags}"
-
+ set DEFAULT_CXXFLAGS ""
# Host specific goo here.
if { [string match "powerpc-*-darwin*" $target_triplet] } {
append DEFAULT_CXXFLAGS " -multiply_defined suppress"
@@ -195,6 +188,28 @@ proc libstdc++_init { testfile } {
}
}
+ # If a PCH file is available, use it. We must delay performing
+ # this check until $cxx and such have been initialized because we
+ # perform a test compilation. (Ideally, gcc --print-file-name would
+ # list PCH files, but it does not.)
+ global PCH_CXXFLAGS
+ if ![info exists PCH_CXXFLAGS] then {
+ set src "config[pid].cc"
+ set f [open $src "w"]
+ puts $f "int main () {}"
+ close $f
+
+ set lines [v3_target_compile $src "config[pid].o" object \
+ "additional_flags=-include additional_flags=bits/stdc++.h"]
+ if {$lines == "" } {
+ set PCH_CXXFLAGS "-include bits/stdc++.h"
+ } else {
+ set PCH_CXXFLAGS ""
+ }
+ file delete $src
+ v3track PCH_CXXFLAGS 2
+ }
+
libstdc++_maybe_build_wrapper "${objdir}/testglue.o"
}
diff --git a/libstdc++-v3/testsuite/libstdc++-dg/normal.exp b/libstdc++-v3/testsuite/libstdc++-dg/normal.exp
index 746c7a8ec3f..9d2f1a63a9a 100644
--- a/libstdc++-v3/testsuite/libstdc++-dg/normal.exp
+++ b/libstdc++-v3/testsuite/libstdc++-dg/normal.exp
@@ -87,7 +87,8 @@ set tests [lsort $tests]
# Main loop.
global DEFAULT_CXXFLAGS
-dg-runtest $tests "" $DEFAULT_CXXFLAGS
+global PCH_CXXFLAGS
+dg-runtest $tests "" "$DEFAULT_CXXFLAGS $PCH_CXXFLAGS"
# All done.
dg-finish
diff --git a/libstdc++-v3/testsuite/testsuite_abi.cc b/libstdc++-v3/testsuite/testsuite_abi.cc
index 5f6e23ed83b..0aa594256fa 100644
--- a/libstdc++-v3/testsuite/testsuite_abi.cc
+++ b/libstdc++-v3/testsuite/testsuite_abi.cc
@@ -166,6 +166,7 @@ check_version(const symbol& test, bool added)
known_versions.push_back("GLIBCXX_3.4.2");
known_versions.push_back("GLIBCXX_3.4.3");
known_versions.push_back("GLIBCXX_3.4.4");
+ known_versions.push_back("GLIBCXX_3.4.5");
known_versions.push_back("CXXABI_1.2");
known_versions.push_back("CXXABI_1.2.1");
known_versions.push_back("CXXABI_1.3");
diff --git a/libstdc++-v3/testsuite/testsuite_hooks.h b/libstdc++-v3/testsuite/testsuite_hooks.h
index 90104d36523..fc05186d400 100644
--- a/libstdc++-v3/testsuite/testsuite_hooks.h
+++ b/libstdc++-v3/testsuite/testsuite_hooks.h
@@ -160,6 +160,24 @@ namespace __gnu_test
void
run_tests_wrapped_env(const char*, const char*, const func_callback&);
+
+ // For containers (23.1/3).
+ struct NonDefaultConstructible
+ {
+ NonDefaultConstructible(int) { }
+ };
+
+ inline bool
+ operator==(const NonDefaultConstructible& lhs,
+ const NonDefaultConstructible& rhs)
+ { return false; }
+
+ inline bool
+ operator<(const NonDefaultConstructible& lhs,
+ const NonDefaultConstructible& rhs)
+ { return false; }
+
+
// Counting.
struct counter
{
diff --git a/libstdc++-v3/testsuite/testsuite_iterators.h b/libstdc++-v3/testsuite/testsuite_iterators.h
index 435bb1d26b5..1a6a295ee97 100644
--- a/libstdc++-v3/testsuite/testsuite_iterators.h
+++ b/libstdc++-v3/testsuite/testsuite_iterators.h
@@ -1,7 +1,7 @@
// -*- C++ -*-
// Iterator Wrappers for the C++ library testsuite.
//
-// Copyright (C) 2004 Free Software Foundation, Inc.
+// Copyright (C) 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -77,7 +77,7 @@ namespace __gnu_test
{
writtento = new bool[this->last - this->first];
for(int i = 0; i < this->last - this->first; i++)
- writtento = false;
+ writtento[i] = false;
}
~OutputContainer()
@@ -96,12 +96,13 @@ namespace __gnu_test
ptr(ptr_in), SharedInfo(SharedInfo_in)
{ }
+ template<class U>
void
- operator=(T& new_val)
+ operator=(const U& new_val)
{
ITERATOR_VERIFY(SharedInfo->writtento[ptr - SharedInfo->first] == 0);
SharedInfo->writtento[ptr - SharedInfo->first] = 1;
- ptr = new_val;
+ *ptr = new_val;
}
};
@@ -149,9 +150,9 @@ namespace __gnu_test
operator++()
{
ITERATOR_VERIFY(SharedInfo && ptr < SharedInfo->last);
- ITERATOR_VERIFY(ptr>=SharedInfo->first);
+ ITERATOR_VERIFY(ptr>=SharedInfo->incrementedto);
ptr++;
- SharedInfo->first=ptr;
+ SharedInfo->incrementedto=ptr;
return *this;
}
@@ -423,7 +424,7 @@ namespace __gnu_test
operator--(int)
{
random_access_iterator_wrapper<T> tmp = *this;
- ++*this;
+ --*this;
return tmp;
}
@@ -443,34 +444,27 @@ namespace __gnu_test
return *this;
}
- random_access_iterator_wrapper
- operator+(ptrdiff_t n)
- {
- random_access_iterator_wrapper<T> tmp = *this;
- return tmp += n;
- }
-
random_access_iterator_wrapper&
operator-=(ptrdiff_t n)
{ return *this += -n; }
random_access_iterator_wrapper
- operator-(ptrdiff_t n)
+ operator-(ptrdiff_t n) const
{
random_access_iterator_wrapper<T> tmp = *this;
return tmp -= n;
}
ptrdiff_t
- operator-(const random_access_iterator_wrapper<T>& in)
+ operator-(const random_access_iterator_wrapper<T>& in) const
{
ITERATOR_VERIFY(this->SharedInfo == in.SharedInfo);
return this->ptr - in.ptr;
}
T&
- operator[](ptrdiff_t n)
- { return *(this + n); }
+ operator[](ptrdiff_t n) const
+ { return *(*this + n); }
bool
operator<(const random_access_iterator_wrapper<T>& in) const
@@ -498,6 +492,16 @@ namespace __gnu_test
}
};
+ template<typename T>
+ random_access_iterator_wrapper<T>
+ operator+(random_access_iterator_wrapper<T> it, ptrdiff_t n)
+ { return it += n; }
+
+ template<typename T>
+ random_access_iterator_wrapper<T>
+ operator+(ptrdiff_t n, random_access_iterator_wrapper<T> it)
+ { return it += n; }
+
/**
* @brief A container-type class for holding iterator wrappers