blob: 607774d755de99c2d3a407a981a5a31933b84419 [file] [log] [blame]
// { dg-do run { target c++11 } }
// PR C++/71792
class some_class
{
public:
unsigned int np : 4;
unsigned int nc : 8;
unsigned int nc0 : 1;
};
template<bool what>
static void test_bug (const some_class &mp) {
if (what) {
int t = 0;
for (auto i = mp.nc0; i < mp.nc; i++) {
if (t != i) __builtin_abort ();
t++;
}
}
}
static void test_ok (const some_class &mp) {
int t = 0;
for (auto i = mp.nc0; i < mp.nc; i++) {
if (t != i) __builtin_abort ();
t++;
}
}
int main ()
{
some_class mp;
mp.nc0 = 0;
mp.nc = 9;
mp.np = 3;
test_bug<true> (mp);
test_ok (mp);
return 0;
}