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

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to