diff options
author | Jakub Jelinek <jakub@redhat.com> | 2014-01-15 09:03:53 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2014-01-15 09:03:53 +0100 |
commit | 241f845ab3717714234437e28bbaf2b1cc5f4426 (patch) | |
tree | cc04f22cb2a16aa9af9055fefe1388107a5c0f7b /gcc/builtins.c | |
parent | eb6eb8623701589015d966a71970c1893a92884c (diff) | |
download | gcc-241f845ab3717714234437e28bbaf2b1cc5f4426.zip gcc-241f845ab3717714234437e28bbaf2b1cc5f4426.tar.gz gcc-241f845ab3717714234437e28bbaf2b1cc5f4426.tar.bz2 |
re PR c/58943 (wrong calculation of indirect structure member arithmetic via function call)
PR c/58943
* c-typeck.c (build_modify_expr): For lhs op= rhs, if rhs has side
effects, preevaluate rhs using SAVE_EXPR first.
* c-omp.c (c_finish_omp_atomic): Set in_late_binary_op around
build_modify_expr with non-NOP_EXPR opcode. Handle return from it
being COMPOUND_EXPR.
(c_finish_omp_for): Handle incr being COMPOUND_EXPR with first
operand a SAVE_EXPR and second MODIFY_EXPR.
* gcc.c-torture/execute/pr58943.c: New test.
* gcc.dg/tree-ssa/ssa-fre-33.c (main): Avoid using += in the test.
From-SVN: r206620
Diffstat (limited to 'gcc/builtins.c')
0 files changed, 0 insertions, 0 deletions