1 // PR c++/52299
2 
3 template<unsigned x>
4 struct test0 {
5   static const unsigned a_
6   = x ? 10 / x : 10;
7 };
8 
9 template<unsigned x>
10 struct test1 {
11   static const unsigned a_
12   = !x ? 10 : 10 / x;
13 };
14 
15 template<bool x>
16 struct test2 {
17   static const unsigned a_
18   = x ? 10 / x : 10;
19 };
20 
21 template<bool x>
22 struct test3 {
23   static const unsigned a_
24   = !x ? 10 : 10 / x;
25 };
26 
27 unsigned i0 = test0<0>::a_;
28 unsigned i1 = test1<0>::a_;
29 unsigned i2 = test2<false>::a_;
30 unsigned i3 = test3<false>::a_;
31