1 /* { dg-do run } */
2 
3 int a = 128, b;
4 
5 static int
fn1(signed char p1,int p2)6 fn1 (signed char p1, int p2)
7 {
8   return p1 < 0 || p1 > 1 >> p2 ? 0 : p1 << 1;
9 }
10 
11 static int
fn2()12 fn2 ()
13 {
14   signed char c = a;
15   b = fn1 (c, 1);
16   if ((128 | c) < 0 ? 1 : 0)
17     return 1;
18   return 0;
19 }
20 
21 int
main()22 main ()
23 {
24   if (fn2 () != 1)
25     __builtin_abort ();
26 
27   return 0;
28 }
29