http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58088

--- Comment #6 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Well, for (i * 2) & 128 the BIT_AND_EXPR case doesn't do anything, but then we
get into BIT_IOR_EXPR case, here the "Canonicalize (X & C1) | C2." code changes
that into (i * 2) & 255, then in BIT_AND_EXPR we drop the zero bits, so we get
(i * 2) & 254, but then it gets canonicalized into (i * 2) & 255 again and so
on and on, then we overflow.

Reply via email to