This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix TYPE_OVERFLOW_* cleanup fallout
- From: Kyrill Tkachov <kyrylo dot tkachov at arm dot com>
- To: Marek Polacek <polacek at redhat dot com>, Richard Biener <rguenther at suse dot de>, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Fri, 12 Dec 2014 13:57:53 +0000
- Subject: Re: [PATCH] Fix TYPE_OVERFLOW_* cleanup fallout
- Authentication-results: sourceware.org; auth=none
- References: <20141212134807 dot GX16332 at redhat dot com>
On 12/12/14 13:48, Marek Polacek wrote:
On ARM we ICE on fixed-point-exec.c testcase because TYPE_OVERFLOW_WRAPS
was missing the ANY_INTEGRAL_TYPE_P check.
Bootstrapped/regtested on x86_64-linux and ppc64-linux, ok for trunk?
Also arm-none-linux-gnueabihf bootstrap is in late stage3 and looks fine.
Thanks,
Kyril
2014-12-12 Marek Polacek <polacek@redhat.com>
PR middle-end/64274
* fold-const.c (fold_binary_loc): Add ANY_INTEGRAL_TYPE_P check.
diff --git gcc/fold-const.c gcc/fold-const.c
index ec5ad98..d71fa94 100644
--- gcc/fold-const.c
+++ gcc/fold-const.c
@@ -10082,7 +10082,8 @@ fold_binary_loc (location_t loc,
/* Reassociate (plus (plus (mult) (foo)) (mult)) as
(plus (plus (mult) (mult)) (foo)) so that we can
take advantage of the factoring cases below. */
- if (TYPE_OVERFLOW_WRAPS (type)
+ if (ANY_INTEGRAL_TYPE_P (type)
+ && TYPE_OVERFLOW_WRAPS (type)
&& (((TREE_CODE (arg0) == PLUS_EXPR
|| TREE_CODE (arg0) == MINUS_EXPR)
&& TREE_CODE (arg1) == MULT_EXPR)
Marek