/* { dg-do compile } */
/* { dg-options "-fstack-usage" } */
/* nvptx doesn't have a reg allocator, and hence no stack usage data.  */
/* { dg-skip-if "" { nvptx-*-* } } */

/* This is aimed at testing basic support for -fstack-usage in the back-ends.
   See the SPARC back-end for example (grep flag_stack_usage_info in sparc.c).
   Once it is implemented, adjust SIZE below so that the stack usage for the
   function FOO is reported as 256 or 264 in the stack usage (.su) file.
   Then check that this is the actual stack usage in the assembly file.  */

#if defined(__aarch64__)
#  define SIZE 256 /* No frame pointer for leaf functions (default) */
#elif defined(__arc__)
#  define SIZE (256-4)
#elif defined(__i386__)
#  define SIZE 248
#elif defined(__x86_64__)
#  ifndef _WIN64
#    define SIZE 356
#  else
#    define SIZE (256 - 24)
#  endif
#elif defined (__sparc__)
#  if defined (__arch64__)
#    define SIZE 76
#  else
#    define SIZE 160
#  endif
#elif defined(__hppa__)
#  define SIZE 192
#elif defined (__alpha__)
#  define SIZE 240
#elif defined (__ia64__)
#  define SIZE 272
#elif defined(__mips__)
#  if defined (__mips_abicalls) \
      || (defined _MIPS_SIM && (_MIPS_SIM ==_ABIN32 || _MIPS_SIM==_ABI64))
#    define SIZE 240
#  else
#    define SIZE 248
#  endif
#elif defined (__nds32__)
#  define SIZE 248 /* 256 - 8 bytes, only $fp and padding bytes are saved in
                      the register save area under O0 optimization level.  */
#elif defined (__powerpc64__) || defined (__ppc64__) || defined (__POWERPC64__) \
      || defined (__PPC64__)
#  if _CALL_ELF == 2
#     define SIZE 208
#  else
#     define SIZE 180
#  endif
#elif defined (__powerpc__) || defined (__PPC__) || defined (__ppc__) \
      || defined (__POWERPC__) || defined (PPC) || defined (_IBMR2)
#  if defined (__ALTIVEC__)
#    if defined (__APPLE__)
#      define SIZE 204
#    else
#      define SIZE 220
#    endif
#  elif defined (_AIX)
#    define SIZE 208
#  else
#    define SIZE 240
#  endif
#elif defined (__riscv)
#  if defined (__riscv_32e)
#    define SIZE 252
#  else
#    define SIZE 240
#  endif
#elif defined (__AVR__)
#if defined (__AVR_3_BYTE_PC__ )
#  define SIZE 251 /* 256 - 2 bytes for Y - 3 bytes for return address */
#else
#  define SIZE 252 /* 256 - 2 bytes for Y - 2 bytes for return address */
#endif
#elif defined (__s390x__)
#  define SIZE 96  /* 256 - 160 bytes for register save area */
#elif defined (__s390__)
#  define SIZE 160 /* 256 -  96 bytes for register save area */
#elif defined (__epiphany__)
#  define SIZE (256 - __EPIPHANY_STACK_OFFSET__)
#elif defined (__RL78__)
#  define SIZE 254
#elif defined (__sh__)
#  define SIZE 252
#elif defined (__frv__)
#  define SIZE 248
#elif defined (xstormy16)
#  define SIZE 254
#elif defined (__nios2__)
#  define SIZE 252
#elif defined (__PRU__)
#  define SIZE 252
#elif defined (__v850__)
#define SIZE 260
#elif defined (__mn10300__)
#define SIZE 252
#elif defined (__H8300SX__) || defined (__H8300S__) || defined (__H8300H__) || defined (__H8300__) 
#define SIZE 252
#elif defined (__M32R__)
#define SIZE 252
#elif defined (__csky__)
#  define SIZE 252
#elif defined (__CRIS__)
#  define SIZE 252
#else
#  define SIZE 256
#endif

int foo (void)
{
  char arr[SIZE];
  arr[0] = 1;
  return 0;
}

/* { dg-final { scan-stack-usage "foo\t\(256|264\)\tstatic" } } */
/* { dg-final { cleanup-stack-usage } } */
