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

Aldy Hernandez <aldyh at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at gcc dot gnu.org      |aldyh at gcc dot gnu.org
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2022-07-26
     Ever confirmed|0                           |1

--- Comment #3 from Aldy Hernandez <aldyh at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #2)
> hmm, but r.symbolic_p returns false.  Ah, because it's "wrong" in the way
> of treating &MEM <const char[16]> [(void *)&D.42061 + 16B] as not symbolic
> (it's an address constant).  It's still not an irange though?

Ughh, that looks totally broken, and probably seeped in because only legacy VRP
saw these ranges.  I'm hesitant to fix any of this, as it's all slated for
removal shortly.

The pretty printer for irange incorrectly assumes irange's are free from all
this symbolic stuff.  Perhaps we could special case the !r.constant_p() case
and just print the trees.  I'd like to keep the loop going over wide_ints, as
we're eventually going to wide ints later this cycle.

I didn't know about pp_wide_integer.  If it works the same as going through the
tree, I'll gladly change the code.

Thanks for looking into this.

Reply via email to