OSDN Git Service

2007-12-15 Benjamin Kosnik <bkoz@redhat.com>
authorbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 15 Dec 2007 16:19:37 +0000 (16:19 +0000)
committerbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 15 Dec 2007 16:19:37 +0000 (16:19 +0000)
    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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@130956 138bc75d-0d04-0410-961f-82ee72b054a4

libstdc++-v3/ChangeLog
libstdc++-v3/include/parallel/losertree.h
libstdc++-v3/include/parallel/multiway_merge.h
libstdc++-v3/include/parallel/multiway_mergesort.h
libstdc++-v3/include/parallel/partial_sum.h
libstdc++-v3/include/parallel/quicksort.h
libstdc++-v3/include/parallel/random_shuffle.h

index d53fc0f..a6a5d0f 100644 (file)
@@ -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
index 42cb54f..2f2fae7 100644 (file)
@@ -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;
index c1bf251..818049c 100644 (file)
@@ -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]);
                       }
 
index 0476474..e541850 100644 (file)
@@ -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;
index b168e46..e4a4276 100644 (file)
@@ -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]),
index 16901ed..d94a49d 100644 (file)
@@ -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);
index 6bce8d6..663962b 100644 (file)
@@ -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)
           {