Clang accepts this code:
void test1() {
struct S { int a : 4; };
const auto [x] = S{};
[&x] {}(); // #1
[&] { (void)x; }(); // #2
}
void test2() {
struct S { const int a : 4; };
auto [x] = S{};
[&x] {}(); // #3
[&] { (void)x; }(); // #4
}
According to [expr.prim.lambda.capture]/12, all of these 4 cases should be ill-formed:
... A bit-field or a member of an anonymous union shall not be captured by reference.
You can see examples in P1381R1 showing that capturing structured bindings refering bit-fields "means" capturing the bit-fields.
Compiler Explorer: https://godbolt.org/z/s8bY75Pqn