diff options
Diffstat (limited to 'stdlib/tst-qsort.c')
-rw-r--r-- | stdlib/tst-qsort.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/stdlib/tst-qsort.c b/stdlib/tst-qsort.c index f39667b..2b26e74 100644 --- a/stdlib/tst-qsort.c +++ b/stdlib/tst-qsort.c @@ -1,17 +1,24 @@ /* Test case by Paul Eggert <eggert@twinsun.com> */ #include <stdio.h> #include <stdlib.h> +#include <tst-stack-align.h> struct big { char c[4 * 1024]; }; struct big *array; struct big *array_end; +static int align_check; + int compare (void const *a1, void const *b1) { struct big const *a = a1; struct big const *b = b1; + + if (!align_check) + align_check = TEST_STACK_ALIGN () ? -1 : 1; + if (! (array <= a && a < array_end && array <= b && b < array_end)) { @@ -38,5 +45,11 @@ main (int argc, char **argv) qsort (array, array_members, sizeof *array, compare); + if (align_check == -1) + { + puts ("stack not sufficiently aligned"); + exit (EXIT_FAILURE); + } + return 0; } |