[PATCH] D114439: [Annotation] Allow parameter pack expansions in annotate attribute
Erich Keane via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Dec 1 08:50:33 PST 2021
erichkeane added a comment.
Aaron is way more familiar with this code than I am, but I've got some suggestions for more tests in the parsing, we need to make sure that we handle pack expansion completely here.
================
Comment at: clang/lib/Parse/ParseDecl.cpp:447
+ }
+ ArgExpr = Actions.ActOnPackExpansion(ArgExpr.get(), ConsumeToken());
+ }
----------------
Do you have a test for something that isn't a pack followed by an ellipsis? What is the behavior there? I'm also concerned that there doesn't seem to be anything here that handles complex-pack expansions (like folds), can you test that as well?
Also, why is this 'if' not up on line 429 (that is, outside of this 'else'?). I believe ParseAssignmentExpression is going to muck-up the tokens, so I'm not particularly sure what is going to happen here?
================
Comment at: clang/test/Parser/cxx0x-attributes.cpp:261
-template<typename...Ts> void variadic() {
+template <int... Is> void variadic() {
void bar [[noreturn...]] (); // expected-error {{attribute 'noreturn' cannot be used as an attribute pack}}
----------------
What is the point of this change?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D114439/new/
https://reviews.llvm.org/D114439
More information about the cfe-commits
mailing list