URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [g++.dg/] [ext/] [cleanup-3.C] - Rev 801
Go to most recent revision | Compare with Previous | Blame | View Log
/* { dg-do run } */
/* { dg-options "" } */
/* Verify that the cleanup handler receives the proper contents
of the variable. */
extern "C" void exit(int);
extern "C" void abort(void);
static int expected;
static void
handler(int *p)
{
if (*p != expected)
abort ();
}
static void __attribute__((noinline))
bar(void)
{
}
static void doit(int x, int y)
{
int r __attribute__((cleanup (handler)));
if (x < y)
{
r = 0;
return;
}
bar();
r = x + y;
}
int main()
{
expected = 0;
doit (1, 2);
expected = 3;
doit (2, 1);
return 0;
}
Go to most recent revision | Compare with Previous | Blame | View Log