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.