OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.2.2/] [gcc/] [testsuite/] [gcc.c-torture/] [execute/] [nestfunc-4.c] - Diff between revs 149 and 154

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 149 Rev 154
/* Origin: hp@bitrange.com
/* Origin: hp@bitrange.com
   Test that return values come out right from a 1000-level call chain to
   Test that return values come out right from a 1000-level call chain to
   functions without parameters that each need at least one "long"
   functions without parameters that each need at least one "long"
   preserved.  Exposed problems related to the MMIX port.  */
   preserved.  Exposed problems related to the MMIX port.  */
 
 
long level = 0;
long level = 0;
extern long foo (void);
extern long foo (void);
extern long bar (void);
extern long bar (void);
 
 
#ifdef STACK_SIZE
#ifdef STACK_SIZE
#define DEPTH ((STACK_SIZE) / 512 + 1)
#define DEPTH ((STACK_SIZE) / 512 + 1)
#else
#else
#define DEPTH 500
#define DEPTH 500
#endif
#endif
 
 
int
int
main (void)
main (void)
{
{
  if (foo () == -42)
  if (foo () == -42)
    exit (0);
    exit (0);
 
 
  abort ();
  abort ();
}
}
 
 
long
long
foo (void)
foo (void)
{
{
  long tmp = ++level;
  long tmp = ++level;
  return bar () + tmp;
  return bar () + tmp;
}
}
 
 
long
long
bar (void)
bar (void)
{
{
  long tmp = level;
  long tmp = level;
  return tmp > DEPTH - 1 ? -42 - tmp : foo () - tmp;
  return tmp > DEPTH - 1 ? -42 - tmp : foo () - tmp;
}
}
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.