From 58a6ef4b0981e35f8faa2363bbc8a3790c1381b0 Mon Sep 17 00:00:00 2001 From: Benjamin Kosnik <bkoz@redhat.com> Date: Sat, 15 Dec 2007 16:19:37 +0000 Subject: [PATCH] partial_sum.h: Include new. 2007-12-15 Benjamin Kosnik <bkoz@redhat.com> Paolo Carlini <pcarlini@suse.de> * include/parallel/partial_sum.h: Include new. Fix for DR 402. * include/parallel/multiway_merge.h:Fix for DR 402. * include/parallel/losertree.h: Same. * include/parallel/quicksort.h: Same. * include/parallel/random_shuffle.h: Same. * include/parallel/multiway_mergesort.h: Same. Co-Authored-By: Paolo Carlini <pcarlini@suse.de> From-SVN: r130956 --- libstdc++-v3/ChangeLog | 10 ++++++++++ libstdc++-v3/include/parallel/losertree.h | 4 ++-- libstdc++-v3/include/parallel/multiway_merge.h | 4 ++-- libstdc++-v3/include/parallel/multiway_mergesort.h | 2 +- libstdc++-v3/include/parallel/partial_sum.h | 5 +++-- libstdc++-v3/include/parallel/quicksort.h | 2 +- libstdc++-v3/include/parallel/random_shuffle.h | 4 ++-- 7 files changed, 21 insertions(+), 10 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index d53fc0ff509e..a6a5d0f812c7 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,13 @@ +2007-12-15 Benjamin Kosnik <bkoz@redhat.com> + Paolo Carlini <pcarlini@suse.de> + + * include/parallel/partial_sum.h: Include new. Fix for DR 402. + * include/parallel/multiway_merge.h:Fix for DR 402. + * include/parallel/losertree.h: Same. + * include/parallel/quicksort.h: Same. + * include/parallel/random_shuffle.h: Same. + * include/parallel/multiway_mergesort.h: Same. + 2007-12-14 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/30127 diff --git a/libstdc++-v3/include/parallel/losertree.h b/libstdc++-v3/include/parallel/losertree.h index 42cb54f2f503..2f2fae711da0 100644 --- a/libstdc++-v3/include/parallel/losertree.h +++ b/libstdc++-v3/include/parallel/losertree.h @@ -265,11 +265,11 @@ template<typename T, typename Comparator = std::less<T> > { // Construct all keys, so we can easily deconstruct them. for (unsigned int i = 0; i < (2 * k); ++i) - new(&(losers[i].key)) T(key); + ::new(&(losers[i].key)) T(key); first_insert = false; } else - new(&(losers[pos].key)) T(key); + ::new(&(losers[pos].key)) T(key); losers[pos].sup = sup; losers[pos].source = source; diff --git a/libstdc++-v3/include/parallel/multiway_merge.h b/libstdc++-v3/include/parallel/multiway_merge.h index c1bf2518c36b..818049cde855 100644 --- a/libstdc++-v3/include/parallel/multiway_merge.h +++ b/libstdc++-v3/include/parallel/multiway_merge.h @@ -800,7 +800,7 @@ template< { if (seqs_begin[pi].first != seqs_begin[pi].second) { - new(&(fe[nrs])) value_type(*(seqs_begin[pi].first)); + ::new(&(fe[nrs])) value_type(*(seqs_begin[pi].first)); source[nrs] = pi; ++nrs; total_length += _GLIBCXX_PARALLEL_LENGTH(seqs_begin[pi]); @@ -1582,7 +1582,7 @@ template< _GLIBCXX_PARALLEL_LENGTH(seqs_begin[s]) * (double(i + 1) / (num_samples + 1)) * (double(length) / total_length)); - new(&(samples[s * num_samples + i])) value_type( + ::new(&(samples[s * num_samples + i])) value_type( seqs_begin[s].first[sample_index]); } diff --git a/libstdc++-v3/include/parallel/multiway_mergesort.h b/libstdc++-v3/include/parallel/multiway_mergesort.h index 0476474cb1ff..e54185069c9d 100644 --- a/libstdc++-v3/include/parallel/multiway_mergesort.h +++ b/libstdc++-v3/include/parallel/multiway_mergesort.h @@ -139,7 +139,7 @@ template<typename RandomAccessIterator, typename _DifferenceTp> num_samples + 1, es); for (difference_type i = 0; i < num_samples; i++) - new(&(sd->samples[iam * num_samples + i])) value_type( + ::new(&(sd->samples[iam * num_samples + i])) value_type( sd->source[sd->starts[iam] + es[i + 1]]); delete[] es; diff --git a/libstdc++-v3/include/parallel/partial_sum.h b/libstdc++-v3/include/parallel/partial_sum.h index b168e4653d4b..e4a4276f3a4d 100644 --- a/libstdc++-v3/include/parallel/partial_sum.h +++ b/libstdc++-v3/include/parallel/partial_sum.h @@ -40,6 +40,7 @@ #define _GLIBCXX_PARALLEL_PARTIAL_SUM_H 1 #include <omp.h> +#include <new> #include <bits/stl_algobase.h> #include <parallel/parallel.h> #include <parallel/numericfwd.h> @@ -155,11 +156,11 @@ template< *result = *begin; parallel_partial_sum_basecase(begin + 1, begin + borders[1], result + 1, bin_op, *begin); - new(&(sums[iam])) value_type(*(result + borders[1] - 1)); + ::new(&(sums[iam])) value_type(*(result + borders[1] - 1)); } else { - new(&(sums[iam])) value_type( + ::new(&(sums[iam])) value_type( std::accumulate(begin + borders[iam] + 1, begin + borders[iam + 1], *(begin + borders[iam]), diff --git a/libstdc++-v3/include/parallel/quicksort.h b/libstdc++-v3/include/parallel/quicksort.h index 16901ede84ef..d94a49d5251d 100644 --- a/libstdc++-v3/include/parallel/quicksort.h +++ b/libstdc++-v3/include/parallel/quicksort.h @@ -80,7 +80,7 @@ namespace __gnu_parallel { const unsigned long long index = static_cast<unsigned long long>(s) * n / num_samples; - new(&(samples[s])) value_type(begin[index]); + ::new(&(samples[s])) value_type(begin[index]); } __gnu_sequential::sort(samples, samples + num_samples, comp); diff --git a/libstdc++-v3/include/parallel/random_shuffle.h b/libstdc++-v3/include/parallel/random_shuffle.h index 6bce8d6b0e57..663962b43f32 100644 --- a/libstdc++-v3/include/parallel/random_shuffle.h +++ b/libstdc++-v3/include/parallel/random_shuffle.h @@ -213,7 +213,7 @@ template<typename RandomAccessIterator, typename RandomNumberGenerator> thread_index_t target_p = bin_proc[target_bin]; // Last column [d->num_threads] stays unchanged. - new(&(temporaries[target_p][dist[target_bin + 1]++])) value_type( + ::new(&(temporaries[target_p][dist[target_bin + 1]++])) value_type( *(source + i + start)); } @@ -478,7 +478,7 @@ template<typename RandomAccessIterator, typename RandomNumberGenerator> // Distribute according to oracles. for (difference_type i = 0; i < n; ++i) - new(&(target[(dist0[oracles[i]])++])) value_type(*(begin + i)); + ::new(&(target[(dist0[oracles[i]])++])) value_type(*(begin + i)); for (int b = 0; b < num_bins; ++b) { -- GitLab