diff options
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/execute/960521-1.c')
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/960521-1.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/960521-1.c b/gcc/testsuite/gcc.c-torture/execute/960521-1.c new file mode 100644 index 000000000..9fc582149 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/960521-1.c @@ -0,0 +1,30 @@ +#include <stdlib.h> + +int *a, *b; +int n; + +#ifdef STACK_SIZE +#define BLOCK_SIZE (STACK_SIZE / (sizeof (*a) + sizeof (*b))) +#else +#define BLOCK_SIZE 32768 +#endif +foo () +{ + int i; + for (i = 0; i < n; i++) + a[i] = -1; + for (i = 0; i < BLOCK_SIZE - 1; i++) + b[i] = -1; +} + +main () +{ + n = BLOCK_SIZE; + a = malloc (n * sizeof(*a)); + b = malloc (n * sizeof(*b)); + *b++ = 0; + foo (); + if (b[-1]) + abort (); + exit (0); +} |