PR libstdc++/34095
* include/parallel/multiway_merge.h (multiway_merge_bubble,
parallel_multiway_merge): Together with ::operator new use
::operator delete.
* include/parallel/losertree.h (LoserTree<>::~LoserTree): Likewise.
* include/parallel/quicksort.h (parallel_sort_qs_divide): Likewise.
* include/parallel/random_shuffle.h (parallel_random_shuffle_drs_pu,
sequential_random_shuffle): Likewise.
* include/parallel/tree.h (_M_not_sorted_bulk_insertion_construction):
Likewise.
* include/parallel/multiway_mergesort.h (parallel_sort_mwms_pu,
parallel_sort_mwms): Likewise.
* include/parallel/partial_sum.h (parallel_partial_sum_linear):
Likewise.
* testsuite/25_algorithms/sort/34095.cc: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@131247
138bc75d-0d04-0410-961f-
82ee72b054a4
2008-01-01 Paolo Carlini <pcarlini@suse.de>
+ PR libstdc++/34095
+ * include/parallel/multiway_merge.h (multiway_merge_bubble,
+ parallel_multiway_merge): Together with ::operator new use
+ ::operator delete.
+ * include/parallel/losertree.h (LoserTree<>::~LoserTree): Likewise.
+ * include/parallel/quicksort.h (parallel_sort_qs_divide): Likewise.
+ * include/parallel/random_shuffle.h (parallel_random_shuffle_drs_pu,
+ sequential_random_shuffle): Likewise.
+ * include/parallel/tree.h (_M_not_sorted_bulk_insertion_construction):
+ Likewise.
+ * include/parallel/multiway_mergesort.h (parallel_sort_mwms_pu,
+ parallel_sort_mwms): Likewise.
+ * include/parallel/partial_sum.h (parallel_partial_sum_linear):
+ Likewise.
+ * testsuite/25_algorithms/sort/34095.cc: New.
+
+2008-01-01 Paolo Carlini <pcarlini@suse.de>
+
* testsuite/25_algorithms/sort/34636.cc: Fix Copyright year.
2008-01-01 Paolo Carlini <pcarlini@suse.de>
// -*- C++ -*-
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2008 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
}
inline ~LoserTree()
- { delete[] losers; }
+ { ::operator delete(losers); }
inline int
get_min_source()
// -*- C++ -*-
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2008 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
}
}
- delete fe; //Destructors already called.
+ ::operator delete(fe); //Destructors already called.
delete[] source;
return target;
else
pieces[slab][seq].second = _GLIBCXX_PARALLEL_LENGTH(seqs_begin[seq]);
}
- delete[] samples;
+ ::operator delete(samples);
}
else
{
// -*- C++ -*-
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2008 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
sd->source + offset);
#endif
- delete[] sd->temporaries[iam];
+ ::operator delete(sd->temporaries[iam]);
}
/** @brief PMWMS main call.
delete[] sd.merging_places;
if (Settings::sort_splitting == Settings::SAMPLING)
- delete[] sd.samples;
+ ::operator delete(sd.samples);
delete[] sd.offsets;
delete[] sd.pieces;
// -*- C++ -*-
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2008 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
sums[iam]);
} //parallel
- delete[] sums;
+ ::operator delete(sums);
delete[] borders;
return result + n;
// -*- C++ -*-
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2008 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
pred(comp, pivot);
difference_type split = parallel_partition(begin, end, pred, num_threads);
- delete[] samples;
+ ::operator delete(samples);
return split;
}
// -*- C++ -*-
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2008 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
((b == d->bins_begin) ? 0 : sd->dist[b][d->num_threads]));
}
- delete[] sd->temporaries[iam];
+ ::operator delete(sd->temporaries[iam]);
}
/** @brief Round up to the next greater power of 2.
delete[] dist0;
delete[] dist1;
delete[] oracles;
- delete[] target;
+ ::operator delete(target);
}
else
__gnu_sequential::random_shuffle(begin, end, rng);
// -*- C++ -*-
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2008 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
_M_sorted_bulk_construction(sorted_access, beg_partition, n, num_threads, strictly_less_or_less_equal);
else
_M_sorted_bulk_insertion(sorted_access, beg_partition, n, num_threads, strictly_less_or_less_equal);
- delete v;
+ ::operator delete(v);
}
/** @brief Construct a tree sequentially using the parallel routine
--- /dev/null
+// Copyright (C) 2008 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 of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <vector>
+#include <algorithm>
+
+// libstdc++/34095
+void test01()
+{
+ std::vector<std::vector<int> > v(20000);
+ std::sort(v.begin(), v.end());
+}
+
+int main()
+{
+ test01();
+ return 0;
+}