re PR middle-end/35163 (folding comparison loses cast)
2008-02-12 Richard Guenther <rguenther@suse.de> PR middle-end/35163 * fold-const.c (fold_widened_comparison): Use get_unwidened in value-preserving mode. Disallow final truncation. * gcc.c-torture/execute/pr35163.c: New testcase. From-SVN: r132269
This commit is contained in:
parent
d2a18787b7
commit
8f768a5a18
|
@ -1,3 +1,9 @@
|
|||
2008-02-12 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR middle-end/35163
|
||||
* fold-const.c (fold_widened_comparison): Use get_unwidened in
|
||||
value-preserving mode. Disallow final truncation.
|
||||
|
||||
2008-02-12 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
PR middle-end/35136
|
||||
|
|
|
@ -7045,12 +7045,14 @@ fold_widened_comparison (enum tree_code code, tree type, tree arg0, tree arg1)
|
|||
if (TYPE_PRECISION (TREE_TYPE (arg0)) <= TYPE_PRECISION (shorter_type))
|
||||
return NULL_TREE;
|
||||
|
||||
arg1_unw = get_unwidened (arg1, shorter_type);
|
||||
arg1_unw = get_unwidened (arg1, NULL_TREE);
|
||||
|
||||
/* If possible, express the comparison in the shorter mode. */
|
||||
if ((code == EQ_EXPR || code == NE_EXPR
|
||||
|| TYPE_UNSIGNED (TREE_TYPE (arg0)) == TYPE_UNSIGNED (shorter_type))
|
||||
&& (TREE_TYPE (arg1_unw) == shorter_type
|
||||
|| (TYPE_PRECISION (shorter_type)
|
||||
>= TYPE_PRECISION (TREE_TYPE (arg1_unw)))
|
||||
|| (TREE_CODE (arg1_unw) == INTEGER_CST
|
||||
&& (TREE_CODE (shorter_type) == INTEGER_TYPE
|
||||
|| TREE_CODE (shorter_type) == BOOLEAN_TYPE)
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2008-02-12 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR middle-end/35163
|
||||
* gcc.c-torture/execute/pr35163.c: New testcase.
|
||||
|
||||
2008-02-12 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
* gcc.target/i386/asm-3.c: Fix dg-skip-if for all 32bit PIC targets.
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
extern void abort(void);
|
||||
|
||||
int main()
|
||||
{
|
||||
signed char a = -30;
|
||||
signed char b = -31;
|
||||
if (a > (unsigned short)b)
|
||||
abort ();
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue