[PATCH] D148381: [WIP][Clang] Add counted_by attribute

2023-08-31 Thread Bill Wendling via Phabricator via cfe-commits
void updated this revision to Diff 555219. void added a comment. Fix testcase. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D148381/new/ https://reviews.llvm.org/D148381 Files: clang/include/clang/AST/Decl.h clang/include/clang/AST/DeclBase.h

[PATCH] D148381: [WIP][Clang] Add counted_by attribute

2023-08-31 Thread Bill Wendling via Phabricator via cfe-commits
void updated this revision to Diff 555180. void added a comment. Remove un-needed change. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D148381/new/ https://reviews.llvm.org/D148381 Files: clang/include/clang/AST/Decl.h

[PATCH] D148381: [WIP][Clang] Add counted_by attribute

2023-08-31 Thread Bill Wendling via Phabricator via cfe-commits
void updated this revision to Diff 555169. void added a comment. Add a few more tests to the codegen testcase. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D148381/new/ https://reviews.llvm.org/D148381 Files: clang/include/clang/AST/Decl.h

[PATCH] D148381: [WIP][Clang] Add counted_by attribute

2023-08-30 Thread Bill Wendling via Phabricator via cfe-commits
void updated this revision to Diff 554792. void added a comment. Add testcases. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D148381/new/ https://reviews.llvm.org/D148381 Files: clang/include/clang/AST/Decl.h

[PATCH] D148381: [WIP][Clang] Add counted_by attribute

2023-08-30 Thread Bill Wendling via Phabricator via cfe-commits
void updated this revision to Diff 554769. void added a comment. Add more diagnostics. Coming next: testcases!!! Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D148381/new/ https://reviews.llvm.org/D148381 Files: clang/include/clang/AST/Decl.h

[PATCH] D148381: [WIP][Clang] Add counted_by attribute

2023-08-29 Thread Bill Wendling via Phabricator via cfe-commits
void updated this revision to Diff 554533. void added a comment. Fix some issues Nick pointed out. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D148381/new/ https://reviews.llvm.org/D148381 Files: clang/include/clang/AST/Decl.h

[PATCH] D148381: [WIP][Clang] Add counted_by attribute

2023-08-29 Thread Bill Wendling via Phabricator via cfe-commits
void marked 4 inline comments as done. void added a comment. In D148381#4625462 , @nickdesaulniers wrote: > I assume you plan to add some clang CodeGen tests at some point? Yes. :-) Comment at:

[PATCH] D148381: [WIP][Clang] Add counted_by attribute

2023-08-29 Thread Bill Wendling via Phabricator via cfe-commits
void added a comment. In D148381#4626229 , @serge-sans-paille wrote: > Jumping a bit late in the thread, apologize in advance if I missed something. > > The GCC version of the attributes seems to be `element_count` (as found in > the link

[PATCH] D148381: [WIP][Clang] Add counted_by attribute

2023-08-29 Thread serge via Phabricator via cfe-commits
serge-sans-paille added a comment. Jumping a bit late in the thread, apologize in advance if I missed something. The GCC version of the attributes seems to be `element_count` (as found in the link https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108896 mentionned by @kees) I guess we could align

[PATCH] D148381: [WIP][Clang] Add counted_by attribute

2023-08-29 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. I assume you plan to add some clang CodeGen tests at some point? Comment at: clang/lib/CodeGen/CGBuiltin.cpp:875-876 +if (auto *RD = DRE->getType()->getPointeeType()->getAsRecordDecl()) + for (FieldDecl *Field : RD->fields()) +

[PATCH] D148381: [WIP][Clang] Add counted_by attribute

2023-08-28 Thread Bill Wendling via Phabricator via cfe-commits
void updated this revision to Diff 554083. void added a comment. Move the isFlexibleArrayMemberLike fully into Decl and fix tests. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D148381/new/ https://reviews.llvm.org/D148381 Files:

[PATCH] D148381: [WIP][Clang] Add counted_by attribute

2023-08-25 Thread Bill Wendling via Phabricator via cfe-commits
void updated this revision to Diff 553682. void added a comment. Modify sanitize scope to avoid the instruction creation. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D148381/new/ https://reviews.llvm.org/D148381 Files:

[PATCH] D148381: [WIP][Clang] Add counted_by attribute

2023-08-23 Thread Yeoul Na via Phabricator via cfe-commits
rapidsna added inline comments. Comment at: clang/lib/Sema/SemaDecl.cpp:17931 + auto It = llvm::find_if(RD->fields(), [&](const FieldDecl *Field) { +return Field->getName() == ECA->getCountedByField()->getName(); + }); What happens in this corner case

[PATCH] D148381: [WIP][Clang] Add counted_by attribute

2023-08-23 Thread Yeoul Na via Phabricator via cfe-commits
rapidsna added inline comments. Comment at: clang/include/clang/Basic/AttrDocs.td:7209 +/* ... */ +struct bar *fam[] __attribute__((counted_by(num_fam_elements))); + }; I don't think it's necessary for this patch but for [[

[PATCH] D148381: [WIP][Clang] Add counted_by attribute

2023-08-23 Thread Yeoul Na via Phabricator via cfe-commits
rapidsna added a comment. > Future additions will include supporting, FAMs and counts in sub-structures. For sub-structures, are you referring to cases like this? struct outer { struct { int count; } sub; int flex[__attribute__((counted_by(sub.count)))]; }; For

[PATCH] D148381: [WIP][Clang] Add counted_by attribute

2023-08-22 Thread Bill Wendling via Phabricator via cfe-commits
void updated this revision to Diff 552554. void added a comment. Fix clang-ast-dump issue. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D148381/new/ https://reviews.llvm.org/D148381 Files: clang/include/clang/AST/Decl.h

[PATCH] D148381: [WIP][Clang] Add counted_by attribute

2023-08-22 Thread Bill Wendling via Phabricator via cfe-commits
void added inline comments. Comment at: clang/lib/AST/Decl.cpp:4541-4544 +bool FieldDecl::isFlexibleArrayMemberLike( +ASTContext , +LangOptions::StrictFlexArraysLevelKind StrictFlexArraysLevel, +bool IgnoreTemplateOrMacroSubstitution) const {

[PATCH] D148381: [WIP][Clang] Add counted_by attribute

2023-08-22 Thread Bill Wendling via Phabricator via cfe-commits
void updated this revision to Diff 552552. void marked 3 inline comments as done. void added a comment. Address Nick's comments. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D148381/new/ https://reviews.llvm.org/D148381 Files:

[PATCH] D148381: [WIP][Clang] Add counted_by attribute

2023-08-22 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: clang/lib/AST/Decl.cpp:4541-4544 +bool FieldDecl::isFlexibleArrayMemberLike( +ASTContext , +LangOptions::StrictFlexArraysLevelKind StrictFlexArraysLevel, +bool IgnoreTemplateOrMacroSubstitution) const {

[PATCH] D148381: [WIP][Clang] Add counted_by attribute

2023-08-22 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. Drive by code review!!! Comment at: clang/lib/AST/Decl.cpp:4541-4544 +bool FieldDecl::isFlexibleArrayMemberLike( +ASTContext , +LangOptions::StrictFlexArraysLevelKind StrictFlexArraysLevel, +bool IgnoreTemplateOrMacroSubstitution)

[PATCH] D148381: [WIP][Clang] Add counted_by attribute

2023-08-22 Thread Bill Wendling via Phabricator via cfe-commits
void updated this revision to Diff 552318. void added a comment. Support when doing a _bdos on the full structure. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D148381/new/ https://reviews.llvm.org/D148381 Files: clang/include/clang/AST/Decl.h

[PATCH] D148381: [WIP][Clang] Add counted_by attribute

2023-08-22 Thread Bill Wendling via Phabricator via cfe-commits
void updated this revision to Diff 552305. void added a comment. Fix a segfault. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D148381/new/ https://reviews.llvm.org/D148381 Files: clang/include/clang/AST/Decl.h

[PATCH] D148381: [WIP][Clang] Add counted_by attribute

2023-08-21 Thread Bill Wendling via Phabricator via cfe-commits
void updated this revision to Diff 552184. void edited the summary of this revision. void added a comment. Make __builtin_dynamic_object_size use the __counted_by attribute to help determine the object size. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION