/* { dg-do run } */
/* { dg-options "" } */
/* Verify that the cleanup handler receives the proper contents
   of the variable.  */

extern void exit(int);
extern 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;
}
