re PR libstdc++/49187 (parallel mode compilation broken - unqualified lookup? (bisected))
authorPaolo Carlini <paolo.carlini@oracle.com>
Fri, 27 May 2011 16:35:36 +0000 (16:35 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Fri, 27 May 2011 16:35:36 +0000 (16:35 +0000)
2011-05-27  Paolo Carlini  <paolo.carlini@oracle.com>

PR libstdc++/49187
* include/parallel/losertree.h: Add missing using declarations
of _Base::_M_comp.
* include/parallel/algobase.h: Include <parallel/algorithmfwd.h>.
* include/parallel/multiway_merge.h: Include <parallel/
multiseq_selection.h>, forward declare __merge_advance.
* include/parallel/multiseq_selection.h: Don't include <parallel/
sort.h> 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

16 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp
libstdc++-v3/include/parallel/algo.h
libstdc++-v3/include/parallel/algobase.h
libstdc++-v3/include/parallel/losertree.h
libstdc++-v3/include/parallel/multiseq_selection.h
libstdc++-v3/include/parallel/multiway_merge.h
libstdc++-v3/testsuite/ext/pb_ds/regression/hash_data_map_rand_debug.cc
libstdc++-v3/testsuite/ext/pb_ds/regression/hash_no_data_map_rand_debug.cc
libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_data_map_rand_debug.cc
libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_no_data_map_rand_debug.cc
libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand_debug.cc
libstdc++-v3/testsuite/ext/pb_ds/regression/tree_data_map_rand_debug.cc
libstdc++-v3/testsuite/ext/pb_ds/regression/tree_no_data_map_rand_debug.cc
libstdc++-v3/testsuite/ext/pb_ds/regression/trie_data_map_rand_debug.cc
libstdc++-v3/testsuite/ext/pb_ds/regression/trie_no_data_map_rand_debug.cc

index af0453b45cadcba0b30b5236c7ae7dfbfaf7f6f9..5be06f5dfead4381e4b590b75f5cce8479225266 100644 (file)
@@ -1,3 +1,37 @@
+2011-05-27  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR libstdc++/49187
+       * include/parallel/losertree.h: Add missing using declarations
+       of _Base::_M_comp.
+       * include/parallel/algobase.h: Include <parallel/algorithmfwd.h>.
+       * include/parallel/multiway_merge.h: Include <parallel/
+       multiseq_selection.h>, forward declare __merge_advance.
+       * include/parallel/multiseq_selection.h: Don't include <parallel/
+       sort.h> 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  <paolo.carlini@oracle.com>
 
        * src/list.cc: Use noexcept per the FDIS.
index 11b7d773f9b9957063b6735acaa6f1fcc10077fc..c52e2dcc417b533adbd7a7818fd214d0329c411f 100644 (file)
@@ -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;
index 89b7f6d827f45a81dd1d15828cc6411f7eb3a44c..26d9e4c63f4a9095edf253b47660e99ed54502fe 100644 (file)
@@ -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>());
index 20456b57b2f194347ad83c43ff08c1680e2a7e6c..8d6ec191d1324bd04ae54fafe3e59901c677e369 100644 (file)
@@ -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 <bits/stl_algobase.h>
 #include <parallel/base.h>
-#include <parallel/tags.h>
-#include <parallel/settings.h>
+#include <parallel/algorithmfwd.h>
 #include <parallel/find.h>
 #include <parallel/find_selectors.h>
 
index cb24f7f6771d2cb9ecf78b503052198bf281fb77..577497e787da3618558ab0010c7ca565cc26cac6 100644 (file)
@@ -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:
index e77653aeefa8b97cdefe15ec88254e2da496f87b..cfba9c4366e90d3e3b6f85904d7b8bc44b8bafa1 100644 (file)
@@ -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 <bits/stl_algo.h>
 
-#include <parallel/sort.h>
-
 namespace __gnu_parallel
 {
   /** @brief Compare __a pair of types lexicographically, ascending. */
index 1c73ad0042db8b93acbc8c57483c9b25fad9bfa0..bae6a5cd611744863e7ce781d4c974d1390b8c1d 100644 (file)
@@ -45,6 +45,7 @@
 #include <parallel/features.h>
 #include <parallel/parallel.h>
 #include <parallel/losertree.h>
+#include <parallel/multiseq_selection.h>
 #if _GLIBCXX_ASSERTIONS
 #include <parallel/checkers.h>
 #endif
 
 namespace __gnu_parallel
 {
+  template<typename _RAIter1, typename _RAIter2, typename _OutputIterator,
+          typename _DifferenceTp, typename _Compare>
+    _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.
    *
index e41e073b1ecf4c17098afb498ea8b4df3cc8d26c..65d9c11ac5247453eac6cf59d4a7a1dd670d04cc 100644 (file)
@@ -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++ -*-
index 8729f4142f81dfa7796c058468755c4d3d690b2d..bc5a596b4ff011bc4697162c97e653f852f84548 100644 (file)
@@ -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++ -*-
index bfb2ed4484e86efa7350be2ca5a1a436820a406c..3a9fc3c631f53118292db903d847d3233feaa7b2 100644 (file)
@@ -1,5 +1,5 @@
+// { dg-require-debug-mode "" }
 // { dg-require-time "" }
-// { dg-options "-D_GLIBCXX_DEBUG" }
 // { dg-timeout-factor 2.0 }
 
 // -*- C++ -*-
index c39eb0df311753ae9daadac54be2aec89e453dd2..065ca9de357883f1975205f5b0c1ee44311691d6 100644 (file)
@@ -1,5 +1,5 @@
+// { dg-require-debug-mode "" }
 // { dg-require-time "" }
-// { dg-options "-D_GLIBCXX_DEBUG" }
 // { dg-timeout-factor 2.0 }
 
 // -*- C++ -*-
index dda991517164f57770c416366304a9182aed3101..1d6dcf1bdb41b67bb951596674e826517e1ce0b5 100644 (file)
@@ -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++ -*-
index 934d96d0bc7b257ed9ed23dc7a7dddd762fe7f64..75b31f037be9d68092fb35ea1c10ece0b7d9cc11 100644 (file)
@@ -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++ -*-
index 146fc1f1ce8c0ad7c56349a4d549b35625ede679..1e85d01612176c6cf2bb09ae42a7b3290b7eae24 100644 (file)
@@ -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++ -*-
index 5d7ada8c9de687eef61fe7cd21eb3130b03b8a25..701e7d8e095b1bf7b5a3cb23f52b8ba9161035c3 100644 (file)
@@ -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++ -*-
index b075e5b5d8fe0470741a7a7f6771a217004b0e93..19a201da443ffe74883e2c675a9edcb92e356a86 100644 (file)
@@ -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++ -*-