#include <stdlib.h>
#include <openacc.h>

float b;
#pragma acc declare create (b)

#pragma acc routine
int
func (int a)
{
  b = a + 1;

  return b;
}

int
main (int argc, char **argv)
{
  float a;

  a = 2.0;

#pragma acc parallel copy (a)
  {
    b = a;
    a = 1.0;
    a = a + b;
  }

  if (a != 3.0)
    abort ();

  a = func (a);

  if (a != 4.0)
    abort ();

  return 0;
}
