aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.target/arm/sync-1.c
blob: d1b6481051810d693cf883db0e16a0de65b5aa0f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

/* { dg-do run { target sync_int_long } } */
/* { dg-options "-O2" } */

volatile int mem;

int
bar (int x, int y)
{
  if (x)
    __sync_fetch_and_add(&mem, y);
  return 0;
}

extern void abort (void);

int
main (int argc, char *argv[])
{
  mem = 0;
  bar (0, 1);
  bar (1, 1);
  if (mem != 1)
    abort ();
  return 0;
}