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

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [gcc/] [testsuite/] [gcc.dg/] [tree-prof/] [pr34999.c] - Rev 338

Compare with Previous | Blame | View Log

/* Same test as built-in-setjmp.c.  Includes the case where
   the source block of a crossing fallthru edge ends with a call.  */
/* { dg-require-effective-target freorder } */
/* { dg-options "-O2 -freorder-blocks-and-partition" } */
 
extern int strcmp(const char *, const char *);
extern char *strcpy(char *, const char *);
extern void abort(void);
extern void exit(int);
 
void *buf[20];
 
void __attribute__((noinline))
sub2 (void)
{
  __builtin_longjmp (buf, 1);
}
 
int
main ()
{
  char *p = (char *) __builtin_alloca (20);
 
  strcpy (p, "test");
 
  if (__builtin_setjmp (buf))
    {
      if (strcmp (p, "test") != 0)
	abort ();
 
      exit (0);
    }
 
  {
    int *q = (int *) __builtin_alloca (p[2] * sizeof (int));
    int i;
 
    for (i = 0; i < p[2]; i++)
      q[i] = 0;
 
    while (1)
      sub2 ();
  }
}
 
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

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