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