This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [tree-ssa] bootstrap problem on powerpc-apple-darwin6.6
- From: Andrew Pinski <pinskia at physics dot uc dot edu>
- To: Jason Merrill <jason at redhat dot com>
- Cc: Andrew Pinski <pinskia at physics dot uc dot edu>, Daniel Berlin <dberlin at dberlin dot org>, gcc at gcc dot gnu dot org
- Date: Thu, 21 Aug 2003 13:06:33 -0400
- Subject: Re: [tree-ssa] bootstrap problem on powerpc-apple-darwin6.6
On Thursday, Aug 21, 2003, at 12:22 US/Eastern, Jason Merrill wrote:
On Thu, 21 Aug 2003 12:12:24 -0400, Andrew Pinski
<pinskia@physics.uc.edu> wrote:
I think the problem is that the rewrite of "if (a); else b" to "if
(!a) b"
should really be to "if (a!=0) b".
This is in gimplify_cond_expr on line 1972 in gimplify.c.
Maybe someone else will know what is going on.
Here is what arg is when passed to invert_thruthvalue:
[...]
See that it is a integer_type and not a boolean_type so something
needs to
change.
Why isn't the call to gimple_boolify earlier in the function working?
I do not know but I can reduce the source to:
union tree_node;
typedef union tree_node *tree;
typedef enum fallback_t {
fb_none = 0,
fb_rvalue=1,
fb_lvalue=2,
fb_either=1|2
} fallback_t;
int
gimplify_expr (tree *expr_p, fallback_t fallback)
{
tree internal_post = (tree) ((void *)0);
if ((fallback & fb_rvalue) && is_gimple_rhs (*expr_p))
{
f_temp_2();
}
else
{
abort();
}
return 1;
}
Thanks,
Andrew Pinski