From: Richard Kenner Date: Mon, 21 Oct 1996 23:11:08 +0000 (-0400) Subject: (store_expr): Disable optimization of using convert if exp's type is a X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ab6c58f120a7cfb52a7e2b9fe8427715f0340574;p=gcc.git (store_expr): Disable optimization of using convert if exp's type is a subtype. From-SVN: r12992 --- diff --git a/gcc/expr.c b/gcc/expr.c index 0cee6f78057..e06d3b187eb 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -3125,8 +3125,11 @@ store_expr (exp, target, want_value) /* If we don't want a value, we can do the conversion inside EXP, which will often result in some optimizations. Do the conversion in two steps: first change the signedness, if needed, then - the extend. */ - if (! want_value) + the extend. But don't do this if the type of EXP is a subtype + of something else since then the conversion might involve + more than just converting modes. */ + if (! want_value && INTEGRAL_TYPE_P (TREE_TYPE (exp)) + && TREE_TYPE (TREE_TYPE (exp)) == 0) { if (TREE_UNSIGNED (TREE_TYPE (exp)) != SUBREG_PROMOTED_UNSIGNED_P (target))