This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/36362] [4.1/4.2/4.3/4.4 Regression] ICE in simplify_subreg
- From: "jakub at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 29 May 2008 12:33:58 -0000
- Subject: [Bug target/36362] [4.1/4.2/4.3/4.4 Regression] ICE in simplify_subreg
- References: <bug-36362-87@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #6 from jakub at gcc dot gnu dot org 2008-05-29 12:33 -------
Regtesting:
2008-05-29 Jakub Jelinek <jakub@redhat.com>
Richard Guenther <rguenther@suse.de>
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