17069886be4aee3190670a525df85daa545c58f96sewardj
27069886be4aee3190670a525df85daa545c58f96sewardj/* Demonstrate Memcheck correctly handling a 64M array on the stack.
37069886be4aee3190670a525df85daa545c58f96sewardj   Requires --max-stackframe=67108884 or above.  And since it
47069886be4aee3190670a525df85daa545c58f96sewardj   generates a very large stack, --main-stacksize=67200000
57069886be4aee3190670a525df85daa545c58f96sewardj   (approximately) is also required. */
67069886be4aee3190670a525df85daa545c58f96sewardj
77069886be4aee3190670a525df85daa545c58f96sewardj#include <stdio.h>
87069886be4aee3190670a525df85daa545c58f96sewardj
97069886be4aee3190670a525df85daa545c58f96sewardj#define N_MBYTES 64
107069886be4aee3190670a525df85daa545c58f96sewardj
117069886be4aee3190670a525df85daa545c58f96sewardj#define N_INTS ((N_MBYTES * 1048576) / sizeof(int))
127069886be4aee3190670a525df85daa545c58f96sewardj
137069886be4aee3190670a525df85daa545c58f96sewardj
147069886be4aee3190670a525df85daa545c58f96sewardjint main ( void )
157069886be4aee3190670a525df85daa545c58f96sewardj{
167069886be4aee3190670a525df85daa545c58f96sewardj   int i, sum;
177069886be4aee3190670a525df85daa545c58f96sewardj   int arr[N_INTS];
187069886be4aee3190670a525df85daa545c58f96sewardj   fprintf(stderr, "lsframe1: start\n");
197069886be4aee3190670a525df85daa545c58f96sewardj   for (i = 0; i < N_INTS; i++)
207069886be4aee3190670a525df85daa545c58f96sewardj      arr[i] = i;
217069886be4aee3190670a525df85daa545c58f96sewardj   sum = 0;
227069886be4aee3190670a525df85daa545c58f96sewardj   for (i = 0; i < N_INTS; i++)
237069886be4aee3190670a525df85daa545c58f96sewardj      sum += arr[i];
247069886be4aee3190670a525df85daa545c58f96sewardj   fprintf(stderr, "lsframe1: done, result is %d\n", sum);
257069886be4aee3190670a525df85daa545c58f96sewardj   return 0;
267069886be4aee3190670a525df85daa545c58f96sewardj}
27