1 /* { dg-add-options stack_size } */ 2 3 #include <stdlib.h> 4 5 int *a, *b; 6 int n; 7 8 #ifdef STACK_SIZE 9 #define BLOCK_SIZE (STACK_SIZE / (sizeof (*a) + sizeof (*b))) 10 #else 11 #define BLOCK_SIZE 32768 12 #endif foo()13foo () 14 { 15 int i; 16 for (i = 0; i < n; i++) 17 a[i] = -1; 18 for (i = 0; i < BLOCK_SIZE - 1; i++) 19 b[i] = -1; 20 } 21 main()22main () 23 { 24 n = BLOCK_SIZE; 25 a = malloc (n * sizeof(*a)); 26 b = malloc (n * sizeof(*b)); 27 *b++ = 0; 28 foo (); 29 if (b[-1]) 30 abort (); 31 exit (0); 32 } 33