On 10/15/19 7:58 AM, Rainer Orth wrote:
Hi Aldy,

~[0,0] has been the accepted way for a long time, I'd really prefer to
keep that (for now).
It has.  Very true.  But I don't necessarily think that means we should
be introducing even more of 'em.
[...]
Happily, normalizing into ~0 for signed and [1,MAX] for unsigned,
simplified the patch because it on longer needs tweaks to
ranges_from_anti_range.

OK for trunk?

the new testcase FAILs on several (all?) 32-bit targets:

+FAIL: gcc.dg/tree-ssa/evrp4.c scan-tree-dump evrp "\\\\[1B, -1B\\\\]"

That's unfortunate.

Is this the only test that is failing?


I'm seeing this on 32-bit i386-pc-solaris2.11 and sparc-sun-solaris2.11,
with more reports for armv8l, pru, and s390x.

Comparing the dumps between 64 and 32-bit, I see

-_1: int * [1B, -1B]
+_1: int * [1B, 4294967295B]

I wonder why 32-bit targets at displaying 4294967295 instead of -1. Or are pointers 64-bits here?

I wonder if we should just change value_range_base::dump() to dump ~[0,0] for ::nonzero_p(), that way we have a consistent way of *displaying* non-zeroness for tests.

Aldy

Reply via email to