This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix TYPE_OVERFLOW_* cleanup fallout



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




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]