================ @@ -1351,7 +1352,8 @@ def OSConsumesThis : InheritableAttr { def Cleanup : InheritableAttr { let Spellings = [GCC<"cleanup">]; - let Args = [DeclArgument<Function, "FunctionDecl">]; + let Args = [DeclArgument<Function, "FunctionDecl">, + ExprArgument<"Expr", /*opt=*/0, /*fake=*/1>]; ---------------- AaronBallman wrote:
Ah good call on those already being trailing objects on `ParsedAttr`, so it's an even bigger ask than I originally was thinking. Another good reason not to go that route yet, that's likely to be a complicated patch because of how much code changes (ClangAttrEmitter.cpp, SemaDeclAttr.cpp, probably the parser as well) and because of performance concerns (would definitely need to be tested for perf changes). https://github.com/llvm/llvm-project/pull/140233 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits