include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp causes invalid memory access on Linux/ia32 and Linux/Intel64. You can see it by adding -D_GLIBCXX_DEBUG to ext/pb_ds/regression/trie_data_map_rand.cc: bash-3.2$ /export/build/gnu/gcc-work/build-x86_64-linux/./gcc/g++ -shared-libgcc -B/export/build/gnu/gcc-work/build-x86_64-linux/./gcc -nostdinc++ -L/export/build/gnu/gcc-work/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/src -L/export/build/gnu/gcc-work/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/src/.libs -B/usr/gcc-4.4-work/x86_64-unknown-linux-gnu/bin/ -B/usr/gcc-4.4-work/x86_64-unknown-linux-gnu/lib/ -isystem /usr/gcc-4.4-work/x86_64-unknown-linux-gnu/include -isystem /usr/gcc-4.4-work/x86_64-unknown-linux-gnu/sys-include -m32 -g -O2 -D_GLIBCXX_ASSERT -fmessage-length=0 -ffunction-sections -fdata-sections -g -O2 -D_GNU_SOURCE -g -O2 -D_GNU_SOURCE -DLOCALEDIR="." -nostdinc++ -I/export/build/gnu/gcc-work/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/include/x86_64-unknown-linux-gnu -I/export/build/gnu/gcc-work/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/include -I/export/gnu/src/gcc-work/gcc/libstdc++-v3/libsupc++ -I/export/gnu/src/gcc-work/gcc/libstdc++-v3/include/backward -I/export/gnu/src/gcc-work/gcc/libstdc++-v3/testsuite/util -Wl,--gc-sections /export/gnu/src/gcc-work/gcc/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_data_map_rand.cc -DPB_DS_REGRESSION ./libtestc++.a -lm -m32 -o ./trie_data_map_rand.exe -D_GLIBCXX_DEBUG bash-3.2$ ./trie_data_map_rand.exe /export/build/gnu/gcc-work/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp:213: typename __gnu_pbds::detail::pat_trie_data_<Key, Mapped, Node_And_It_Traits, Allocator>::node_pointer __gnu_pbds::detail::pat_trie_data_<Key, Mapped, Node_And_It_Traits, Allocator>::recursive_copy_node(typename Allocator::rebind<typename Node_And_It_Traits::node>::other::const_pointer) [with Key = __gnu_pbds::test::basic_type, Mapped = __gnu_pbds::test::basic_type, Node_And_It_Traits = __gnu_pbds::detail::trie_traits<__gnu_pbds::test::basic_type, __gnu_pbds::test::basic_type, __gnu_pbds::string_trie_e_access_traits<__gnu_pbds::test::basic_type, 'a', 'd', false, __gnu_cxx::throw_allocator<__gnu_pbds::test::basic_type> >, __gnu_pbds::null_trie_node_update, __gnu_pbds::pat_trie_tag, __gnu_cxx::throw_allocator<__gnu_pbds::test::basic_type> >, Allocator = __gnu_cxx::throw_allocator<__gnu_pbds::test::basic_type>]: Assertion 'child_i > 1' failed. Aborted bash-3.2$
It also happens in gcc 4.3.2: lake:pts/1[303]> /export/build/gnu/gcc-4.3/build-x86_64-linux/./gcc/g++ -shared-libgcc -B/export/build/gnu/gcc-4.3/build-x86_64-linux/./gcc -nostdinc++ -L/export/build/gnu/gcc-4.3/build-x86_64-linux/x86_64-unknown-linux-gnu/libstdc++-v3/src -L/export/build/gnu/gcc-4.3/build-x86_64-linux/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs -B/usr/gcc-4.3/x86_64-unknown-linux-gnu/bin/ -B/usr/gcc-4.3/x86_64-unknown-linux-gnu/lib/ -isystem /usr/gcc-4.3/x86_64-unknown-linux-gnu/include -isystem /usr/gcc-4.3/x86_64-unknown-linux-gnu/sys-include -g -O2 -D_GLIBCXX_ASSERT -fmessage-length=0 -ffunction-sections -fdata-sections -g -O2 -D_GNU_SOURCE -g -O2 -D_GNU_SOURCE -DLOCALEDIR="." -nostdinc++ -I/export/build/gnu/gcc-4.3/build-x86_64-linux/x86_64-unknown-linux-gnu/libstdc++-v3/include/x86_64-unknown-linux-gnu -I/export/build/gnu/gcc-4.3/build-x86_64-linux/x86_64-unknown-linux-gnu/libstdc++-v3/include -I/export/gnu/src/gcc-4.3/gcc/libstdc++-v3/libsupc++ -I/export/gnu/src/gcc-4.3/gcc/libstdc++-v3/include/backward -I/export/gnu/src/gcc-4.3/gcc/libstdc++-v3/testsuite/util -Wl,--gc-sections /export/gnu/src/gcc-4.3/gcc/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_data_map_rand.cc -DPB_DS_REGRESSION ./libtestc++.a -lm -D_GLIBCXX_DEBUG lake:pts/1[304]> ./a.out /export/build/gnu/gcc-4.3/build-x86_64-linux/x86_64-unknown-linux-gnu/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp:213: typename __gnu_pbds::detail::pat_trie_data_<Key, Mapped, Node_And_It_Traits, Allocator>::node_pointer __gnu_pbds::detail::pat_trie_data_<Key, Mapped, Node_And_It_Traits, Allocator>::recursive_copy_node(typename Allocator::rebind<typename Node_And_It_Traits::node>::other::const_pointer) [with Key = __gnu_pbds::test::basic_type, Mapped = __gnu_pbds::test::basic_type, Node_And_It_Traits = __gnu_pbds::detail::trie_traits<__gnu_pbds::test::basic_type, __gnu_pbds::test::basic_type, __gnu_pbds::string_trie_e_access_traits<__gnu_pbds::test::basic_type, 'a', 'd', false, __gnu_cxx::throw_allocator<__gnu_pbds::test::basic_type> >, __gnu_pbds::null_trie_node_update, __gnu_pbds::pat_trie_tag, __gnu_cxx::throw_allocator<__gnu_pbds::test::basic_type> >, Allocator = __gnu_cxx::throw_allocator<__gnu_pbds::test::basic_type>]: Assertion 'child_i > 1' failed. [1] 13605 abort ./a.out
include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp doesn't look right: PB_DS_CLASS_T_DEC typename PB_DS_CLASS_C_DEC::node_pointer PB_DS_CLASS_C_DEC:: recursive_copy_node(const_node_pointer p_other_nd) { ... size_type child_i = 0; ... --child_i; // What if child_i == 0? _GLIBCXX_DEBUG_ASSERT(child_i > 1);
Created attachment 16081 [details] A patch With this patch, I got bash-3.2$ /export/build/gnu/gcc-4.3/build-x86_64-linux/./gcc/g++ -shared-libgcc -B/export/build/gnu/gcc-4.3/build-x86_64-linux/./gcc -nostdinc++ -L/export/build/gnu/gcc-4.3/build-x86_64-linux/x86_64-unknown-linux-gnu/libstdc++-v3/src -L/export/build/gnu/gcc-4.3/build-x86_64-linux/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs -B/usr/gcc-4.3/x86_64-unknown-linux-gnu/bin/ -B/usr/gcc-4.3/x86_64-unknown-linux-gnu/lib/ -isystem /usr/gcc-4.3/x86_64-unknown-linux-gnu/include -isystem /usr/gcc-4.3/x86_64-unknown-linux-gnu/sys-include -g -O2 -D_GLIBCXX_ASSERT -fmessage-length=0 -ffunction-sections -fdata-sections -g -O2 -D_GNU_SOURCE -g -O2 -D_GNU_SOURCE -DLOCALEDIR="." -nostdinc++ -I/export/build/gnu/gcc-4.3/build-x86_64-linux/x86_64-unknown-linux-gnu/libstdc++-v3/include/x86_64-unknown-linux-gnu -I/export/build/gnu/gcc-4.3/build-x86_64-linux/x86_64-unknown-linux-gnu/libstdc++-v3/include -I/export/gnu/src/gcc-4.3/gcc/libstdc++-v3/libsupc++ -I/export/gnu/src/gcc-4.3/gcc/libstdc++-v3/include/backward -I/export/gnu/src/gcc-4.3/gcc/libstdc++-v3/testsuite/util -Wl,--gc-sections /export/gnu/src/gcc-4.3/gcc/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_data_map_rand.cc -DPB_DS_REGRESSION ./libtestc++.a -lm -D_GLIBCXX_DEBUG -O0 bash-3.2$ ./a.out /export/build/gnu/gcc-4.3/build-x86_64-linux/x86_64-unknown-linux-gnu/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/internal_node.hpp:314: typename __gnu_pbds::detail::pat_trie_internal_node<Type_Traits, E_Access_Traits, Metadata, Allocator>::node_pointer __gnu_pbds::detail::pat_trie_internal_node<Type_Traits, E_Access_Traits, Metadata, Allocator>::get_child_node(typename E_Access_Traits::const_iterator, typename E_Access_Traits::const_iterator, typename Allocator::rebind<E_Access_Traits>::other::const_pointer) [with Type_Traits = __gnu_pbds::detail::types_traits<__gnu_pbds::test::basic_type, __gnu_pbds::test::basic_type, __gnu_cxx::throw_allocator<__gnu_pbds::test::basic_type>, false>, E_Access_Traits = __gnu_pbds::detail::synth_e_access_traits<__gnu_pbds::detail::types_traits<__gnu_pbds::test::basic_type, __gnu_pbds::test::basic_type, __gnu_cxx::throw_allocator<__gnu_pbds::test::basic_type>, false>, false, __gnu_pbds::string_trie_e_access_traits<__gnu_pbds::test::basic_type, 'a', 'd', false, __gnu_cxx::throw_allocator<__gnu_pbds::test::basic_type> > >, Metadata = __gnu_pbds::detail::null_node_metadata, Allocator = __gnu_cxx::throw_allocator<__gnu_pbds::test::basic_type>]: Assertion 'i < arr_size' failed. Aborted bash-3.2$
The failure is random due to the random test. If you fix the random seed, the failure will be more reproducible.
valgrind also reports Conditional jump or move depends on uninitialised value(s)
*** Bug 38128 has been marked as a duplicate of this bug. ***
I am not convinced that PR 38128 is a duplicate of this bug. The test doesn't fail if I disable the use of CFI directives on hppa-unknown-linux-gnu. In debugging, there also seems to be an exception in the eh code causing a loop.
(In reply to comment #7) > I am not convinced that PR 38128 is a duplicate of this bug. The test > doesn't fail if I disable the use of CFI directives on hppa-unknown-linux-gnu. > In debugging, there also seems to be an exception in the eh code causing a > loop. > ext/pb_ds/regression/trie_data_map_rand.cc fails on Linux/Intel64 at random. Can you disable the use of CFI directives and add -D_GLIBCXX_DEBUG to run it on hppa-unknown-linux-gnu by hand?
testsuite/util/regression/rand/assoc/container_rand_regression_test.tcc has value_type v = test_traits::generate_value(m_g, m_m); m_alloc.set_throw_prob(m_tp); const_key_reference r_k = test_traits::extract_key(v); typename cntnr::const_point_iterator found_it = m_p_c->find(r_k); It looks like test_traits::extract_key returns something on stack and r_k references a value on deallocated stack.
(gdb) f 0 #0 __gnu_pbds::test::detail::container_rand_regression_test<__gnu_pbds::trie<__gnu_pbds::test::basic_type, __gnu_pbds::test::basic_type, __gnu_pbds::string_trie_e_access_traits<__gnu_pbds::test::basic_type, (char)97, (char)100, false, __gnu_cxx::throw_allocator<__gnu_pbds::test::basic_type> >, __gnu_pbds::pat_trie_tag, __gnu_pbds::null_trie_node_update, __gnu_cxx::throw_allocator<__gnu_pbds::test::basic_type> > >::insert (this=0x7fffffffc990) at /export/gnu/src/gcc-work/gcc/libstdc++-v3/testsuite/util/regression/rand/assoc/container_rand_regression_test.tcc:1086 1086 typename cntnr::const_point_iterator found_it = m_p_c->find(r_k); (gdb) p/x $rsp $14 = 0x7fffffffc710 (gdb) p/x &r_k $15 = 0x7fffffffc6c0 (gdb) p &v $16 = ( std::pair<const __gnu_pbds::test::basic_type, __gnu_pbds::test::basic_type> *) 0x7fffffffc750 (gdb) p r_k._M_dataplus._M_p $17 = 0x7e2d28 "dbcabab" (gdb) p v.first._M_dataplus._M_p $18 = 0x7e2d28 "dbcabab" (gdb) r_k references a value on deallocated stack.
testsuite/util/regression/trait/assoc/type_trait.hpp has static const_key_reference extract_key_imp(pair_type_const_reference r_val) { return r_val.first; } It may create a temporary on stack and return a reference to the stack temporary.
This program shows the problem: [hjl@gnu-6 37144]$ cat x.cc #include <stdlib.h> #include <stdio.h> struct T1 { int i; T1 () { i = 0; } T1 (int x) { i = x; } T1 (const T1 &x) { i = x.i; } T1& operator=(T1 & __p) { i = __p.i; return *this; } }; struct pair { T1 first; T1 second; pair() : first(), second() { } pair(const T1 & __a, const T1 & __b) : first(__a), second(__b) { } pair& operator=(pair& __p) { first = __p.first; second = __p.second; return *this; } }; typedef const T1& const_T1_reference; typedef const pair & const_pair_reference; const_T1_reference extract_key_imp(const_pair_reference r_val) { return r_val.first; } const_T1_reference extract_key_imp(const_T1_reference r_val) { return r_val; } int main () { T1 t1 (21), t2 (3); pair p (t1, t2); const_T1_reference x = extract_key_imp (p); const_T1_reference y = extract_key_imp (t1); if (y.i != t1.i) abort (); if (&y.i != &t1.i) abort (); if (x.i != t1.i) abort (); if (&x.i != &t1.i) { printf ("&x.i != &t1.i\n"); abort (); } return 0; } [hjl@gnu-6 37144]$ g++ x.cc [hjl@gnu-6 37144]$ ./a.out &x.i != &t1.i Aborted [hjl@gnu-6 37144]$
Hi HJ: I'm not sure to understand, you mean this is actually a C++ / compiler bug?!?
(In reply to comment #13) > Hi HJ: I'm not sure to understand, you mean this is actually a C++ / compiler > bug?!? > I can't say if C++ standard requires const_T1_reference extract_key_imp(const_pair_reference r_val) { return r_val.first; } creates a temporary and returns a reference to it. On the other hand, I can't tell returning a reference to r_val.first directly will cause any harm. FWIW, icc 10.0 also creates a temporary and returns a reference to it.
it's an rvalue, so a temporary is allowed (not sure if required). Using an rvalue reference would be an option here.
At the moment, I don't know this code well enough, but note that: typedef const pair & const_pair_reference; therefore, I don't really follow your reasoning. By the way, rvalrefs I don't think are an option, because these classes are old, supposed to work well also in C++03 mode.
In any case, I don't really understand your snippet: you are comparing &x.i to &t1.i, but x comes from p, and p *copies* t1 at construction time, in other terms &p.first.i != &t1.i to begin with.
(In reply to comment #17) > In any case, I don't really understand your snippet: you are comparing &x.i to > &t1.i, but x comes from p, and p *copies* t1 at construction time, in other > terms &p.first.i != &t1.i to begin with. > You are right. My testcase is wrong.
1081 { 1082 m_alloc.set_throw_prob(0); 1083 value_type v = test_traits::generate_value(m_g, m_m); 1084 m_alloc.set_throw_prob(m_tp); 1085 const_key_reference r_k = test_traits::extract_key(v); 1086 typename cntnr::const_point_iterator found_it = m_p_c->find(r_k); 1087 const bool existed = (found_it != m_p_c->end()); 1088 const std::pair<typename cntnr::point_iterator, bool> ins_ret = m_p_c->insert(v); 1089 1090 if (ins_ret.second) (gdb) p &r_k $3 = (const __gnu_pbds::test::basic_type *) 0x7fffffffc6c0 (gdb) p &v.first $4 = (const __gnu_pbds::test::basic_type *) 0x7fffffffc750 (gdb) p $rsp $5 = (void *) 0x7fffffffc710 (gdb) For some reason, test_traits::extract_key doesn't return the reference to v.first directly and returns a reference to a stack temporary instead.
We created a temporary because (gdb) bt #0 pair<const __gnu_pbds::test::basic_type, __gnu_pbds::test::basic_type> ( this=0x7fffffffc6c0, __p=@0x7fffffffc750) at /export/build/gnu/gcc-work/build-x86_64-linux/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/stl_pair.h:106 #1 0x0000000000420a26 in __gnu_pbds::test::detail::regression_test_type_traits<__gnu_pbds::trie<__gnu_pbds::test::basic_type, __gnu_pbds::test::basic_type, __gnu_pbds::string_trie_e_access_traits<__gnu_pbds::test::basic_type, (char)97, (char)100, false, __gnu_cxx::throw_allocator<__gnu_pbds::test::basic_type> >, __gnu_pbds::pat_trie_tag, __gnu_pbds::null_trie_node_update, __gnu_cxx::throw_allocator<__gnu_pbds::test::basic_type> > >::extract_key (r_val=@0x7fffffffc750) at /export/gnu/src/gcc-work/gcc/libstdc++-v3/testsuite/util/regression/trait/assoc/type_trait.hpp:82 #2 0x0000000000413cef in __gnu_pbds::test::detail::regression_test_traits<__gnu_pbds::trie<__gnu_pbds::test::basic_type, __gnu_pbds::test::basic_type, __gnu_pbds::string_trie_e_access_traits<__gnu_pbds::test::basic_type, (char)97, (char)100, false, __gnu_cxx::throw_allocator<__gnu_pbds::test::basic_type> >, __gnu_pbds::pat_trie_tag, __gnu_pbds::null_trie_node_update, __gnu_cxx::throw_allocator<__gnu_pbds::test::basic_type> > >::extract_key (r_val=@0x7fffffffc750) at /export/gnu/src/gcc-work/gcc/libstdc++-v3/testsuite/util/regression/trait/assoc/trait.hpp:164 #3 0x000000000040cdfb in __gnu_pbds::test::detail::container_rand_regression_test<__gnu_pbds::trie<__gnu_pbds::test::basic_type, __gnu_pbds::test::basic_type, __gnu_pbds::string_trie_e_access_traits<__gnu_pbds::test::basic_type, (char)97, ---Type <return> to continue, or q <return> to quit---q Quit (gdb) p &__p $13 = ( const std::pair<const __gnu_pbds::test::basic_type, __gnu_pbds::test::basic_type> *) 0x7fffffffc750 (gdb) p this $14 = ( class std::pair<__gnu_pbds::test::basic_type, __gnu_pbds::test::basic_type> * const) 0x7fffffffc6c0 (gdb) Those 2 types are slightly different.
Here is a new testcase: [hjl@gnu-6 37144]$ cat y.cc #include <stdlib.h> #include <stdio.h> struct T1 { int i; T1 () { i = 0; } T1 (int x) { i = x; } T1 (const T1 &x) { i = x.i; } T1& operator=(T1 & __p) { i = __p.i; return *this; } }; template<class T1, class T2> struct pair { T1 first; T2 second; pair() : first(), second() { } pair(const T1 & __a, const T1 & __b) : first(__a), second(__b) { } template<class _U1, class _U2> pair(const pair<_U1, _U2>& a) : first(a.first), second(a.second) { } pair& operator=(pair& __p) { first = __p.first; second = __p.second; return *this; } }; typedef const T1& const_T1_reference; #ifdef BAD typedef const pair<const T1, T1>& const_pair_reference; #else typedef const pair<T1, T1>& const_pair_reference; #endif const_T1_reference extract_key_imp(const_pair_reference r_val) { return r_val.first; } const_T1_reference extract_key_imp(const_T1_reference r_val) { return r_val; } int main () { T1 t1 (21), t2 (3); pair<T1, T1> p (t1, t2); const_T1_reference x = extract_key_imp (p); const_T1_reference y = extract_key_imp (t1); if (y.i != t1.i) abort (); if (&y.i != &t1.i) abort (); if (x.i != p.first.i) abort (); if (&x.i != &p.first.i) { printf ("&x.i != &p.first.i\n"); abort (); } return 0; } [hjl@gnu-6 37144]$ g++ y.cc [hjl@gnu-6 37144]$ ./a.out [hjl@gnu-6 37144]$ g++ y.cc -DBAD [hjl@gnu-6 37144]$ ./a.out &x.i != &p.first.i Aborted [hjl@gnu-6 37144]$
Therefore, are you coming to the conclusion that something in the testing infrastructure is wrong (mismatched types), *not* in the ext/pb_ds code itself?
I am testing this patch: Index: testsuite/util/regression/trait/assoc/type_trait.hpp =================================================================== --- testsuite/util/regression/trait/assoc/type_trait.hpp (revision 142654) +++ testsuite/util/regression/trait/assoc/type_trait.hpp (working copy) @@ -87,7 +87,7 @@ namespace __gnu_pbds typedef typename basic_type_rebind::const_reference basic_type_const_reference; - typedef typename cntnr::allocator_type::template rebind<std::pair<basic_type, basic_type> >::other pair_type_rebind; + typedef typename cntnr::allocator_type::template rebind<std::pair<const basic_type, basic_type> >::other pair_type_rebind; typedef typename pair_type_rebind::const_reference pair_type_const_reference; template<typename Gen>
Created attachment 16886 [details] A patch John, can you try this patch?
Subject: Re: A bug in include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp > John, can you try this patch? Later, this evening. Dave
(In reply to comment #22) > Therefore, are you coming to the conclusion that something in the testing > infrastructure is wrong (mismatched types), *not* in the ext/pb_ds code itself? > include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp has 212 --child_i; 213 _GLIBCXX_DEBUG_ASSERT(child_i > 1); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ When I used -D_GLIBCXX_DEBUG, I got abort for child_i == 1 after my patch is applied.
Ah, yes, that, I saw it some time ago. Thus, the patch you and John are testing (which makes sense, first blush) avoids failures in normal mode, but in fact another, latent, issue is uncovered in DEBUG_MODE?
(In reply to comment #27) > Ah, yes, that, I saw it some time ago. Thus, the patch you and John are testing > (which makes sense, first blush) avoids failures in normal mode, but in fact > another, latent, issue is uncovered in DEBUG_MODE? > That is correct.
Subject: Bug 37144 Author: hjl Date: Sat Dec 13 01:40:15 2008 New Revision: 142736 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=142736 Log: 2008-12-12 H.J. Lu <hongjiu.lu@intel.com> PR libstdc++/37144 * testsuite/util/regression/trait/assoc/type_trait.hpp (regression_test_type_traits): Add const to pair_type_rebind. Modified: trunk/libstdc++-v3/ChangeLog trunk/libstdc++-v3/testsuite/util/regression/trait/assoc/type_trait.hpp
Subject: Bug 37144 Author: hjl Date: Sat Dec 13 01:46:04 2008 New Revision: 142737 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=142737 Log: 2008-12-12 H.J. Lu <hongjiu.lu@intel.com> Backport from mainline: 2008-12-12 H.J. Lu <hongjiu.lu@intel.com> PR libstdc++/37144 * testsuite/util/regression/trait/assoc/type_trait.hpp (regression_test_type_traits): Add const to pair_type_rebind. Modified: branches/gcc-4_3-branch/libstdc++-v3/ChangeLog branches/gcc-4_3-branch/libstdc++-v3/testsuite/util/regression/trait/assoc/type_trait.hpp
Created attachment 16902 [details] A patch to add -D_GLIBCXX_DEBUG to dg-options I am testing this patch to see if it can trigger the bug.
(In reply to comment #31) > Created an attachment (id=16902) [edit] > A patch to add -D_GLIBCXX_DEBUG to dg-options > > I am testing this patch to see if it can trigger the bug. > I got many failures: FAIL: ext/pb_ds/regression/hash_data_map_rand.cc execution test FAIL: ext/pb_ds/regression/hash_no_data_map_rand.cc execution test FAIL: ext/pb_ds/regression/list_update_no_data_map_rand.cc execution test FAIL: ext/pb_ds/regression/priority_queue_rand.cc execution test FAIL: ext/pb_ds/regression/tree_data_map_rand.cc execution test FAIL: ext/pb_ds/regression/tree_no_data_map_rand.cc execution test FAIL: ext/pb_ds/regression/trie_data_map_rand.cc execution test FAIL: ext/pb_ds/regression/trie_no_data_map_rand.cc execution test They look like: /export/build/gnu/gcc/build-i686-linux/i686-pc-linux-gnu/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp:181: void __gnu_pbds::hash_load_check_resize_trigger<External_Load_Access, Size_Type>::notify_externally_resized(Size_Type) [with bool External_Load_Access = true, Size_Type = unsigned int]: Assertion 'new_shrink_size > m_next_shrink_size' failed. FAIL: ext/pb_ds/regression/hash_data_map_rand.cc execution test extra_tool_flags are: -DPB_DS_REGRESSION -D_GLIBCXX_DEBUG /export/build/gnu/gcc/build-i686-linux/i686-pc-linux-gnu/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp:125: void __gnu_pbds::detail::lu_map_no_data_<Key, Mapped, Eq_Fn, Allocator, Update_Policy>::erase_next(typename Allocator::rebind<__gnu_pbds::detail::lu_map_no_data_<Key, Mapped, Eq_Fn, Allocator, Update_Policy>::entry>::other::pointer) [with Key = __gnu_pbds::test::basic_type, Mapped = __gnu_pbds::null_mapped_type, Eq_Fn = std::equal_to<__gnu_pbds::test::basic_type>, Allocator = __gnu_cxx::throw_allocator<__gnu_pbds::test::basic_type>, Update_Policy = __gnu_pbds::test::move_to_front_lu_policy_t_]: Assertion 'p_l != m_p_l' failed. FAIL: ext/pb_ds/regression/list_update_no_data_map_rand.cc execution test extra_tool_flags are: -DPB_DS_REGRESSION -D_GLIBCXX_DEBUG /export/build/gnu/gcc/build-i686-linux/i686-pc-linux-gnu/libstdc++-v3/include/bits/stl_heap.h:357: error: elements in iterator range [__first, __last) do not form a heap with respect to the predicate __comp. Objects involved in the operation: iterator "__first" @ 0x0xbfc2a270 { type = PPN10__gnu_pbds4test10basic_typeE; } iterator "__last" @ 0x0xbfc2a274 { type = PPN10__gnu_pbds4test10basic_typeE; } FAIL: ext/pb_ds/regression/priority_queue_rand.cc execution test extra_tool_flags are: -include bits/stdc++.h /export/build/gnu/gcc/build-i686-linux/i686-pc-linux-gnu/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp:213: typename __gnu_pbds::detail::pat_trie_data_<Key, Mapped, Node_And_It_Traits, Allocator>::node_pointer __gnu_pbds::detail::pat_trie_data_<Key, Mapped, Node_And_It_Traits, Allocator>::recursive_copy_node(typename Allocator::rebind<typename Node_And_It_Traits::node>::other::const_pointer) [with Key = __gnu_pbds::test::basic_type, Mapped = __gnu_pbds::test::basic_type, Node_And_It_Traits = __gnu_pbds::detail::trie_traits<__gnu_pbds::test::basic_type, __gnu_pbds::test::basic_type, __gnu_pbds::string_trie_e_access_traits<__gnu_pbds::test::basic_type, 'a', 'd', false, __gnu_cxx::throw_allocator<__gnu_pbds::test::basic_type> >, __gnu_pbds::null_trie_node_update, __gnu_pbds::pat_trie_tag, __gnu_cxx::throw_allocator<__gnu_pbds::test::basic_type> >, Allocator = __gnu_cxx::throw_allocator<__gnu_pbds::test::basic_type>]: Assertion 'child_i > 1' failed. FAIL: ext/pb_ds/regression/trie_data_map_rand.cc execution test extra_tool_flags are: -DPB_DS_REGRESSION -D_GLIBCXX_DEBUG Are they real bugs?
Mine.
Author: bkoz Date: Tue May 24 02:38:19 2011 New Revision: 174100 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=174100 Log: 2011-05-23 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/37144 PR libstdc++/28457 Interface changes for ext/pb_ds. PB_DS_BASE_C_DEC to unique PB_DS_*_BASE macros. * include/ext/pb_ds/assoc_container.hpp (container_base): Remove. (basic_hash_table, basic_branch, list_update): Derive from container_base_dispatch. * include/ext/pb_ds/list_update_policy.hpp (null_lu_metadata): Remove. (move_to_front_lu_policy): To lu_move_to_front_policy. (counter_lu_policy): To lu_counter_policy. * include/ext/pb_ds/tree_policy.hpp (null_tree_node_update): Remove. * include/ext/pb_ds/tag_and_trait.hpp (container_base_dispatch): Adjust template parameters, declare here. (null_mapped_type) Remove. (null_type): Just use this for template tricks everywhere. * include/ext/pb_ds/hash_policy.hpp (null_hash_fn, null_probe_fn): Remove. * include/ext/pb_ds/trie_policy.hpp (null_trie_node_update): Remove. (string_trie_e_access_traits): To trie_string_access_traits. * include/ext/pb_ds/priority_queue.hpp: Use container_base_dispatch. File changes. * include/Makefile.am (pb_headers): Removed and changed file names. * include/Makefile.in: Regenerated. * include/ext/pb_ds/detail/basic_types.hpp: Remove. * include/ext/pb_ds/detail/bin_search_tree_/ cond_dtor_entry_dealtor.hpp: Remove. * include/ext/pb_ds/detail/bin_search_tree_/ cond_key_dtor_entry_dealtor.hpp: Remove. * include/ext/pb_ds/detail/binary_heap_/const_point_iterator.hpp: Move.. * include/ext/pb_ds/detail/binary_heap_/ point_const_iterator.hpp: ..here. * include/ext/pb_ds/detail/basic_tree_policy: Move to... * include/ext/pb_ds/detail/branch_policy: This. * include/ext/pb_ds/detail/branch_policy/ basic_tree_policy_base.hpp: Move... * include/ext/pb_ds/detail/branch_policy/branch_policy.hpp: ...here. * include/ext/pb_ds/detail/branch_policy/null_node_metadata.hpp: Add. * include/ext/pb_ds/detail/branch_policy/traits.hpp: Add. * include/ext/pb_ds/detail/left_child_next_sibling_heap_/ null_metadata.hpp: Remove. * include/ext/pb_ds/detail/left_child_next_sibling_heap_/ const_point_iterator.hpp: Move... * include/ext/pb_ds/detail/left_child_next_sibling_heap_/ point_const_iterator.hpp: ...here. * include/ext/pb_ds/detail/list_update_policy/ counter_lu_metadata.hpp: Move.. * include/ext/pb_ds/detail/list_update_policy/ lu_counter_metadata.hpp: ...here. * include/ext/pb_ds/detail/list_update_policy/ counter_lu_policy_imp.hpp: Remove. * include/ext/pb_ds/detail/list_update_policy/ mtf_lu_policy_imp.hpp: Remove. * include/ext/pb_ds/detail/trie_policy/ string_trie_e_access_traits_imp.hpp: Move... * include/ext/pb_ds/detail/trie_policy/ sample_trie_access_traits.hpp: ...here. * include/ext/pb_ds/detail/trie_policy/ sample_trie_e_access_traits.hpp: Move... * include/ext/pb_ds/detail/trie_policy/ trie_string_access_traits_imp.hpp: ...here. * include/ext/pb_ds/detail/trie_policy/null_node_update_imp.hpp: Remove. * include/ext/pb_ds/detail/tree_policy/null_node_update_imp.hpp: Remove. * include/ext/pb_ds/detail/ov_tree_map_/cond_dtor.hpp: Remove. * include/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp: New, fold all types found in the following files into pat_trie_base. * include/ext/pb_ds/detail/pat_trie_/const_child_iterator.hpp: Folded. * include/ext/pb_ds/detail/pat_trie_/ cond_dtor_entry_dealtor.hpp: Folded. * include/ext/pb_ds/detail/pat_trie_/child_iterator.hpp: Folded. * include/ext/pb_ds/detail/pat_trie_/split_join_branch_bag.hpp: Folded. * include/ext/pb_ds/detail/pat_trie_/head.hpp: Folded. * include/ext/pb_ds/detail/pat_trie_/leaf.hpp: Folded. * include/ext/pb_ds/detail/pat_trie_/node_base.hpp: Folded. * include/ext/pb_ds/detail/pat_trie_/node_metadata_base.hpp: Folded. * include/ext/pb_ds/detail/pat_trie_/internal_node.hpp: Folded. * include/ext/pb_ds/detail/pat_trie_/node_iterators.hpp: Folded. * include/ext/pb_ds/detail/pat_trie_/point_iterators.hpp: Folded. * include/ext/pb_ds/detail/pat_trie_/synth_e_access_traits.hpp: Move... * include/ext/pb_ds/detail/pat_trie_/synth_access_traits.hpp: ...here. * include/ext/pb_ds/detail/unordered_iterator/ const_point_iterator.hpp: Move... * include/ext/pb_ds/detail/unordered_iterator/ point_const_iterator.hpp: ...here. Adjust for above changes. * include/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp: Same. * include/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp: Same. * include/ext/pb_ds/detail/resize_policy/ sample_resize_trigger.hpp: Same. * include/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp: Same. * include/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp: Same. * include/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp: Same. * include/ext/pb_ds/detail/binomial_heap_base_/ binomial_heap_base_.hpp: Same. * include/ext/pb_ds/detail/binomial_heap_base_/ constructors_destructor_fn_imps.hpp: Same. * include/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp: Same. * include/ext/pb_ds/detail/binomial_heap_base_/ split_join_fn_imps.hpp: Same. * include/ext/pb_ds/detail/container_base_dispatch.hpp: Same. Adjust for template parameter ordering change. * include/ext/pb_ds/detail/cc_hash_table_map_/ erase_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/ constructor_destructor_no_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/ insert_no_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/ policy_access_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/ resize_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/ constructor_destructor_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/ insert_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/ entry_list_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/ find_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/ debug_no_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/ constructor_destructor_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/ cond_key_dtor_entry_dealtor.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/ debug_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/ erase_no_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/ iterators_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/ resize_no_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/ standard_policies.hpp: Same. * include/ext/pb_ds/detail/tree_trace_base.hpp: Same. * include/ext/pb_ds/detail/unordered_iterator/iterator.hpp: Same. * include/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp: Same. * include/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/ constructors_destructor_fn_imps.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/traits.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp: Same. * include/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp: Same. * include/ext/pb_ds/detail/bin_search_tree_/ policy_access_fn_imps.hpp: Same. * include/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp: Same. * include/ext/pb_ds/detail/bin_search_tree_/ constructors_destructor_fn_imps.hpp: Same. * include/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp: Same. * include/ext/pb_ds/detail/bin_search_tree_/traits.hpp: Same. * include/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp: Same. * include/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp: Same. * include/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp: Same. * include/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp: Same. * include/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp: Same. * include/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp: Same. * include/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp: Same. * include/ext/pb_ds/detail/bin_search_tree_/ split_join_fn_imps.hpp: Same. * include/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp: Same. * include/ext/pb_ds/detail/list_update_policy/ sample_update_policy.hpp: Same. * include/ext/pb_ds/detail/left_child_next_sibling_heap_/ trace_fn_imps.hpp: Same. * include/ext/pb_ds/detail/left_child_next_sibling_heap_/ erase_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/ erase_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/ constructor_destructor_no_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/ insert_no_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/ policy_access_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/ resize_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/ constructor_destructor_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/ insert_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/ iterator_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/ find_no_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/ find_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/ debug_no_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/ constructor_destructor_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/ debug_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/ erase_no_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/ resize_no_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/ standard_policies.hpp: Same. * include/ext/pb_ds/detail/standard_policies.hpp: Same. * include/ext/pb_ds/detail/types_traits.hpp: Same. * include/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp: Same. * include/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp: Same. * include/ext/pb_ds/detail/binary_heap_/const_iterator.hpp: Same. * include/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp: Same. * include/ext/pb_ds/detail/binary_heap_/ constructors_destructor_fn_imps.hpp: Same. * include/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp: Same. * include/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp: Same. * include/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp: Same. * include/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp: Same. * include/ext/pb_ds/detail/binary_heap_/entry_pred.hpp: Same. * include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp: Same. * include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp: Same. * include/ext/pb_ds/detail/binary_heap_/resize_policy.hpp: Same. * include/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp: Same. * include/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp: Same. * include/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp: Same. * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Same. * include/ext/pb_ds/detail/tree_policy/ sample_tree_node_update.hpp: Same. * include/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp: Same. * include/ext/pb_ds/detail/trie_policy/ sample_trie_node_update.hpp: Same. * include/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp: Same. * include/ext/pb_ds/detail/trie_policy/ prefix_search_node_update_imp.hpp: Same. * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Same. * include/ext/pb_ds/detail/cond_dealtor.hpp: Same. * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Same. Adjust for template parameter change, fold into container_base_dispatch. * include/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp: Same. * include/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp: Same. * include/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp: Same. * include/ext/pb_ds/detail/pairing_heap_/ constructors_destructor_fn_imps.hpp: Same. * include/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp: Same. * include/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp: Same. * include/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp: Same. * include/ext/pb_ds/detail/binomial_heap_/ constructors_destructor_fn_imps.hpp: Same. * include/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp: Same. * include/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp: Same. * include/ext/pb_ds/detail/constructors_destructor_fn_imps.hpp: Same. * include/ext/pb_ds/detail/type_utils.hpp: Same. * include/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp: Same. * include/ext/pb_ds/detail/eq_fn/eq_by_less.hpp: Same. * include/ext/pb_ds/detail/left_child_next_sibling_heap_/ policy_access_fn_imps.hpp: Same. * include/ext/pb_ds/detail/left_child_next_sibling_heap_/ left_child_next_sibling_heap_.hpp: Same. * include/ext/pb_ds/detail/left_child_next_sibling_heap_/ const_iterator.hpp: Same. * include/ext/pb_ds/detail/left_child_next_sibling_heap_/ insert_fn_imps.hpp: Same. * include/ext/pb_ds/detail/left_child_next_sibling_heap_/ constructors_destructor_fn_imps.hpp: Same. * include/ext/pb_ds/detail/left_child_next_sibling_heap_/ debug_fn_imps.hpp: Same. * include/ext/pb_ds/detail/left_child_next_sibling_heap_/ node.hpp: Same. * include/ext/pb_ds/detail/left_child_next_sibling_heap_/ info_fn_imps.hpp: Same. * include/ext/pb_ds/detail/left_child_next_sibling_heap_/ iterators_fn_imps.hpp: Same. * include/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp: Same. * include/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp: Same. * include/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp: Same. * include/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp: Same. * include/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp: Same. * include/ext/pb_ds/detail/thin_heap_/ constructors_destructor_fn_imps.hpp: Same. * include/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp: Same. * include/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp: Same. * include/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp: Same. * include/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp: Same. * include/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp: Same. * include/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp: Same. * include/ext/pb_ds/detail/ov_tree_map_/ constructors_destructor_fn_imps.hpp: Same. * include/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp: Same. * include/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp: Same. * include/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp: Same. * include/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp: Same. * include/ext/pb_ds/detail/ov_tree_map_/traits.hpp: Same. * include/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp: Same. * include/ext/pb_ds/detail/debug_map_base.hpp: Same. * include/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp: Same. * include/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp: Same. * include/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp: Same. * include/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp: Same. * include/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp: Same. * include/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp: Same. * include/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp: Same. * include/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp: Same. * include/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp: Same. * include/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp: Same. * include/ext/pb_ds/detail/splay_tree_/ constructors_destructor_fn_imps.hpp: Same. * include/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp: Same. * include/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp: Same. * include/ext/pb_ds/detail/splay_tree_/node.hpp: Same. * include/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp: Same. * include/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp: Same. * include/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp: Same. * include/ext/pb_ds/detail/splay_tree_/traits.hpp: Same. * include/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp: Same. * include/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp: Same. * include/ext/pb_ds/detail/list_update_map_/ entry_metadata_base.hpp: Same. * include/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp: Same. * include/ext/pb_ds/detail/list_update_map_/lu_map_.hpp: Same. * include/ext/pb_ds/detail/list_update_map_/ constructor_destructor_fn_imps.hpp: Same. * include/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp: Same. * include/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp: Same. * include/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp: Same. * include/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp: Same. * include/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp: Same. * include/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp: Same. * include/ext/pb_ds/detail/rc_binomial_heap_/ rc_binomial_heap_.hpp: Same. * include/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp: Same. * include/ext/pb_ds/detail/rc_binomial_heap_/ constructors_destructor_fn_imps.hpp: Same. * include/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp: Same. * include/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp: Same. * include/ext/pb_ds/detail/rc_binomial_heap_/ split_join_fn_imps.hpp: Same. * include/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp: Same. * include/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp: Same. * include/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp: Same. * include/ext/pb_ds/detail/rb_tree_map_/ constructors_destructor_fn_imps.hpp: Same. * include/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp: Same. * include/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp: Same. * include/ext/pb_ds/detail/rb_tree_map_/node.hpp: Same. * include/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp: Same. * include/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp: Same. * include/ext/pb_ds/detail/rb_tree_map_/traits.hpp: Same. Documentation changes. * include/ext/pb_ds/*: Add doxygen markup. * doc/doxygen/user.cfg.in: Add details for extracting comments from pb_ds. * scripts/run_doxygen: Fixup __gnu_pb_ds::detail. * scripts/make_graph.py: Move to svg output. Re-format generated tables. * doc/Makefile.am (stamp-html-copy): New rule. (stamp-html): Use it to copy non-generated files into html docs. * doc/Makefile.in: Regenerated. * doc/html/ext/pb_ds/sample_trie_e_access_traits.html: Move... * doc/html/ext/pb_ds/trie_string_access_traits.html: ...here. * doc/html/ext/pb_ds/string_trie_e_access_traits.html: Move.. * doc/html/ext/pb_ds/sample_trie_access_traits.html: ...here. * doc/html/ext/pb_ds/tree_text_lor_find_timing_test_local.png, hash_random_int_erase_mem_usage_test_local.png, multimap_text_insert_mem_usage_test_small_s2p_hash_local.png, tree_text_insert_timing_test_pat_trie_local.png , multimap_text_insert_mem_usage_test_small_s2p_tree_local.png , priority_queue_text_modify_down_timing_test_local.png, gp_hash_random_int_subscript_timing_test_find_local.png, text_find_timing_test_hash_local.png, multimap_text_insert_timing_test_small_s2p_hash_local.png, multimap_text_insert_timing_test_small_s2p_tree_local.png, multimap_text_insert_mem_usage_test_large_s2p_hash_local.png, multimap_text_insert_mem_usage_test_large_s2p_tree_local.png, multimap_text_insert_timing_test_large_s2p_hash_local.png, hash_zlob_random_int_find_timing_test_local.png, multimap_text_insert_timing_test_large_s2p_tree_local.png, binary_priority_queue_random_int_push_timing_test_local.png, priority_queue_text_pop_mem_usage_test_local.png, priority_queue_text_modify_down_timing_test_pairing_thin_local.png, tree_split_join_timing_test_local.png, multimap_text_find_timing_test_small_s2p_hash_local.png, ccgp_hash_random_int_subscript_timing_test_insert_local.png, priority_queue_random_int_push_pop_timing_test_local.png, multimap_text_find_timing_test_small_s2p_tree_local.png, gp_hash_random_int_subscript_timing_test_insert_local.png, priority_queue_text_push_timing_test_local.png, cc_hash_random_int_subscript_timing_test_find_local.png, tree_text_insert_timing_test_vector_tree_local.png, multimap_text_find_timing_test_large_s2p_hash_local.png, pairing_priority_queue_text_push_timing_test_local.png, tree_order_statistics_timing_test_local.png, priority_queue_text_push_pop_timing_test_local.png, text_find_timing_test_tree_like_local.png, multimap_text_find_timing_test_large_s2p_tree_local.png, priority_queue_text_modify_up_timing_test_pairing_thin_local.png, cc_hash_random_int_subscript_timing_test_insert_local.png, priority_queue_text_modify_up_timing_test_local.png, random_int_find_find_timing_test_tree_local.png, priority_queue_random_int_push_timing_test_local.png, tree_text_insert_timing_test_node_tree_local.png, pairing_priority_queue_text_push_pop_timing_test_local.png, gp_hash_random_int_find_timing_test_local.png, cc_hash_random_int_find_timing_test_local.png, priority_queue_text_join_timing_test_local.png: Update local pngs. Testsuite changes. * testsuite/ext/pb_ds/regression/tree_no_data_map_rand_debug.cc: New. * testsuite/ext/pb_ds/regression/tree_data_map_rand_debug.cc: New. * testsuite/ext/pb_ds/regression/priority_queue_rand_debug.cc: New. * testsuite/ext/pb_ds/regression/trie_no_data_map_rand_debug.cc: New. * testsuite/ext/pb_ds/regression/trie_data_map_rand_debug.cc: New. * testsuite/ext/pb_ds/regression/list_update_no_data_map_rand_debug.cc: New. * testsuite/ext/pb_ds/regression/list_update_data_map_rand_debug.cc: New. * testsuite/ext/pb_ds/regression/hash_no_data_map_rand_debug.cc: New. * testsuite/ext/pb_ds/regression/hash_data_map_rand_debug.cc: New. * testsuite/ext/pb_ds/regression/list_update_data_map_rand.cc: Fix typo. * testsuite/ext/pb_ds/example/basic_set.cc: Update. * testsuite/ext/pb_ds/example/ranged_hash.cc: Same. * testsuite/ext/pb_ds/example/tree_order_statistics.cc: Same. * testsuite/ext/pb_ds/example/trie_prefix_search.cc: Same. * testsuite/ext/pb_ds/example/trie_dna.cc: Same. * testsuite/ext/pb_ds/example/tree_intervals.cc: Same. * testsuite/ext/pb_ds/example/basic_multimap.cc: Same. * testsuite/performance/ext/pb_ds/hash_random_int_erase_mem_usage.cc: Same. * testsuite/performance/ext/pb_ds/tree_split_join_timing.cc: Same. * testsuite/performance/ext/pb_ds/tree_order_statistics_timing.cc: Same. * testsuite/data/make_graph_test_infos.xml: Same. * testsuite/util/regression/common_type.hpp: Same. * testsuite/util/regression/trait/assoc/native_type_trait.hpp: Same. * testsuite/util/regression/trait/assoc/trait.hpp: Same. * testsuite/util/regression/trait/assoc/type_trait.hpp: Same. * testsuite/util/regression/rand/priority_queue/ rand_regression_test.hpp: Same. * testsuite/util/regression/rand/priority_queue/ container_rand_regression_test.tcc: Same. * testsuite/util/regression/rand/assoc/rand_regression_test.hpp: Same. * testsuite/util/regression/rand/assoc/container_rand_regression_test.h * testsuite/util/regression/rand/assoc/ container_rand_regression_test.tcc: Same. * testsuite/util/native_type/native_priority_queue.hpp: Same. * testsuite/util/native_type/native_multimap.hpp: Same. * testsuite/util/native_type/native_hash_multimap.hpp: Same. * testsuite/util/native_type/native_set.hpp: Same. * testsuite/util/native_type/native_map.hpp: Same. * testsuite/util/native_type/native_hash_set.hpp: Same. * testsuite/util/native_type/native_hash_map.hpp: Same. * testsuite/util/testsuite_containers.h * testsuite/util/common_type/priority_queue/common_type.hpp: Same. * testsuite/util/common_type/assoc/common_type.hpp: Same. * testsuite/util/common_type/assoc/string_form.hpp: Same. * testsuite/util/common_type/assoc/template_policy.hpp: Same. * testsuite/util/common_type/assoc/detail/ trigger_policy_string_form.hpp: Same. * testsuite/util/common_type/assoc/detail/ds_string_form.hpp: Same. * testsuite/util/common_type/assoc/detail/ size_policy_string_form.hpp: Same. * testsuite/util/common_type/assoc/detail/ probe_fn_string_form.hpp: Same. * testsuite/util/common_type/assoc/detail/ tree_supports_order_statistics.hpp: Same. * testsuite/util/common_type/assoc/detail/ trie_supports_prefix_search.hpp: Same. * testsuite/util/common_type/assoc/detail/ list_update_policy_string_form.hpp: Same. * testsuite/util/common_type/assoc/detail/ trie_supports_order_statistics.hpp: Same. * testsuite/util/common_type/assoc/native_set.hpp: Same. * testsuite/util/performance/assoc/timing/common_type.hpp: Same. * testsuite/util/performance/assoc/timing/multimap_find_test.hpp: Same. * testsuite/util/performance/assoc/multimap_common_type.hpp: Same. Added: trunk/libstdc++-v3/doc/html/ext/pb_ds/sample_trie_access_traits.html trunk/libstdc++-v3/doc/html/ext/pb_ds/trie_string_access_traits.html trunk/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/point_const_iterator.hpp - copied, changed from r173693, trunk/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/const_point_iterator.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/branch_policy/ - copied from r173353, trunk/libstdc++-v3/include/ext/pb_ds/detail/basic_tree_policy/ trunk/libstdc++-v3/include/ext/pb_ds/detail/branch_policy/branch_policy.hpp - copied, changed from r173353, trunk/libstdc++-v3/include/ext/pb_ds/detail/basic_tree_policy/basic_tree_policy_base.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/point_const_iterator.hpp - copied, changed from r173693, trunk/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/const_point_iterator.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/list_update_policy/lu_counter_metadata.hpp - copied, changed from r173832, trunk/libstdc++-v3/include/ext/pb_ds/detail/list_update_policy/counter_lu_metadata.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/synth_access_traits.hpp - copied, changed from r173837, trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/synth_e_access_traits.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/sample_trie_access_traits.hpp - copied, changed from r173837, trunk/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/sample_trie_e_access_traits.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/trie_string_access_traits_imp.hpp - copied, changed from r173837, trunk/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/string_trie_e_access_traits_imp.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/point_const_iterator.hpp - copied, changed from r173693, trunk/libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/const_point_iterator.hpp trunk/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_data_map_rand_debug.cc trunk/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_no_data_map_rand_debug.cc trunk/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_data_map_rand_debug.cc trunk/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_no_data_map_rand_debug.cc trunk/libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand_debug.cc trunk/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_data_map_rand_debug.cc trunk/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_no_data_map_rand_debug.cc trunk/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_data_map_rand_debug.cc trunk/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_no_data_map_rand_debug.cc Removed: trunk/libstdc++-v3/doc/html/ext/pb_ds/sample_trie_e_access_traits.html trunk/libstdc++-v3/doc/html/ext/pb_ds/string_trie_e_access_traits.html trunk/libstdc++-v3/include/ext/pb_ds/detail/basic_types.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/const_point_iterator.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/branch_policy/basic_tree_policy_base.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/const_point_iterator.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/null_metadata.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/list_update_policy/counter_lu_metadata.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/list_update_policy/counter_lu_policy_imp.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/list_update_policy/mtf_lu_policy_imp.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/cond_dtor.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/child_iterator.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/cond_dtor_entry_dealtor.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/const_child_iterator.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/head.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/internal_node.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/leaf.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/node_base.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/node_iterators.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/node_metadata_base.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/point_iterators.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/split_join_branch_bag.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/synth_e_access_traits.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/tree_policy/null_node_update_imp.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/null_node_update_imp.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/sample_trie_e_access_traits.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/string_trie_e_access_traits_imp.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/const_point_iterator.hpp Modified: trunk/libstdc++-v3/ChangeLog trunk/libstdc++-v3/doc/Makefile.am trunk/libstdc++-v3/doc/Makefile.in trunk/libstdc++-v3/doc/doxygen/user.cfg.in trunk/libstdc++-v3/doc/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/cc_hash_random_int_find_timing_test_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/gp_hash_random_int_find_timing_test_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_tree_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_tree_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_random_int_push_timing_test_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_join_timing_test_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_push_timing_test_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/random_int_find_find_timing_test_tree_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/text_find_timing_test_hash_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/text_find_timing_test_tree_like_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/tree_order_statistics_timing_test_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/tree_split_join_timing_test_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_local.png trunk/libstdc++-v3/doc/html/ext/pb_ds/tree_text_lor_find_timing_test_local.png trunk/libstdc++-v3/include/Makefile.am trunk/libstdc++-v3/include/Makefile.in trunk/libstdc++-v3/include/ext/pb_ds/assoc_container.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/traits.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/const_iterator.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/entry_pred.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/resize_policy.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/branch_policy/null_node_metadata.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/branch_policy/traits.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/standard_policies.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/cond_dealtor.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/constructors_destructor_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/container_base_dispatch.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/debug_map_base.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/eq_fn/eq_by_less.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/standard_policies.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/lu_map_.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/traits.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/traits.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/node.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/traits.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/node.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/traits.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/standard_policies.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/tree_trace_base.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/type_utils.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/types_traits.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/iterator.hpp trunk/libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp trunk/libstdc++-v3/include/ext/pb_ds/hash_policy.hpp trunk/libstdc++-v3/include/ext/pb_ds/list_update_policy.hpp trunk/libstdc++-v3/include/ext/pb_ds/priority_queue.hpp trunk/libstdc++-v3/include/ext/pb_ds/tag_and_trait.hpp trunk/libstdc++-v3/include/ext/pb_ds/tree_policy.hpp trunk/libstdc++-v3/include/ext/pb_ds/trie_policy.hpp trunk/libstdc++-v3/scripts/make_graph.py trunk/libstdc++-v3/scripts/run_doxygen trunk/libstdc++-v3/testsuite/data/make_graph_test_infos.xml trunk/libstdc++-v3/testsuite/ext/pb_ds/example/basic_multimap.cc trunk/libstdc++-v3/testsuite/ext/pb_ds/example/basic_priority_queue.cc trunk/libstdc++-v3/testsuite/ext/pb_ds/example/basic_set.cc trunk/libstdc++-v3/testsuite/ext/pb_ds/example/ranged_hash.cc trunk/libstdc++-v3/testsuite/ext/pb_ds/example/tree_intervals.cc trunk/libstdc++-v3/testsuite/ext/pb_ds/example/tree_order_statistics.cc trunk/libstdc++-v3/testsuite/ext/pb_ds/example/trie_dna.cc trunk/libstdc++-v3/testsuite/ext/pb_ds/example/trie_prefix_search.cc trunk/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_data_map_rand.cc trunk/libstdc++-v3/testsuite/performance/ext/pb_ds/hash_random_int_erase_mem_usage.cc trunk/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_pop_mem_usage.cc trunk/libstdc++-v3/testsuite/performance/ext/pb_ds/tree_order_statistics_timing.cc trunk/libstdc++-v3/testsuite/performance/ext/pb_ds/tree_split_join_timing.cc trunk/libstdc++-v3/testsuite/util/common_type/assoc/common_type.hpp trunk/libstdc++-v3/testsuite/util/common_type/assoc/detail/ds_string_form.hpp trunk/libstdc++-v3/testsuite/util/common_type/assoc/detail/list_update_policy_string_form.hpp trunk/libstdc++-v3/testsuite/util/common_type/assoc/detail/probe_fn_string_form.hpp trunk/libstdc++-v3/testsuite/util/common_type/assoc/detail/size_policy_string_form.hpp trunk/libstdc++-v3/testsuite/util/common_type/assoc/detail/tree_supports_order_statistics.hpp trunk/libstdc++-v3/testsuite/util/common_type/assoc/detail/trie_supports_order_statistics.hpp trunk/libstdc++-v3/testsuite/util/common_type/assoc/detail/trie_supports_prefix_search.hpp trunk/libstdc++-v3/testsuite/util/common_type/assoc/detail/trigger_policy_string_form.hpp trunk/libstdc++-v3/testsuite/util/common_type/assoc/native_set.hpp trunk/libstdc++-v3/testsuite/util/common_type/assoc/string_form.hpp trunk/libstdc++-v3/testsuite/util/common_type/assoc/template_policy.hpp trunk/libstdc++-v3/testsuite/util/common_type/priority_queue/common_type.hpp trunk/libstdc++-v3/testsuite/util/native_type/native_hash_map.hpp trunk/libstdc++-v3/testsuite/util/native_type/native_hash_multimap.hpp trunk/libstdc++-v3/testsuite/util/native_type/native_hash_set.hpp trunk/libstdc++-v3/testsuite/util/native_type/native_map.hpp trunk/libstdc++-v3/testsuite/util/native_type/native_multimap.hpp trunk/libstdc++-v3/testsuite/util/native_type/native_priority_queue.hpp trunk/libstdc++-v3/testsuite/util/native_type/native_set.hpp trunk/libstdc++-v3/testsuite/util/performance/assoc/multimap_common_type.hpp trunk/libstdc++-v3/testsuite/util/performance/assoc/timing/common_type.hpp trunk/libstdc++-v3/testsuite/util/performance/assoc/timing/multimap_find_test.hpp trunk/libstdc++-v3/testsuite/util/regression/common_type.hpp trunk/libstdc++-v3/testsuite/util/regression/rand/assoc/container_rand_regression_test.h trunk/libstdc++-v3/testsuite/util/regression/rand/assoc/container_rand_regression_test.tcc trunk/libstdc++-v3/testsuite/util/regression/rand/assoc/rand_regression_test.hpp trunk/libstdc++-v3/testsuite/util/regression/rand/priority_queue/container_rand_regression_test.tcc trunk/libstdc++-v3/testsuite/util/regression/rand/priority_queue/rand_regression_test.hpp trunk/libstdc++-v3/testsuite/util/regression/trait/assoc/native_type_trait.hpp trunk/libstdc++-v3/testsuite/util/regression/trait/assoc/trait.hpp trunk/libstdc++-v3/testsuite/util/regression/trait/assoc/type_trait.hpp trunk/libstdc++-v3/testsuite/util/testsuite_containers.h
Benjamin, should this be closed as fixed for 4.7?
Indeed, this was fixed for 4.7.0