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: Richard Biener <rguenther at suse dot de>
- To: Marek Polacek <polacek at redhat dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Fri, 12 Dec 2014 14:50:06 +0100 (CET)
- Subject: Re: [PATCH] Fix TYPE_OVERFLOW_* cleanup fallout
- Authentication-results: sourceware.org; auth=none
- References: <20141212134807 dot GX16332 at redhat dot com>
On Fri, 12 Dec 2014, 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?
Ok.
THanks,
Richard.
> 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
>
>
--
Richard Biener <rguenther@suse.de>
SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Jennifer Guild,
Dilip Upmanyu, Graham Norton HRB 21284 (AG Nuernberg)