diff options
author | Jakub Jelinek <jakub@gcc.gnu.org> | 2009-11-13 19:38:36 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2009-11-13 19:38:36 +0100 |
commit | 2b32c27d98a24ef789729ded2e0c42108a9ea9e9 (patch) | |
tree | e4798597eb4798afea5b65f01b820229bfd13985 /gcc | |
parent | 8410737add10f9f2b70616986a6a173c312b732e (diff) | |
download | gcc-2b32c27d98a24ef789729ded2e0c42108a9ea9e9.zip gcc-2b32c27d98a24ef789729ded2e0c42108a9ea9e9.tar.gz gcc-2b32c27d98a24ef789729ded2e0c42108a9ea9e9.tar.bz2 |
re PR middle-end/42029 (ICE with complex data type and openmp for reduction clause)
PR middle-end/42029
* gimplify.c (gimplify_omp_atomic): Set DECL_GIMPLE_REG_P on
tmp_load if needed.
* libgomp.c/pr42029.c: New test.
From-SVN: r154161
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/gimplify.c | 2 |
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bb92e10..e5dec6f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,8 +1,14 @@ +2009-11-13 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/42029 + * gimplify.c (gimplify_omp_atomic): Set DECL_GIMPLE_REG_P on + tmp_load if needed. + 2009-11-13 Uros Bizjak <ubizjak@gmail.com> PR target/41900 - (*call_pop_1, *call_1, *call_value_pop_1, *call_value_1): Use "lsm" - as operand 1 constraint. + * config/i386/i386.md (*call_pop_1, *call_1, *call_value_pop_1, + *call_value_1): Use "lsm" as operand 1 constraint. * config/i386/predicates.md (call_insn_operand): Depend on index_register_operand to avoid %esp register. diff --git a/gcc/gimplify.c b/gcc/gimplify.c index d68aacd..8404e0f 100644 --- a/gcc/gimplify.c +++ b/gcc/gimplify.c @@ -6231,6 +6231,8 @@ gimplify_omp_atomic (tree *expr_p, gimple_seq *pre_p) tree tmp_load; tmp_load = create_tmp_var (type, NULL); + if (TREE_CODE (type) == COMPLEX_TYPE || TREE_CODE (type) == VECTOR_TYPE) + DECL_GIMPLE_REG_P (tmp_load) = 1; if (goa_stabilize_expr (&rhs, pre_p, addr, tmp_load) < 0) return GS_ERROR; |