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;
}
...
