1 // PR c++/24277
2 
3 template< int Bits > struct uint_t {
4   typedef unsigned short fast;
5 };
6 template < int Bits > struct mask_uint_t {
7   typedef typename uint_t< Bits >::fast fast;
8   static const fast sig_bits = 1;
9   static const fast sig_bits_fast = fast(sig_bits);
10 };
checksum()11 template < int Bits> int checksum ( ) {
12   return 1 & mask_uint_t<Bits>::sig_bits_fast;
13 }
14 int i = checksum<1>();
15