aboutsummaryrefslogtreecommitdiff
path: root/gcc/system.h
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2021-06-10 11:03:55 +0200
committerRichard Biener <rguenther@suse.de>2021-06-11 09:29:35 +0200
commit367f52dcc24045b072aeb26bc301a2980b39241f (patch)
treee4af068ad4db4d7219b221bd0176c49776b9a4ff /gcc/system.h
parent26dbe85a3781af913639b17bc966f4a0b8209f3b (diff)
downloadgcc-367f52dcc24045b072aeb26bc301a2980b39241f.zip
gcc-367f52dcc24045b072aeb26bc301a2980b39241f.tar.gz
gcc-367f52dcc24045b072aeb26bc301a2980b39241f.tar.bz2
Expose stable sort algorithm to gcc_sort_r and add vec::stablesort
This makes it possible to apply GCCs stable sort algorithm to vec<> and also use it with the qsort_r compatible interface. 2021-06-10 Richard Biener <rguenther@suse.de> * system.h (gcc_stablesort_r): Declare. * sort.cc (gcc_sort_r): Support stable sort. (gcc_stablesort_r): Define. * vec.h (vec<>::stablesort): Add.
Diffstat (limited to 'gcc/system.h')
-rw-r--r--gcc/system.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/system.h b/gcc/system.h
index 3c85626..adde3e2 100644
--- a/gcc/system.h
+++ b/gcc/system.h
@@ -1250,6 +1250,7 @@ void gcc_sort_r (void *, size_t, size_t, sort_r_cmp_fn *, void *);
void gcc_qsort (void *, size_t, size_t, int (*)(const void *, const void *));
void gcc_stablesort (void *, size_t, size_t,
int (*)(const void *, const void *));
+void gcc_stablesort_r (void *, size_t, size_t, sort_r_cmp_fn *, void *data);
/* Redirect four-argument qsort calls to gcc_qsort; one-argument invocations
correspond to vec::qsort, and use C qsort internally. */
#define PP_5th(a1, a2, a3, a4, a5, ...) a5