/* { dg-do run } */
/* { dg-require-effective-target sync_char_short } */
/* { dg-options "-mcpu=v9" { target sparc*-*-* } } */

/* This testcase failed on s390 because no compare instruction for
   the check of FLAG was emitted.  */

unsigned short int count = 0;
int flag = 1;

extern void abort (void);
extern void exit (int);

int
main ()
{
  __sync_add_and_fetch (&count, -1);

  if (!flag)
    abort ();
  exit (0);
}
