aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@gcc.gnu.org>2009-11-13 19:38:36 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2009-11-13 19:38:36 +0100
commit2b32c27d98a24ef789729ded2e0c42108a9ea9e9 (patch)
treee4798597eb4798afea5b65f01b820229bfd13985 /gcc
parent8410737add10f9f2b70616986a6a173c312b732e (diff)
downloadgcc-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/ChangeLog10
-rw-r--r--gcc/gimplify.c2
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;