aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libstdc++-v3/ChangeLog5
-rw-r--r--libstdc++-v3/include/parallel/multiway_mergesort.h3
2 files changed, 7 insertions, 1 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index a36232f..7b96f32 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,8 @@
+2007-10-09 Wolfgang Bangerth <bangerth@dealii.org>
+
+ PR libstdc++/33485 continued.
+ * include/parallel/multiway_mergesort.h: Use __builtin_alloca.
+
2007-10-09 Zhou Drangon <drangon.mail@gmail.com>
PR libstdc++/33682
diff --git a/libstdc++-v3/include/parallel/multiway_mergesort.h b/libstdc++-v3/include/parallel/multiway_mergesort.h
index 9cc0405..c1a07dc 100644
--- a/libstdc++-v3/include/parallel/multiway_mergesort.h
+++ b/libstdc++-v3/include/parallel/multiway_mergesort.h
@@ -139,7 +139,8 @@ namespace __gnu_parallel
num_samples = Settings::sort_mwms_oversampling * d->num_threads - 1;
- difference_type es[num_samples + 2];
+ difference_type* es = static_cast<difference_type*>(__builtin_alloca(sizeof(difference_type) * (num_samples + 2)));
+
equally_split(sd->starts[d->iam + 1] - sd->starts[d->iam], num_samples + 1, es);
for (difference_type i = 0; i < num_samples; i++)