+// { dg-do compile }
+// { dg-options "-Wall" }
+
+extern int f2(int);
+extern void f3();
+void
+f1(int i)
+{
+ if (1 == 1 || f2(i >> -10))
+ f3();
+ if (1 == 1 || f2(i >> 128))
+ f3();
+ if (1 == 1 || f2(i << -10))
+ f3();
+ if (1 == 1 || f2(i << 128))
+ f3();
+ if (1 == 1 || i < 0xffffffff)
+ f3();
+ if (1 == 1 || i >= -0x80000000)
+ f3();
+ if (1 == 0 && f2(i >> -10))
+ f3();
+ if (1 == 0 && f2(i >> 128))
+ f3();
+ if (1 == 0 && f2(i << -10))
+ f3();
+ if (1 == 0 && f2(i << 128))
+ f3();
+ if (1 == 0 && i < 0xffffffff)
+ f3();
+ if (1 == 0 && i >= -0x80000000)
+ f3();
+ if (1 == 1 && f2(i >> -10)) /* { dg-warning "shift count is negative" } */
+ f3();
+ if (1 == 0 || f2(i << -10)) /* { dg-warning "shift count is negative" } */
+ f3();
+}