From f47f687a97260b1a1305cbf2d7ee3d74b2916a74 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Thu, 25 Apr 2019 17:58:56 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 6 ++++++ gcc/gimplify.c | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) 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 + + 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 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, -- 2.30.2