1ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
2ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown/* Demonstrate Memcheck correctly handling a 64M array on the stack.
3ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   Requires --max-stackframe=67108884 or above.  And since it
4ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   generates a very large stack, --main-stacksize=67200000
5ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   (approximately) is also required. */
6ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
7ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#include <stdio.h>
8ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
9ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#define N_MBYTES 64
10ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
11ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#define N_INTS ((N_MBYTES * 1048576) / sizeof(int))
12ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
13ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
14ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownint main ( void )
15ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
16ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   int i, sum;
17ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   int arr[N_INTS];
18ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   fprintf(stderr, "lsframe1: start\n");
19ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   for (i = 0; i < N_INTS; i++)
20ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      arr[i] = i;
21ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   sum = 0;
22ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   for (i = 0; i < N_INTS; i++)
23ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      sum += arr[i];
24ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   fprintf(stderr, "lsframe1: done, result is %d\n", sum);
25ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   return 0;
26ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
27