tree-ssa-math-opts.c (convert_mult_to_widen): Check actual precision against gimple...
authorRichard Guenther <rguenther@suse.de>
Wed, 7 Mar 2012 09:24:40 +0000 (09:24 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Wed, 7 Mar 2012 09:24:40 +0000 (09:24 +0000)
2012-03-07  Richard Guenther  <rguenther@suse.de>

* tree-ssa-math-opts.c (convert_mult_to_widen): Check actual
precision against gimple constraints.

From-SVN: r185026

gcc/ChangeLog
gcc/tree-ssa-math-opts.c

index 3fa5e51..c98c983 100644 (file)
@@ -1,3 +1,8 @@
+2012-03-07  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-math-opts.c (convert_mult_to_widen): Check actual
+       precision against gimple constraints.
+
 2012-03-06  Richard Sandiford  <rdsandiford@googlemail.com>
 
        PR middle-end/52372
index a00541f..ab982f5 100644 (file)
@@ -2158,6 +2158,8 @@ convert_mult_to_widen (gimple stmt, gimple_stmt_iterator *gsi)
   /* Ensure that the inputs to the handler are in the correct precison
      for the opcode.  This will be the full mode size.  */
   actual_precision = GET_MODE_PRECISION (actual_mode);
+  if (2 * actual_precision > TYPE_PRECISION (type))
+    return false;
   if (actual_precision != TYPE_PRECISION (type1)
       || from_unsigned1 != TYPE_UNSIGNED (type1))
     {