// PR c++/52299 template struct test0 { static const unsigned a_ = x ? 10 / x : 10; }; template struct test1 { static const unsigned a_ = !x ? 10 : 10 / x; }; template struct test2 { static const unsigned a_ = x ? 10 / x : 10; }; template struct test3 { static const unsigned a_ = !x ? 10 : 10 / x; }; unsigned i0 = test0<0>::a_; unsigned i1 = test1<0>::a_; unsigned i2 = test2::a_; unsigned i3 = test3::a_;