On Mon, 2005-09-05 at 17:39 -0400, Richard Kenner wrote: > Suppose lhs_vr is [64,64] and vr_result is ~[0,0]. It would seem > that the code near the end of this function will malfunction. > > Shouldn't the test be that both lhs_vr *and* vr_result are VR_RANGE? > > This is causing an ACATS failure in c45651a and possibly others. I don't necessarily see how it would cause an incorrect code malfunction. I did twiddle this code locally to allow tree-vrp.c to better track anti-ranges, particularly singleton anti-ranges such as ~[0,0].
Basically in the cases I was seeing, LHS_VR was a range and VR_RESULT was a singleton anti-range. We would ultimately create a result range which looked like [-INF,+INF], which we could interpret as VARYING. Are you getting something different? Jeff