OSDN Git Service

Redefine STACK_BOUNDARY/PREFERRED_STACK_BOUNDARY for Darwin/x86.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / stack-usage-1.c
1 /* { dg-do compile } */
2 /* { dg-options "-fstack-usage" } */
3
4 /* This is aimed at testing basic support for -fstack-usage in the back-ends.
5    See the SPARC back-end for an example (grep flag_stack_usage in sparc.c).
6    Once it is implemented, adjust SIZE below so that the stack usage for the
7    function FOO is reported as 256 or 264 in the stack usage (.su) file.
8    Then check that this is the actual stack usage in the assembly file.  */
9
10 #if defined(__i386__)
11 #  define SIZE 248
12 #elif defined(__x86_64__)
13 #  define SIZE 356
14 #elif defined (__sparc__)
15 #  if defined (__arch64__)
16 #    define SIZE 76
17 #  else
18 #    define SIZE 160
19 #  endif
20 #elif defined(__hppa__)
21 #  define SIZE 192
22 #elif defined (__alpha__)
23 #  define SIZE 240
24 #elif defined (__ia64__)
25 #  define SIZE 272
26 #elif defined(__mips__)
27 #  define SIZE 240
28 #elif defined (__powerpc__) || defined (__PPC__) || defined (__ppc__) \
29       || defined (__POWERPC__) || defined (PPC) || defined (_IBMR2)
30 #  define SIZE 240
31 #else
32 #  define SIZE 256
33 #endif
34
35 int foo (void)
36 {
37   char arr[SIZE];
38   arr[0] = 1;
39   return 0;
40 }
41
42 /* { dg-final { scan-stack-usage "foo\t\(256|264\)\tstatic" } } */
43 /* { dg-final { cleanup-stack-usage } } */