| /* { 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; | |
| } |