diff options
author | Jakub Jelinek <jakub@redhat.com> | 2008-07-19 21:22:51 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2008-07-19 21:22:51 +0200 |
commit | a7ea9e2968dd6dc207e554ce89b16c291f4120a1 (patch) | |
tree | ecfdf4122243551f09e7f5be9e301d91d6fb73d3 /gcc | |
parent | 5e2be41f37d39b91e27c4d129a5861cfe80809ec (diff) | |
download | gcc-a7ea9e2968dd6dc207e554ce89b16c291f4120a1.zip gcc-a7ea9e2968dd6dc207e554ce89b16c291f4120a1.tar.gz gcc-a7ea9e2968dd6dc207e554ce89b16c291f4120a1.tar.bz2 |
re PR middle-end/36877 (-O0 -fopenmp -march=i386 atomics)
PR middle-end/36877
* omp-low.c (expand_omp_atomic_fetch_op): Make sure the
return value of the builtin is ignored.
* gcc.dg/gomp/atomic-11.c: New test.
From-SVN: r137989
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/omp-low.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/gomp/atomic-11.c | 17 |
4 files changed, 29 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 392ba58..701b25f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2008-07-19 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/36877 + * omp-low.c (expand_omp_atomic_fetch_op): Make sure the + return value of the builtin is ignored. + 2008-07-19 Olivier Hainque <hainque@adacore.com> * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in diff --git a/gcc/omp-low.c b/gcc/omp-low.c index 2f9aede..8ee717a 100644 --- a/gcc/omp-low.c +++ b/gcc/omp-low.c @@ -4742,6 +4742,7 @@ expand_omp_atomic_fetch_op (basic_block load_bb, bsi = bsi_last (load_bb); gcc_assert (TREE_CODE (bsi_stmt (bsi)) == OMP_ATOMIC_LOAD); call = build_call_expr (decl, 2, addr, fold_convert (itype, rhs)); + call = fold_convert (void_type_node, call); force_gimple_operand_bsi (&bsi, call, true, NULL_TREE, true, BSI_SAME_STMT); bsi_remove (&bsi, true); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 6ac4232..1114de1 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2008-07-19 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/36877 + * gcc.dg/gomp/atomic-11.c: New test. + 2008-07-19 Tobias Burnus <burnus@net-b.de> PR fortran/36795 diff --git a/gcc/testsuite/gcc.dg/gomp/atomic-11.c b/gcc/testsuite/gcc.dg/gomp/atomic-11.c new file mode 100644 index 0000000..397972b --- /dev/null +++ b/gcc/testsuite/gcc.dg/gomp/atomic-11.c @@ -0,0 +1,17 @@ +/* PR middle-end/36877 */ +/* { dg-do compile } */ +/* { dg-options "-fopenmp" } */ +/* { dg-options "-fopenmp -march=i386" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */ + +int i; +float f; + +void foo (void) +{ +#pragma omp atomic + i++; +#pragma omp atomic + f += 1.0; +} + +/* { dg-final { scan-assembler-not "__sync_(fetch|add|bool|val)" { target i?86-*-* x86_64-*-* powerpc*-*-* ia64-*-* s390*-*-* sparc*-*-* } } } */ |