public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libstdc++/35588]  New: parallel std::sort and bind()
@ 2008-03-14 17:29 sylvain dot pion at sophia dot inria dot fr
  2008-03-14 22:55 ` [Bug libstdc++/35588] [parallel mode] " pcarlini at suse dot de
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: sylvain dot pion at sophia dot inria dot fr @ 2008-03-14 17:29 UTC (permalink / raw)
  To: gcc-bugs

The following code fails to compile using the parallel mode:

#include <algorithm>
#include <functional>
#include <tr1/functional>

int main()
{
        using namespace std;
        using namespace tr1;
        using namespace placeholders;

        int t[10];
        sort(t, t+10, bind(less<int>(), _1, _2));
}
--------------------------

The error message is:

In file included from
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_mergesort.h:46,
                 from
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/sort.h:50,
                 from
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/algo.h:51,
                 from
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/algorithm:43,
                 from
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/algorithm:70,
                 from parallel_sort_bug.cpp:1:
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_merge.h:
In function 'bool
__gnu_parallel::operator<=(__gnu_parallel::unguarded_iterator<RandomAccessIterator,
Comparator>&, __gnu_parallel::unguarded_iterator<RandomAccessIterator,
Comparator>&) [with RandomAccessIterator = int*, Comparator =
std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>,
std::tr1::_Placeholder<2>)>]':
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_merge.h:431:
  instantiated from 'RandomAccessIterator3
__gnu_parallel::multiway_merge_3_variant(RandomAccessIteratorIterator,
RandomAccessIteratorIterator, RandomAccessIterator3, Comparator, _DifferenceTp,
bool) [with iterator = __gnu_parallel::unguarded_iterator,
RandomAccessIteratorIterator = __gnu_cxx::__normal_iterator<std::pair<int*,
int*>*, std::__cxx1998::vector<std::pair<int*, int*>,
std::allocator<std::pair<int*, int*> > > >, RandomAccessIterator3 = int*,
_DifferenceTp = int, Comparator = std::tr1::_Bind<std::less<int>
()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]'
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_merge.h:1395:
  instantiated from 'RandomAccessIterator3
__gnu_parallel::multiway_merge(RandomAccessIteratorIterator,
RandomAccessIteratorIterator, RandomAccessIterator3, Comparator, _DifferenceTp,
bool, bool, __gnu_parallel::sequential_tag) [with RandomAccessIteratorIterator
= __gnu_cxx::__normal_iterator<std::pair<int*, int*>*,
std::__cxx1998::vector<std::pair<int*, int*>, std::allocator<std::pair<int*,
int*> > > >, RandomAccessIterator3 = int*, _DifferenceTp = int, Comparator =
std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>,
std::tr1::_Placeholder<2>)>]'
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_mergesort.h:311:
  instantiated from 'void
__gnu_parallel::parallel_sort_mwms_pu(__gnu_parallel::PMWMSSortingData<RandomAccessIterator>*,
Comparator&) [with RandomAccessIterator = int*, Comparator =
std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>,
std::tr1::_Placeholder<2>)>]'
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_mergesort.h:407:
  instantiated from 'void
__gnu_parallel::parallel_sort_mwms(RandomAccessIterator, RandomAccessIterator,
Comparator, typename std::iterator_traits<_Iterator>::difference_type, int,
bool) [with RandomAccessIterator = int*, Comparator =
std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>,
std::tr1::_Placeholder<2>)>]'
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/sort.h:88:
  instantiated from 'void __gnu_parallel::parallel_sort(RandomAccessIterator,
RandomAccessIterator, Comparator, bool) [with RandomAccessIterator = int*,
Comparator = std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>,
std::tr1::_Placeholder<2>)>]'
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/algo.h:1751:
  instantiated from 'void std::__parallel::sort(_RAIter, _RAIter, _Compare)
[with _RAIter = int*, _Compare = std::tr1::_Bind<std::less<int>
()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]'
parallel_sort_bug.cpp:12:   instantiated from here
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_merge.h:256:
error: no match for call to '(std::tr1::_Bind<std::less<int>
()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>) (int, int)'
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/tr1_impl/functional:1189:
note: candidates are: typename std::tr1::result_of<_Functor ()(typename
std::tr1::result_of<std::tr1::_Mu<_Bound_args,
std::tr1::is_bind_expression::value, (std::tr1::is_placeholder::value > 0)>
()(_Bound_args, std::tr1::tuple<_UElements ...>)>::type ...)>::type
std::tr1::_Bind<_Functor ()(_Bound_args ...)>::operator()(_Args& ...) [with
_Args = int, int, _Functor = std::less<int>, _Bound_args =
std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>]
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/tr1_impl/functional:1200:
note:                 typename std::tr1::result_of<const _Functor ()(typename
std::tr1::result_of<std::tr1::_Mu<_Bound_args,
std::tr1::is_bind_expression::value, (std::tr1::is_placeholder::value > 0)>
()(_Bound_args, std::tr1::tuple<_UElements ...>)>::type ...)>::type
std::tr1::_Bind<_Functor ()(_Bound_args ...)>::operator()(_Args& ...) const
[with _Args = int, int, _Functor = std::less<int>, _Bound_args =
std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>]
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/tr1_impl/functional:1212:
note:                 typename std::tr1::result_of<volatile _Functor
()(typename std::tr1::result_of<std::tr1::_Mu<_Bound_args,
std::tr1::is_bind_expression::value, (std::tr1::is_placeholder::value > 0)>
()(_Bound_args, std::tr1::tuple<_UElements ...>)>::type ...)>::type
std::tr1::_Bind<_Functor ()(_Bound_args ...)>::operator()(_Args& ...) volatile
[with _Args = int, int, _Functor = std::less<int>, _Bound_args =
std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>]
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/tr1_impl/functional:1225:
note:                 typename std::tr1::result_of<const volatile _Functor
()(typename std::tr1::result_of<std::tr1::_Mu<_Bound_args,
std::tr1::is_bind_expression::value, (std::tr1::is_placeholder::value > 0)>
()(_Bound_args, std::tr1::tuple<_UElements ...>)>::type ...)>::type
std::tr1::_Bind<_Functor ()(_Bound_args ...)>::operator()(_Args& ...) const
volatile [with _Args = int, int, _Functor = std::less<int>, _Bound_args =
std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>]
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_merge.h:
In function 'bool
__gnu_parallel::operator<(__gnu_parallel::unguarded_iterator<RandomAccessIterator,
Comparator>&, __gnu_parallel::unguarded_iterator<RandomAccessIterator,
Comparator>&) [with RandomAccessIterator = int*, Comparator =
std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>,
std::tr1::_Placeholder<2>)>]':
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_merge.h:436:
  instantiated from 'RandomAccessIterator3
__gnu_parallel::multiway_merge_3_variant(RandomAccessIteratorIterator,
RandomAccessIteratorIterator, RandomAccessIterator3, Comparator, _DifferenceTp,
bool) [with iterator = __gnu_parallel::unguarded_iterator,
RandomAccessIteratorIterator = __gnu_cxx::__normal_iterator<std::pair<int*,
int*>*, std::__cxx1998::vector<std::pair<int*, int*>,
std::allocator<std::pair<int*, int*> > > >, RandomAccessIterator3 = int*,
_DifferenceTp = int, Comparator = std::tr1::_Bind<std::less<int>
()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]'
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_merge.h:1395:
  instantiated from 'RandomAccessIterator3
__gnu_parallel::multiway_merge(RandomAccessIteratorIterator,
RandomAccessIteratorIterator, RandomAccessIterator3, Comparator, _DifferenceTp,
bool, bool, __gnu_parallel::sequential_tag) [with RandomAccessIteratorIterator
= __gnu_cxx::__normal_iterator<std::pair<int*, int*>*,
std::__cxx1998::vector<std::pair<int*, int*>, std::allocator<std::pair<int*,
int*> > > >, RandomAccessIterator3 = int*, _DifferenceTp = int, Comparator =
std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>,
std::tr1::_Placeholder<2>)>]'
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_mergesort.h:311:
  instantiated from 'void
__gnu_parallel::parallel_sort_mwms_pu(__gnu_parallel::PMWMSSortingData<RandomAccessIterator>*,
Comparator&) [with RandomAccessIterator = int*, Comparator =
std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>,
std::tr1::_Placeholder<2>)>]'
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_mergesort.h:407:
  instantiated from 'void
__gnu_parallel::parallel_sort_mwms(RandomAccessIterator, RandomAccessIterator,
Comparator, typename std::iterator_traits<_Iterator>::difference_type, int,
bool) [with RandomAccessIterator = int*, Comparator =
std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>,
std::tr1::_Placeholder<2>)>]'
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/sort.h:88:
  instantiated from 'void __gnu_parallel::parallel_sort(RandomAccessIterator,
RandomAccessIterator, Comparator, bool) [with RandomAccessIterator = int*,
Comparator = std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>,
std::tr1::_Placeholder<2>)>]'
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/algo.h:1751:
  instantiated from 'void std::__parallel::sort(_RAIter, _RAIter, _Compare)
[with _RAIter = int*, _Compare = std::tr1::_Bind<std::less<int>
()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]'
parallel_sort_bug.cpp:12:   instantiated from here
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_merge.h:243:
error: no match for call to '(std::tr1::_Bind<std::less<int>
()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>) (int, int)'
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/tr1_impl/functional:1189:
note: candidates are: typename std::tr1::result_of<_Functor ()(typename
std::tr1::result_of<std::tr1::_Mu<_Bound_args,
std::tr1::is_bind_expression::value, (std::tr1::is_placeholder::value > 0)>
()(_Bound_args, std::tr1::tuple<_UElements ...>)>::type ...)>::type
std::tr1::_Bind<_Functor ()(_Bound_args ...)>::operator()(_Args& ...) [with
_Args = int, int, _Functor = std::less<int>, _Bound_args =
std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>]
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/tr1_impl/functional:1200:
note:                 typename std::tr1::result_of<const _Functor ()(typename
std::tr1::result_of<std::tr1::_Mu<_Bound_args,
std::tr1::is_bind_expression::value, (std::tr1::is_placeholder::value > 0)>
()(_Bound_args, std::tr1::tuple<_UElements ...>)>::type ...)>::type
std::tr1::_Bind<_Functor ()(_Bound_args ...)>::operator()(_Args& ...) const
[with _Args = int, int, _Functor = std::less<int>, _Bound_args =
std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>]
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/tr1_impl/functional:1212:
note:                 typename std::tr1::result_of<volatile _Functor
()(typename std::tr1::result_of<std::tr1::_Mu<_Bound_args,
std::tr1::is_bind_expression::value, (std::tr1::is_placeholder::value > 0)>
()(_Bound_args, std::tr1::tuple<_UElements ...>)>::type ...)>::type
std::tr1::_Bind<_Functor ()(_Bound_args ...)>::operator()(_Args& ...) volatile
[with _Args = int, int, _Functor = std::less<int>, _Bound_args =
std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>]
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/tr1_impl/functional:1225:
note:                 typename std::tr1::result_of<const volatile _Functor
()(typename std::tr1::result_of<std::tr1::_Mu<_Bound_args,
std::tr1::is_bind_expression::value, (std::tr1::is_placeholder::value > 0)>
()(_Bound_args, std::tr1::tuple<_UElements ...>)>::type ...)>::type
std::tr1::_Bind<_Functor ()(_Bound_args ...)>::operator()(_Args& ...) const
volatile [with _Args = int, int, _Functor = std::less<int>, _Bound_args =
std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>]
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_merge.h:
In function 'bool
__gnu_parallel::operator<=(__gnu_parallel::guarded_iterator<RandomAccessIterator,
Comparator>&, __gnu_parallel::guarded_iterator<RandomAccessIterator,
Comparator>&) [with RandomAccessIterator = int*, Comparator =
std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>,
std::tr1::_Placeholder<2>)>]':
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_merge.h:431:
  instantiated from 'RandomAccessIterator3
__gnu_parallel::multiway_merge_3_variant(RandomAccessIteratorIterator,
RandomAccessIteratorIterator, RandomAccessIterator3, Comparator, _DifferenceTp,
bool) [with iterator = __gnu_parallel::guarded_iterator,
RandomAccessIteratorIterator = __gnu_cxx::__normal_iterator<std::pair<int*,
int*>*, std::__cxx1998::vector<std::pair<int*, int*>,
std::allocator<std::pair<int*, int*> > > >, RandomAccessIterator3 = int*,
_DifferenceTp = int, Comparator = std::tr1::_Bind<std::less<int>
()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]'
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_merge.h:1403:
  instantiated from 'RandomAccessIterator3
__gnu_parallel::multiway_merge(RandomAccessIteratorIterator,
RandomAccessIteratorIterator, RandomAccessIterator3, Comparator, _DifferenceTp,
bool, bool, __gnu_parallel::sequential_tag) [with RandomAccessIteratorIterator
= __gnu_cxx::__normal_iterator<std::pair<int*, int*>*,
std::__cxx1998::vector<std::pair<int*, int*>, std::allocator<std::pair<int*,
int*> > > >, RandomAccessIterator3 = int*, _DifferenceTp = int, Comparator =
std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>,
std::tr1::_Placeholder<2>)>]'
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_mergesort.h:311:
  instantiated from 'void
__gnu_parallel::parallel_sort_mwms_pu(__gnu_parallel::PMWMSSortingData<RandomAccessIterator>*,
Comparator&) [with RandomAccessIterator = int*, Comparator =
std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>,
std::tr1::_Placeholder<2>)>]'
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_mergesort.h:407:
  instantiated from 'void
__gnu_parallel::parallel_sort_mwms(RandomAccessIterator, RandomAccessIterator,
Comparator, typename std::iterator_traits<_Iterator>::difference_type, int,
bool) [with RandomAccessIterator = int*, Comparator =
std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>,
std::tr1::_Placeholder<2>)>]'
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/sort.h:88:
  instantiated from 'void __gnu_parallel::parallel_sort(RandomAccessIterator,
RandomAccessIterator, Comparator, bool) [with RandomAccessIterator = int*,
Comparator = std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>,
std::tr1::_Placeholder<2>)>]'
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/algo.h:1751:
  instantiated from 'void std::__parallel::sort(_RAIter, _RAIter, _Compare)
[with _RAIter = int*, _Compare = std::tr1::_Bind<std::less<int>
()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]'
parallel_sort_bug.cpp:12:   instantiated from here
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_merge.h:167:
error: no match for call to '(std::tr1::_Bind<std::less<int>
()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>) (int, int)'
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/tr1_impl/functional:1189:
note: candidates are: typename std::tr1::result_of<_Functor ()(typename
std::tr1::result_of<std::tr1::_Mu<_Bound_args,
std::tr1::is_bind_expression::value, (std::tr1::is_placeholder::value > 0)>
()(_Bound_args, std::tr1::tuple<_UElements ...>)>::type ...)>::type
std::tr1::_Bind<_Functor ()(_Bound_args ...)>::operator()(_Args& ...) [with
_Args = int, int, _Functor = std::less<int>, _Bound_args =
std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>]
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/tr1_impl/functional:1200:
note:                 typename std::tr1::result_of<const _Functor ()(typename
std::tr1::result_of<std::tr1::_Mu<_Bound_args,
std::tr1::is_bind_expression::value, (std::tr1::is_placeholder::value > 0)>
()(_Bound_args, std::tr1::tuple<_UElements ...>)>::type ...)>::type
std::tr1::_Bind<_Functor ()(_Bound_args ...)>::operator()(_Args& ...) const
[with _Args = int, int, _Functor = std::less<int>, _Bound_args =
std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>]
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/tr1_impl/functional:1212:
note:                 typename std::tr1::result_of<volatile _Functor
()(typename std::tr1::result_of<std::tr1::_Mu<_Bound_args,
std::tr1::is_bind_expression::value, (std::tr1::is_placeholder::value > 0)>
()(_Bound_args, std::tr1::tuple<_UElements ...>)>::type ...)>::type
std::tr1::_Bind<_Functor ()(_Bound_args ...)>::operator()(_Args& ...) volatile
[with _Args = int, int, _Functor = std::less<int>, _Bound_args =
std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>]
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/tr1_impl/functional:1225:
note:                 typename std::tr1::result_of<const volatile _Functor
()(typename std::tr1::result_of<std::tr1::_Mu<_Bound_args,
std::tr1::is_bind_expression::value, (std::tr1::is_placeholder::value > 0)>
()(_Bound_args, std::tr1::tuple<_UElements ...>)>::type ...)>::type
std::tr1::_Bind<_Functor ()(_Bound_args ...)>::operator()(_Args& ...) const
volatile [with _Args = int, int, _Functor = std::less<int>, _Bound_args =
std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>]
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_merge.h:
In function 'bool
__gnu_parallel::operator<(__gnu_parallel::guarded_iterator<RandomAccessIterator,
Comparator>&, __gnu_parallel::guarded_iterator<RandomAccessIterator,
Comparator>&) [with RandomAccessIterator = int*, Comparator =
std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>,
std::tr1::_Placeholder<2>)>]':
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_merge.h:436:
  instantiated from 'RandomAccessIterator3
__gnu_parallel::multiway_merge_3_variant(RandomAccessIteratorIterator,
RandomAccessIteratorIterator, RandomAccessIterator3, Comparator, _DifferenceTp,
bool) [with iterator = __gnu_parallel::guarded_iterator,
RandomAccessIteratorIterator = __gnu_cxx::__normal_iterator<std::pair<int*,
int*>*, std::__cxx1998::vector<std::pair<int*, int*>,
std::allocator<std::pair<int*, int*> > > >, RandomAccessIterator3 = int*,
_DifferenceTp = int, Comparator = std::tr1::_Bind<std::less<int>
()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]'
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_merge.h:1403:
  instantiated from 'RandomAccessIterator3
__gnu_parallel::multiway_merge(RandomAccessIteratorIterator,
RandomAccessIteratorIterator, RandomAccessIterator3, Comparator, _DifferenceTp,
bool, bool, __gnu_parallel::sequential_tag) [with RandomAccessIteratorIterator
= __gnu_cxx::__normal_iterator<std::pair<int*, int*>*,
std::__cxx1998::vector<std::pair<int*, int*>, std::allocator<std::pair<int*,
int*> > > >, RandomAccessIterator3 = int*, _DifferenceTp = int, Comparator =
std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>,
std::tr1::_Placeholder<2>)>]'
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_mergesort.h:311:
  instantiated from 'void
__gnu_parallel::parallel_sort_mwms_pu(__gnu_parallel::PMWMSSortingData<RandomAccessIterator>*,
Comparator&) [with RandomAccessIterator = int*, Comparator =
std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>,
std::tr1::_Placeholder<2>)>]'
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_mergesort.h:407:
  instantiated from 'void
__gnu_parallel::parallel_sort_mwms(RandomAccessIterator, RandomAccessIterator,
Comparator, typename std::iterator_traits<_Iterator>::difference_type, int,
bool) [with RandomAccessIterator = int*, Comparator =
std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>,
std::tr1::_Placeholder<2>)>]'
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/sort.h:88:
  instantiated from 'void __gnu_parallel::parallel_sort(RandomAccessIterator,
RandomAccessIterator, Comparator, bool) [with RandomAccessIterator = int*,
Comparator = std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>,
std::tr1::_Placeholder<2>)>]'
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/algo.h:1751:
  instantiated from 'void std::__parallel::sort(_RAIter, _RAIter, _Compare)
[with _RAIter = int*, _Compare = std::tr1::_Bind<std::less<int>
()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]'
parallel_sort_bug.cpp:12:   instantiated from here
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_merge.h:151:
error: no match for call to '(std::tr1::_Bind<std::less<int>
()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>) (int, int)'
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/tr1_impl/functional:1189:
note: candidates are: typename std::tr1::result_of<_Functor ()(typename
std::tr1::result_of<std::tr1::_Mu<_Bound_args,
std::tr1::is_bind_expression::value, (std::tr1::is_placeholder::value > 0)>
()(_Bound_args, std::tr1::tuple<_UElements ...>)>::type ...)>::type
std::tr1::_Bind<_Functor ()(_Bound_args ...)>::operator()(_Args& ...) [with
_Args = int, int, _Functor = std::less<int>, _Bound_args =
std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>]
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/tr1_impl/functional:1200:
note:                 typename std::tr1::result_of<const _Functor ()(typename
std::tr1::result_of<std::tr1::_Mu<_Bound_args,
std::tr1::is_bind_expression::value, (std::tr1::is_placeholder::value > 0)>
()(_Bound_args, std::tr1::tuple<_UElements ...>)>::type ...)>::type
std::tr1::_Bind<_Functor ()(_Bound_args ...)>::operator()(_Args& ...) const
[with _Args = int, int, _Functor = std::less<int>, _Bound_args =
std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>]
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/tr1_impl/functional:1212:
note:                 typename std::tr1::result_of<volatile _Functor
()(typename std::tr1::result_of<std::tr1::_Mu<_Bound_args,
std::tr1::is_bind_expression::value, (std::tr1::is_placeholder::value > 0)>
()(_Bound_args, std::tr1::tuple<_UElements ...>)>::type ...)>::type
std::tr1::_Bind<_Functor ()(_Bound_args ...)>::operator()(_Args& ...) volatile
[with _Args = int, int, _Functor = std::less<int>, _Bound_args =
std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>]
/Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/tr1_impl/functional:1225:
note:                 typename std::tr1::result_of<const volatile _Functor
()(typename std::tr1::result_of<std::tr1::_Mu<_Bound_args,
std::tr1::is_bind_expression::value, (std::tr1::is_placeholder::value > 0)>
()(_Bound_args, std::tr1::tuple<_UElements ...>)>::type ...)>::type
std::tr1::_Bind<_Functor ()(_Bound_args ...)>::operator()(_Args& ...) const
volatile [with _Args = int, int, _Functor = std::less<int>, _Bound_args =
std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>]


-- 
           Summary: parallel std::sort and bind()
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: sylvain dot pion at sophia dot inria dot fr
  GCC host triplet: i686-apple-darwin8


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35588


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug libstdc++/35588] [parallel mode] parallel std::sort and bind()
  2008-03-14 17:29 [Bug libstdc++/35588] New: parallel std::sort and bind() sylvain dot pion at sophia dot inria dot fr
@ 2008-03-14 22:55 ` pcarlini at suse dot de
  2008-04-03  9:01 ` singler at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: pcarlini at suse dot de @ 2008-03-14 22:55 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from pcarlini at suse dot de  2008-03-14 22:54 -------
Hi Johannes, can you have a look? Many thanks.


-- 

pcarlini at suse dot de changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |singler at gcc dot gnu dot
                   |                            |org
            Summary|parallel std::sort and      |[parallel mode] parallel
                   |bind()                      |std::sort and bind()


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35588


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug libstdc++/35588] [parallel mode] parallel std::sort and bind()
  2008-03-14 17:29 [Bug libstdc++/35588] New: parallel std::sort and bind() sylvain dot pion at sophia dot inria dot fr
  2008-03-14 22:55 ` [Bug libstdc++/35588] [parallel mode] " pcarlini at suse dot de
@ 2008-04-03  9:01 ` singler at gcc dot gnu dot org
  2008-04-07  8:28 ` singler at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: singler at gcc dot gnu dot org @ 2008-04-03  9:01 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from singler at gcc dot gnu dot org  2008-04-03 09:00 -------
Same thing for me.


-- 

singler at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |singler at gcc dot gnu dot
                   |dot org                     |org
             Status|UNCONFIRMED                 |ASSIGNED
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2008-04-03 09:00:24
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35588


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug libstdc++/35588] [parallel mode] parallel std::sort and bind()
  2008-03-14 17:29 [Bug libstdc++/35588] New: parallel std::sort and bind() sylvain dot pion at sophia dot inria dot fr
  2008-03-14 22:55 ` [Bug libstdc++/35588] [parallel mode] " pcarlini at suse dot de
  2008-04-03  9:01 ` singler at gcc dot gnu dot org
@ 2008-04-07  8:28 ` singler at gcc dot gnu dot org
  2008-04-09 16:48 ` singler at gcc dot gnu dot org
  2008-04-09 17:04 ` singler at gcc dot gnu dot org
  4 siblings, 0 replies; 6+ messages in thread
From: singler at gcc dot gnu dot org @ 2008-04-07  8:28 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from singler at gcc dot gnu dot org  2008-04-07 08:28 -------
Subject: Bug 35588

Author: singler
Date: Mon Apr  7 08:27:34 2008
New Revision: 133975

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=133975
Log:
2008-04-07  Johannes Singler  <singler@ira.uka.de>

         * include/parallel/multiway_merge.h:
           Moved decisions to compiletime instead of runtime.
         * include/parallel/losertree.h:
           Removed obsolete variants, added variant that uses pointers
           in the loser tree.
         * include/parallel/types.h:
           Remove obsolete settings options from enum.
         * include/parallel/features.h:
           Remove obsolete compile-time switches.
         * include/parallel/compiletime_settings.h:
           Remove obsolete variant that copies back *after* sorting.
         * include/parallel/tags.h:
           Add one new tag for compile-time switch.
         * include/parallel/merge.h:
           Adapt to changes in multiway_merge.h.
         * include/parallel/multiway_mergesort.h:
           Adapt to changes in multiway_merge.h.
           Factor out splitting variants.
           Remove obsolete variant that copies back *after* sorting.
         * include/parallel/sort.h:
           Adapt to changes in multiway_mergesort.h.
         * testsuite/25_algorithms/sort/35588.cc:
           Added test case from / for PR 35588. 


Added:
    trunk/libstdc++-v3/testsuite/25_algorithms/sort/35588.cc
Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/include/parallel/compiletime_settings.h
    trunk/libstdc++-v3/include/parallel/features.h
    trunk/libstdc++-v3/include/parallel/losertree.h
    trunk/libstdc++-v3/include/parallel/merge.h
    trunk/libstdc++-v3/include/parallel/multiway_merge.h
    trunk/libstdc++-v3/include/parallel/multiway_mergesort.h
    trunk/libstdc++-v3/include/parallel/sort.h
    trunk/libstdc++-v3/include/parallel/tags.h
    trunk/libstdc++-v3/include/parallel/types.h


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35588


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug libstdc++/35588] [parallel mode] parallel std::sort and bind()
  2008-03-14 17:29 [Bug libstdc++/35588] New: parallel std::sort and bind() sylvain dot pion at sophia dot inria dot fr
                   ` (2 preceding siblings ...)
  2008-04-07  8:28 ` singler at gcc dot gnu dot org
@ 2008-04-09 16:48 ` singler at gcc dot gnu dot org
  2008-04-09 17:04 ` singler at gcc dot gnu dot org
  4 siblings, 0 replies; 6+ messages in thread
From: singler at gcc dot gnu dot org @ 2008-04-09 16:48 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from singler at gcc dot gnu dot org  2008-04-09 16:47 -------
Subject: Bug 35588

Author: singler
Date: Wed Apr  9 16:47:00 2008
New Revision: 134148

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=134148
Log:
2008-04-09  Johannes Singler  <singler@ira.uka.de>

         * include/parallel/multiway_merge.h:
           Moved decisions to compiletime instead of runtime.
         * include/parallel/losertree.h:
           Removed obsolete variants, added variant that uses pointers
           in the loser tree.
         * include/parallel/types.h:
           Remove obsolete settings options from enum.
         * include/parallel/features.h:
           Remove obsolete compile-time switches.
         * include/parallel/compiletime_settings.h:
           Remove obsolete variant that copies back *after* sorting.
         * include/parallel/tags.h:
           Add one new tag for compile-time switch.
         * include/parallel/merge.h:
           Adapt to changes in multiway_merge.h.
         * include/parallel/multiway_mergesort.h:
           Adapt to changes in multiway_merge.h.
           Factor out splitting variants.
           Remove obsolete variant that copies back *after* sorting.
         * include/parallel/sort.h:
           Adapt to changes in multiway_mergesort.h.
         * testsuite/25_algorithms/sort/35588.cc:
           Added test case from / for PR 35588.


Added:
    branches/gcc-4_3-branch/libstdc++-v3/testsuite/25_algorithms/sort/35588.cc
Modified:
    branches/gcc-4_3-branch/libstdc++-v3/ChangeLog
   
branches/gcc-4_3-branch/libstdc++-v3/include/parallel/compiletime_settings.h
    branches/gcc-4_3-branch/libstdc++-v3/include/parallel/features.h
    branches/gcc-4_3-branch/libstdc++-v3/include/parallel/losertree.h
    branches/gcc-4_3-branch/libstdc++-v3/include/parallel/merge.h
    branches/gcc-4_3-branch/libstdc++-v3/include/parallel/multiway_merge.h
    branches/gcc-4_3-branch/libstdc++-v3/include/parallel/multiway_mergesort.h
    branches/gcc-4_3-branch/libstdc++-v3/include/parallel/sort.h
    branches/gcc-4_3-branch/libstdc++-v3/include/parallel/tags.h
    branches/gcc-4_3-branch/libstdc++-v3/include/parallel/types.h


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35588


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug libstdc++/35588] [parallel mode] parallel std::sort and bind()
  2008-03-14 17:29 [Bug libstdc++/35588] New: parallel std::sort and bind() sylvain dot pion at sophia dot inria dot fr
                   ` (3 preceding siblings ...)
  2008-04-09 16:48 ` singler at gcc dot gnu dot org
@ 2008-04-09 17:04 ` singler at gcc dot gnu dot org
  4 siblings, 0 replies; 6+ messages in thread
From: singler at gcc dot gnu dot org @ 2008-04-09 17:04 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from singler at gcc dot gnu dot org  2008-04-09 17:03 -------
Fixed for mainline and gcc-4_3-branch.


-- 

singler at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35588


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2008-04-09 17:04 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-03-14 17:29 [Bug libstdc++/35588] New: parallel std::sort and bind() sylvain dot pion at sophia dot inria dot fr
2008-03-14 22:55 ` [Bug libstdc++/35588] [parallel mode] " pcarlini at suse dot de
2008-04-03  9:01 ` singler at gcc dot gnu dot org
2008-04-07  8:28 ` singler at gcc dot gnu dot org
2008-04-09 16:48 ` singler at gcc dot gnu dot org
2008-04-09 17:04 ` singler at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).