================
@@ -8522,6 +8522,22 @@ bool Sema::CheckCountedByAttr(Scope *S, const FieldDecl 
*FD) {
     }
   }
 
+  // We don't support 'counted_by' on flexible array members in substructures.
+  const DeclContext *DC = FD->getParent();
+  while (const auto *RD = dyn_cast<RecordDecl>(DC)) {
+    if (!RD->isAnonymousStructOrUnion() ||
+        !isa<RecordDecl>(RD->getLexicalParent()))
+      break;
+    DC = RD->getLexicalParent();
+  }
+
+  if (DC != FD->getDeclContext()->getOuterLexicalRecordContext()) {
----------------
rjmccall wrote:

We need to figure out this thing about `getOuterLexicalRecordContext()` before 
we can go forward here.  It sounds like you might be concerned about the 
established behavior of some existing attribute that isn't the 
`-fbounds-safety` `__counted_by`, but which people are trying to merge with 
`__counted_by` on general principle?

https://github.com/llvm/llvm-project/pull/73730
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to