https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103161

--- Comment #6 from Aldy Hernandez <aldyh at gcc dot gnu.org> ---
(In reply to Martin Sebor from comment #5)
> Great!  With the strlen conversion to ranger
> (g:6b8b959675a3e14cfdd2145bd62e4260eb193765) the test now fails on x86_64 as
> well:

I didn't see any regressions on x86-64 testing, except
builtin-sprintf-warn-22.c which I xfailed.

> I think the test unwittingly depends on GCC not inferring a range from a
> conditional (although the intent is clearly that it does).  It uses an
> unsigned int as the width argument to sprintf which is undefined, but I
> suspect it does it as an attempt to create a signed anti-range.  So this

If the code uses multi-ranges there should be no anti-ranges.  Anti-ranges do
not exist in the new world, and reference to them should be removed.

I still see them in:
gimple-ssa-warn-restrict.c
tree-ssa-strlen.c
builtins.c
ipa-fnsummary.c

(well and in ipa-prop.c, but they're kinda hijacking it for their own
purposes).

The remaining uses are internal to the legacy implementation (vrvalues,
tree-vrp, etc) so they're ok.

Reply via email to