[libcxx] [flang] [compiler-rt] [llvm] [clang] [libc] [clang-tools-extra] [Clang] Generate the GEP instead of adding AST nodes (PR #73730)

John McCall via cfe-commits cfe-commits at lists.llvm.org
Mon Dec 18 13:57:14 PST 2023


================
@@ -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();
+  }
----------------
rjmccall wrote:

```
while (true) {
  const auto *RD = dyn_cast<RecordDecl>(DC);
  if (!RD || !RD->isAnonymousStructOrUnion())
    break;
  DC = RD->getLexicalParent();
}
```

https://github.com/llvm/llvm-project/pull/73730


More information about the cfe-commits mailing list