/* { dg-additional-options "-fdump-tree-gimple" } */ /* { dg-final { scan-tree-dump "foo \\(6\\);\[\n\r]* __sync_synchronize \\(\\);\[\n\r]* foo \\(6\\);" "gimple" } } */ /* { dg-final { scan-tree-dump "foo \\(4\\);\[\n\r]* __atomic_thread_fence \\(4\\);\[\n\r]* foo \\(4\\);" "gimple" } } */ /* { dg-final { scan-tree-dump "foo \\(3\\);\[\n\r]* __atomic_thread_fence \\(3\\);\[\n\r]* foo \\(3\\);" "gimple" } } */ /* { dg-final { scan-tree-dump "foo \\(2\\);\[\n\r]* __atomic_thread_fence \\(2\\);\[\n\r]* foo \\(2\\);" "gimple" } } */ /* { dg-final { scan-tree-dump "foo \\(5\\);\[\n\r]* __sync_synchronize \\(\\);\[\n\r]* foo \\(5\\);" "gimple" } } */ void foo (int); void f1 (void) { foo (4); #pragma omp flush acq_rel foo (4); } void f2 (void) { foo (3); #pragma omp flush release foo (3); } void f3 (void) { foo (2); #pragma omp flush acquire foo (2); } void f4 (void) { foo (5); #pragma omp flush foo (5); } void f5 (void) { foo (6); #pragma omp flush seq_cst foo (6); }