1 // PR c++/56895 2 // { dg-do compile } 3 4 extern struct A { bool foo (); A bar (); } *a; 5 6 template <int> 7 int baz1()8baz1 () 9 { 10 return 2 << (a->bar().foo() ? 1 : 0); 11 } 12 13 template <int> 14 int baz2()15baz2 () 16 { 17 return 2 >> (a->bar().foo() ? 1 : 0); 18 } 19 20 template <int> 21 int baz3()22baz3 () 23 { 24 return 10 / (a->bar().foo() ? 1 : 2); 25 } 26 27 template <int> 28 int baz4()29baz4 () 30 { 31 return 10 % (a->bar().foo() ? 1 : 0); 32 } 33 34 int test()35test () 36 { 37 return baz1<0> () + baz2<0> () + baz3<0> () + baz4<0> (); 38 } 39