33 while (RD && (RD->isAnonymousStructOrUnion() ||
34 (!RD->isCompleteDefinition() && RD->getName().empty()))) {
35 const auto *
Parent = dyn_cast<RecordDecl>(RD->getParent());
63 const auto FieldTy = FD->
getType();
64 if (FieldTy->isArrayType() && (CountInBytes || OrNull)) {
66 diag::err_count_attr_not_on_ptr_or_flexible_array_member)
70 if (!FieldTy->isArrayType() && !FieldTy->isPointerType()) {
72 diag::err_count_attr_not_on_ptr_or_flexible_array_member)
79 if (FieldTy->isArrayType() &&
81 StrictFlexArraysLevel,
true)) {
83 diag::err_counted_by_attr_on_array_not_flexible_array_member)