// Check that we handle bitfields as complex lvalues properly.
struct A
{
int i: 2;
int j: 2;
int k: 2;
};
A a, a2;
bool b;
void f ();
int main ()
{
(f(), a.j) = 1;
(f(), a).j = 2; // { dg-warning "overflow" }
(b ? a.j : a2.k) = 3; // { dg-warning "overflow" }
(b ? a : a2).j = 0;
++(a.j) = 1;
(a.j = 2) = 3; // { dg-warning "overflow" }
}