aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2019-04-25 17:58:56 +0000
committerJakub Jelinek <jakub@gcc.gnu.org>2019-04-25 19:58:56 +0200
commitf47f687a97260b1a1305cbf2d7ee3d74b2916a74 (patch)
tree2f310f73025785c6f8395a5f5ab77342dd269fec
parent604ab090adf9c3acf9387627a477dd6b9f07a640 (diff)
re PR middle-end/89765 (Multiple problems with vec-insert implementation on PowerPC)
PR middle-end/89765 * gimplify.c (gimplify_expr): Avoid turning a lvalue VIEW_CONVERT_EXPR into one operating on an rvalue. From-SVN: r270579
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/gimplify.c3
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 80f974897e7..0682a44cd4a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2019-04-25 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/89765
+ * gimplify.c (gimplify_expr): Avoid turning a lvalue
+ VIEW_CONVERT_EXPR into one operating on an rvalue.
+
2019-04-25 H.J. Lu <hongjiu.lu@intel.com>
PR target/89929
diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index 6ac1b718ebd..e59f38261c3 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -12397,7 +12397,8 @@ gimplify_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p,
break;
case VIEW_CONVERT_EXPR:
- if (is_gimple_reg_type (TREE_TYPE (*expr_p))
+ if ((fallback & fb_rvalue)
+ && is_gimple_reg_type (TREE_TYPE (*expr_p))
&& is_gimple_reg_type (TREE_TYPE (TREE_OPERAND (*expr_p, 0))))
{
ret = gimplify_expr (&TREE_OPERAND (*expr_p, 0), pre_p,