PR middle-end/31710
* tree.c (build_distinct_type_copy): If TYPE_MIN_VALUE or
TYPE_MAX_VALUE exist, convert them to the new type.
testsuite/:
PR middle-end/31710
* gcc.c-torture/compile/pr31710.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@124237
138bc75d-0d04-0410-961f-
82ee72b054a4
+2007-04-27 Ian Lance Taylor <iant@google.com>
+
+ PR middle-end/31710
+ * tree.c (build_distinct_type_copy): If TYPE_MIN_VALUE or
+ TYPE_MAX_VALUE exist, convert them to the new type.
+
2007-04-27 Zdenek Dvorak <dvorakz@suse.cz>
* tree-cfgcleanup.c (cleanup_tree_cfg): Verify dominance info
+2007-04-27 Ian Lance Taylor <iant@google.com>
+
+ PR middle-end/31710
+ * gcc.c-torture/compile/pr31710.c: New test.
+
2007-04-27 Richard Guenther <rguenther@suse.de>
PR tree-optimization/30965
--- /dev/null
+typedef short SHORT;
+struct v { SHORT i; };
+void f(struct v *pin, struct v *pout) {
+ if (pin->i == (-0x7fff)-1)
+ pout->i = -pin->i;
+}
TYPE_MAIN_VARIANT (t) = t;
TYPE_NEXT_VARIANT (t) = 0;
+ /* VRP assumes that TREE_TYPE (TYPE_MIN_VALUE (type)) == type. */
+ if (INTEGRAL_TYPE_P (t) || SCALAR_FLOAT_TYPE_P (t))
+ {
+ if (TYPE_MIN_VALUE (t) != NULL_TREE)
+ TYPE_MIN_VALUE (t) = fold_convert (t, TYPE_MIN_VALUE (t));
+ if (TYPE_MAX_VALUE (t) != NULL_TREE)
+ TYPE_MAX_VALUE (t) = fold_convert (t, TYPE_MAX_VALUE (t));
+ }
+
return t;
}