http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53986
--- Comment #9 from vries at gcc dot gnu.org 2012-08-05 18:16:21 UTC --- test-case for LSHIFT_EXPR vrp: ... extern void link_error (void); void f3 (int s, int b) { if (s >> 3 == -2) /* s in range [-16, -9]. */ { s += 17; /* s in range [1, 8]. */ b = (b & 1) + 1; /* b in range [1, 2]. */ b = b << s; /* b in range [bmin << smin, bmax << smax] == [1 << 1, 2 << 8] == [1, 512]. */ if (b == 0|| b == 513) link_error (); } } int main () { return 0; } ...