This is the mail archive of the
mailing list for the GCC project.
Re: [patch] adjust make_range
> Hmmm, what it appears you're suggesting is that we use the type of
> the expression rather than the type of the argument throughout that
> Unfortunately, this code doesn't really describe how "type" is used,
> so it is exceedingly difficult to know if this is a safe and correct
> change. However, my gut tells me the change is wrong.
> Let's look at the code for the comparison operators -- that code peeks
> at TYPE_UNSIGNED (type). I'm pretty sure we wanted to refer to the
> type of the argument in that context, not the type of the expression
> (think about it -- the result type of these expression is a boolean).
Not necessarily. In this case the result of the type is the result of
the MINUS_EXPR. This is the case where we have (cond - 2) is the arg0 of
the previous cycle through, however, as you say:
> Rather than continue to propose patches, why don't you describe in
> more detail the ranges at the various stages in this routine. ie,
> I'm pretty sure you go around the loop in that routine 2-3 times
> for the ((int)cond - 2) > 100 expression.
> That might help us decipher what's happening vs what ought to be
I agree. I was doing this last night and for some of the code, the mind
boggles :) Anyhow, I'll do it and post.
Eric Christopher <email@example.com>