This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix ICE in fold-const.c
On May 30, 2004, at 12:10, Joseph S. Myers wrote:
On Sun, 16 May 2004, Andrew Pinski wrote:
ChangeLog:
* fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
of BOOLEAN_TYPE.
What is the current status of this patch?
I had forgot to apply the approved patch, woops.
Here is what I applied.
ChangeLog:
* fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
of BOOLEAN_TYPE.
Patch:
Index: fold-const.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/fold-const.c,v
retrieving revision 1.383
diff -u -p -r1.383 fold-const.c
--- fold-const.c 28 May 2004 16:37:00 -0000 1.383
+++ fold-const.c 30 May 2004 16:16:50 -0000
@@ -7215,6 +7215,10 @@ fold (tree expr)
goto associate;
case TRUTH_NOT_EXPR:
+ /* The argument to invert_truthvalue must have Boolean type. */
+ if (TREE_CODE (TREE_TYPE (arg0)) != BOOLEAN_TYPE)
+ arg0 = fold_convert (boolean_type_node, arg0);
+
/* Note that the operand of this must be an int
and its values must be 0 or 1.
("true" is a fixed value perhaps depending on the language,