------- Comment #6 from jakub at gcc dot gnu dot org 2008-05-29 12:33 ------- Regtesting: 2008-05-29 Jakub Jelinek <[EMAIL PROTECTED]> Richard Guenther <[EMAIL PROTECTED]>
PR target/36362 * gimplify.c (gimplify_expr): Convert gimple_boolify result to TRUTH_NOT_EXPR's type. * gcc.c-torture/execute/20080529-1.c: New test. --- gcc/gimplify.c.jj 2008-05-18 22:14:23.000000000 +0200 +++ gcc/gimplify.c 2008-05-29 14:24:38.000000000 +0200 @@ -5748,7 +5748,8 @@ gimplify_expr (tree *expr_p, tree *pre_p case TRUTH_NOT_EXPR: TREE_OPERAND (*expr_p, 0) - = gimple_boolify (TREE_OPERAND (*expr_p, 0)); + = fold_convert (TREE_TYPE (*expr_p), + gimple_boolify (TREE_OPERAND (*expr_p, 0))); ret = gimplify_expr (&TREE_OPERAND (*expr_p, 0), pre_p, post_p, is_gimple_val, fb_rvalue); recalculate_side_effects (*expr_p); --- gcc/testsuite/gcc.c-torture/execute/20080529-1.c.jj 2008-05-29 14:29:42.000000000 +0200 +++ gcc/testsuite/gcc.c-torture/execute/20080529-1.c 2008-05-29 14:29:19.000000000 +0200 @@ -0,0 +1,17 @@ +/* PR target/36362 */ + +extern void abort (void); + +int +test (float c) +{ + return !!c * 7LL == 0; +} + +int +main (void) +{ + if (test (1.0f) != 0) + abort (); + return 0; +} -- jakub at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at gcc dot gnu |jakub at gcc dot gnu dot org |dot org | Status|NEW |ASSIGNED Last reconfirmed|2008-05-29 08:46:59 |2008-05-29 12:33:58 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36362