Find signed bit fields occupying only one bit
// BitFieldDeclarator [ Bits::LiteralExpr.getIntValue() = 1 ] [ isSigned() ]
1 struct MT { 2 int ii: 1; 3 signed int si: 1; 4 };
Storing a sign requires one bit, so there are no bits left for the value itself. The pattern looks for member declarations. For uniformity reasons in C and C++, structure and union fields are called members (because in C++ structures and unions are special types of classes). The number of bits is attached to the member declarator. We check numeric attribute for equality to one and apply a built-in predicate 'isSignedInt()' to a declarator to find out if a declared member is a signed integer.
Again, the '[*]' modifier is used to match any of the structure or union members in the sequence.