https://gcc.gnu.org/bugzilla/show_bug.cgi?id=23471
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed|2021-08-29 00:00:00 |2025-4-19 --- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> --- So EVRP gives the correct range: # RANGE [irange] int [0, +INF] MASK 0xfffffffd VALUE 0x0 t_3 = a_2(D) * a_2(D); We still miss out on: ``` void link_error(void); void f(int a) { if (a*a*a*a*a*a < 0) link_error(); } ```