On Wed, 2007-06-27 at 14:18 +0100, Al Viro wrote: > --- a/expand.c > +++ b/expand.c [...] > @@ -488,12 +490,15 @@ static int expand_conditional(struct expression *expr) > > cond_cost = expand_expression(cond); > if (cond->type == EXPR_VALUE) { > + unsigned flags = expr->flags; > if (!cond->value) > true = false; > if (!true) > true = cond; > + cost = expand_expression(*true); > *expr = *true; > - return expand_expression(expr); > + expr->flags = flags; > + return cost; This passes an incorrect type to expand_expression; it wants a struct expression *, but *true has type struct expression; did you want to pass true rather than *true? - Josh Triplett - To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html