From e330aa5b3568877fb26267fa0f277de320821b14 Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Fri, 27 May 2011 16:35:36 +0000 Subject: [PATCH] re PR libstdc++/49187 (parallel mode compilation broken - unqualified lookup? (bisected)) 2011-05-27 Paolo Carlini PR libstdc++/49187 * include/parallel/losertree.h: Add missing using declarations of _Base::_M_comp. * include/parallel/algobase.h: Include . * include/parallel/multiway_merge.h: Include , forward declare __merge_advance. * include/parallel/multiseq_selection.h: Don't include here. * include/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp: Fix qualification of upper_bound. * testsuite/ext/pb_ds/regression/tree_no_data_map_rand_debug.cc: Use dg-require-debug-mode. * testsuite/ext/pb_ds/regression/tree_data_map_rand_debug.cc: Likewise. * testsuite/ext/pb_ds/regression/priority_queue_rand_debug.cc: Likewise. * testsuite/ext/pb_ds/regression/trie_no_data_map_rand_debug.cc: Likewise. * testsuite/ext/pb_ds/regression/trie_data_map_rand_debug.cc: Likewise. * testsuite/ext/pb_ds/regression/list_update_no_data_map_rand_debug.cc: Likewise. * testsuite/ext/pb_ds/regression/list_update_data_map_rand_debug.cc: Likewise. * testsuite/ext/pb_ds/regression/hash_no_data_map_rand_debug.cc: Likewise. * testsuite/ext/pb_ds/regression/hash_data_map_rand_debug.cc: Likewise. * include/parallel/algo.h: Minor uglification fixes. From-SVN: r174342 --- libstdc++-v3/ChangeLog | 34 +++++++++++++++++++ .../pb_ds/detail/thin_heap_/erase_fn_imps.hpp | 6 ++-- libstdc++-v3/include/parallel/algo.h | 10 +++--- libstdc++-v3/include/parallel/algobase.h | 5 ++- libstdc++-v3/include/parallel/losertree.h | 8 +++++ .../include/parallel/multiseq_selection.h | 4 +-- .../include/parallel/multiway_merge.h | 7 ++++ .../regression/hash_data_map_rand_debug.cc | 4 +-- .../regression/hash_no_data_map_rand_debug.cc | 4 +-- .../list_update_data_map_rand_debug.cc | 2 +- .../list_update_no_data_map_rand_debug.cc | 2 +- .../regression/priority_queue_rand_debug.cc | 4 +-- .../regression/tree_data_map_rand_debug.cc | 4 +-- .../regression/tree_no_data_map_rand_debug.cc | 4 +-- .../regression/trie_data_map_rand_debug.cc | 4 +-- .../regression/trie_no_data_map_rand_debug.cc | 4 +-- 16 files changed, 76 insertions(+), 30 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index af0453b45ca..5be06f5dfea 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,37 @@ +2011-05-27 Paolo Carlini + + PR libstdc++/49187 + * include/parallel/losertree.h: Add missing using declarations + of _Base::_M_comp. + * include/parallel/algobase.h: Include . + * include/parallel/multiway_merge.h: Include , forward declare __merge_advance. + * include/parallel/multiseq_selection.h: Don't include here. + * include/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp: Fix + qualification of upper_bound. + + * testsuite/ext/pb_ds/regression/tree_no_data_map_rand_debug.cc: + Use dg-require-debug-mode. + * testsuite/ext/pb_ds/regression/tree_data_map_rand_debug.cc: + Likewise. + * testsuite/ext/pb_ds/regression/priority_queue_rand_debug.cc: + Likewise. + * testsuite/ext/pb_ds/regression/trie_no_data_map_rand_debug.cc: + Likewise. + * testsuite/ext/pb_ds/regression/trie_data_map_rand_debug.cc: + Likewise. + * testsuite/ext/pb_ds/regression/list_update_no_data_map_rand_debug.cc: + Likewise. + * testsuite/ext/pb_ds/regression/list_update_data_map_rand_debug.cc: + Likewise. + * testsuite/ext/pb_ds/regression/hash_no_data_map_rand_debug.cc: + Likewise. + * testsuite/ext/pb_ds/regression/hash_data_map_rand_debug.cc: + Likewise. + + * include/parallel/algo.h: Minor uglification fixes. + 2011-05-26 Paolo Carlini * src/list.cc: Use noexcept per the FDIS. diff --git a/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp index 11b7d773f9b..c52e2dcc417 100644 --- a/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp +++ b/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp @@ -244,9 +244,9 @@ rank_bound() { using namespace std; const size_t* const p_upper = - _GLIBCXX_STD_A::upper_bound(g_a_rank_bounds, - g_a_rank_bounds + num_distinct_rank_bounds, - base_type::m_size); + std::upper_bound(g_a_rank_bounds, + g_a_rank_bounds + num_distinct_rank_bounds, + base_type::m_size); if (p_upper == g_a_rank_bounds + num_distinct_rank_bounds) return max_rank; diff --git a/libstdc++-v3/include/parallel/algo.h b/libstdc++-v3/include/parallel/algo.h index 89b7f6d827f..26d9e4c63f4 100644 --- a/libstdc++-v3/include/parallel/algo.h +++ b/libstdc++-v3/include/parallel/algo.h @@ -273,12 +273,12 @@ namespace __parallel _BinaryPredicate __comp) { typedef std::iterator_traits<_IIter> _IIterTraits; - typedef std::iterator_traits<_FIterator> iteratorf_traits; + typedef std::iterator_traits<_FIterator> _FIterTraits; typedef typename _IIterTraits::iterator_category _IIteratorCategory; - typedef typename iteratorf_traits::iterator_category iteratorf_category; + typedef typename _FIterTraits::iterator_category _FIteratorCategory; return __find_first_of_switch(__begin1, __end1, __begin2, __end2, __comp, - _IIteratorCategory(), iteratorf_category()); + _IIteratorCategory(), _FIteratorCategory()); } // Public interface, insert default comparator @@ -288,9 +288,9 @@ namespace __parallel _FIterator __begin2, _FIterator __end2) { typedef std::iterator_traits<_IIter> _IIterTraits; - typedef std::iterator_traits<_FIterator> iteratorf_traits; + typedef std::iterator_traits<_FIterator> _FIterTraits; typedef typename _IIterTraits::value_type _IValueType; - typedef typename iteratorf_traits::value_type _FValueType; + typedef typename _FIterTraits::value_type _FValueType; return __gnu_parallel::find_first_of(__begin1, __end1, __begin2, __end2, __gnu_parallel::_EqualTo<_IValueType, _FValueType>()); diff --git a/libstdc++-v3/include/parallel/algobase.h b/libstdc++-v3/include/parallel/algobase.h index 20456b57b2f..8d6ec191d13 100644 --- a/libstdc++-v3/include/parallel/algobase.h +++ b/libstdc++-v3/include/parallel/algobase.h @@ -1,6 +1,6 @@ // -*- C++ -*- -// Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +// Copyright (C) 2007, 2008, 2009, 2010, 2011 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 @@ -38,8 +38,7 @@ #include #include -#include -#include +#include #include #include diff --git a/libstdc++-v3/include/parallel/losertree.h b/libstdc++-v3/include/parallel/losertree.h index cb24f7f6771..577497e787d 100644 --- a/libstdc++-v3/include/parallel/losertree.h +++ b/libstdc++-v3/include/parallel/losertree.h @@ -171,6 +171,7 @@ namespace __gnu_parallel { typedef _LoserTreeBase<_Tp, _Compare> _Base; using _Base::_M_k; + using _Base::_M_comp; using _Base::_M_losers; using _Base::_M_first_insert; @@ -263,6 +264,7 @@ namespace __gnu_parallel typedef _LoserTreeBase<_Tp, _Compare> _Base; using _Base::_M_log_k; using _Base::_M_k; + using _Base::_M_comp; using _Base::_M_losers; using _Base::_M_first_insert; @@ -409,6 +411,7 @@ namespace __gnu_parallel { typedef _LoserTreePointerBase<_Tp, _Compare> _Base; using _Base::_M_k; + using _Base::_M_comp; using _Base::_M_losers; public: @@ -490,6 +493,7 @@ namespace __gnu_parallel { typedef _LoserTreePointerBase<_Tp, _Compare> _Base; using _Base::_M_k; + using _Base::_M_comp; using _Base::_M_losers; public: @@ -644,6 +648,7 @@ namespace __gnu_parallel { typedef _LoserTreeUnguardedBase<_Tp, _Compare> _Base; using _Base::_M_k; + using _Base::_M_comp; using _Base::_M_losers; public: @@ -731,6 +736,7 @@ namespace __gnu_parallel { typedef _LoserTreeUnguardedBase<_Tp, _Compare> _Base; using _Base::_M_k; + using _Base::_M_comp; using _Base::_M_losers; public: @@ -887,6 +893,7 @@ namespace __gnu_parallel { typedef _LoserTreePointerUnguardedBase<_Tp, _Compare> _Base; using _Base::_M_k; + using _Base::_M_comp; using _Base::_M_losers; public: @@ -972,6 +979,7 @@ namespace __gnu_parallel { typedef _LoserTreePointerUnguardedBase<_Tp, _Compare> _Base; using _Base::_M_k; + using _Base::_M_comp; using _Base::_M_losers; public: diff --git a/libstdc++-v3/include/parallel/multiseq_selection.h b/libstdc++-v3/include/parallel/multiseq_selection.h index e77653aeefa..cfba9c4366e 100644 --- a/libstdc++-v3/include/parallel/multiseq_selection.h +++ b/libstdc++-v3/include/parallel/multiseq_selection.h @@ -1,6 +1,6 @@ // -*- C++ -*- -// Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +// Copyright (C) 2007, 2008, 2009, 2010, 2011 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 @@ -46,8 +46,6 @@ #include -#include - namespace __gnu_parallel { /** @brief Compare __a pair of types lexicographically, ascending. */ diff --git a/libstdc++-v3/include/parallel/multiway_merge.h b/libstdc++-v3/include/parallel/multiway_merge.h index 1c73ad0042d..bae6a5cd611 100644 --- a/libstdc++-v3/include/parallel/multiway_merge.h +++ b/libstdc++-v3/include/parallel/multiway_merge.h @@ -45,6 +45,7 @@ #include #include #include +#include #if _GLIBCXX_ASSERTIONS #include #endif @@ -54,6 +55,12 @@ namespace __gnu_parallel { + template + _OutputIterator + __merge_advance(_RAIter1&, _RAIter1, _RAIter2&, _RAIter2, + _OutputIterator, _DifferenceTp, _Compare); + /** @brief _Iterator wrapper supporting an implicit supremum at the end * of the sequence, dominating all comparisons. * diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_data_map_rand_debug.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_data_map_rand_debug.cc index e41e073b1ec..65d9c11ac52 100644 --- a/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_data_map_rand_debug.cc +++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_data_map_rand_debug.cc @@ -1,7 +1,7 @@ +// { dg-require-debug-mode "" } // { dg-require-time "" } // This can take long on simulators, timing out the test. -// { dg-options "-D_GLIBCXX_DEBUG -DITERATIONS=5" { target simulator } } -// { dg-options "-D_GLIBCXX_DEBUG" } +// { dg-options "-DITERATIONS=5" { target simulator } } // { dg-timeout-factor 2.0 } // -*- C++ -*- diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_no_data_map_rand_debug.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_no_data_map_rand_debug.cc index 8729f4142f8..bc5a596b4ff 100644 --- a/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_no_data_map_rand_debug.cc +++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_no_data_map_rand_debug.cc @@ -1,7 +1,7 @@ +// { dg-require-debug-mode "" } // { dg-require-time "" } // This can take long on simulators, timing out the test. -// { dg-options "-D_GLIBCXX_DEBUG -DITERATIONS=5" { target simulator } } -// { dg-options "-D_GLIBCXX_DEBUG" } +// { dg-options "-DITERATIONS=5" { target simulator } } // { dg-timeout-factor 2.0 } // -*- C++ -*- diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_data_map_rand_debug.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_data_map_rand_debug.cc index bfb2ed4484e..3a9fc3c631f 100644 --- a/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_data_map_rand_debug.cc +++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_data_map_rand_debug.cc @@ -1,5 +1,5 @@ +// { dg-require-debug-mode "" } // { dg-require-time "" } -// { dg-options "-D_GLIBCXX_DEBUG" } // { dg-timeout-factor 2.0 } // -*- C++ -*- diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_no_data_map_rand_debug.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_no_data_map_rand_debug.cc index c39eb0df311..065ca9de357 100644 --- a/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_no_data_map_rand_debug.cc +++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_no_data_map_rand_debug.cc @@ -1,5 +1,5 @@ +// { dg-require-debug-mode "" } // { dg-require-time "" } -// { dg-options "-D_GLIBCXX_DEBUG" } // { dg-timeout-factor 2.0 } // -*- C++ -*- diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand_debug.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand_debug.cc index dda99151716..1d6dcf1bdb4 100644 --- a/libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand_debug.cc +++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand_debug.cc @@ -1,7 +1,7 @@ +// { dg-require-debug-mode "" } // { dg-require-time "" } // This can take long on simulators, timing out the test. -// { dg-options "-D_GLIBCXX_DEBUG -DITERATIONS=5" { target simulator } } -// { dg-options "-D_GLIBCXX_DEBUG" } +// { dg-options "-DITERATIONS=5" { target simulator } } // { dg-timeout-factor 2.0 } // -*- C++ -*- diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_data_map_rand_debug.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_data_map_rand_debug.cc index 934d96d0bc7..75b31f037be 100644 --- a/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_data_map_rand_debug.cc +++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_data_map_rand_debug.cc @@ -1,7 +1,7 @@ +// { dg-require-debug-mode "" } // { dg-require-time "" } // This can take long on simulators, timing out the test. -// { dg-options "-D_GLIBCXX_DEBUG -DITERATIONS=5" { target simulator } } -// { dg-options "-D_GLIBCXX_DEBUG" } +// { dg-options "-DITERATIONS=5" { target simulator } } // { dg-timeout-factor 2.0 } // -*- C++ -*- diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_no_data_map_rand_debug.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_no_data_map_rand_debug.cc index 146fc1f1ce8..1e85d016121 100644 --- a/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_no_data_map_rand_debug.cc +++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_no_data_map_rand_debug.cc @@ -1,7 +1,7 @@ +// { dg-require-debug-mode "" } // { dg-require-time "" } // This can take long on simulators, timing out the test. -// { dg-options "-D_GLIBCXX_DEBUG -DITERATIONS=5" { target simulator } } -// { dg-options "-D_GLIBCXX_DEBUG" } +// { dg-options "-DITERATIONS=5" { target simulator } } // { dg-timeout-factor 2.0 } // -*- C++ -*- diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_data_map_rand_debug.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_data_map_rand_debug.cc index 5d7ada8c9de..701e7d8e095 100644 --- a/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_data_map_rand_debug.cc +++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_data_map_rand_debug.cc @@ -1,7 +1,7 @@ +// { dg-require-debug-mode "" } // { dg-require-time "" } // This can take long on simulators, timing out the test. -// { dg-options "-D_GLIBCXX_DEBUG -DITERATIONS=5" { target simulator } } -// { dg-options "-D_GLIBCXX_DEBUG" } +// { dg-options "-DITERATIONS=5" { target simulator } } // { dg-timeout-factor 2.0 } // -*- C++ -*- diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_no_data_map_rand_debug.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_no_data_map_rand_debug.cc index b075e5b5d8f..19a201da443 100644 --- a/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_no_data_map_rand_debug.cc +++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_no_data_map_rand_debug.cc @@ -1,7 +1,7 @@ +// { dg-require-debug-mode "" } // { dg-require-time "" } // This can take long on simulators, timing out the test. -// { dg-options "-D_GLIBCXX_DEBUG -DITERATIONS=5" { target simulator } } -// { dg-options "-D_GLIBCXX_DEBUG" } +// { dg-options "-DITERATIONS=5" { target simulator } } // { dg-timeout-factor 2.0 } // -*- C++ -*- -- 2.30.2