| /* { dg-add-options stack_size } */ | |
| #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); | |
| } |