LGTM

================
Comment at: lib/Parse/ParseExprCXX.cpp:702-705
@@ -701,2 +701,6 @@
   typedef Optional<unsigned> DiagResult;
+  // Each lambda init-capture forms its own full expression, which clears
+  // Actions.MaybeODRUseExprs. So create an expression evaluation context to
+  // save the necessary state, and restore it later.
+  EnterExpressionEvaluationContext EC(Actions, Sema::PotentiallyEvaluated);
 
----------------
Push this down into the parsing of the init-capture below.

================
Comment at: lib/Sema/SemaLambda.cpp:639-640
@@ +638,4 @@
+    if (CXXDirectInit->getNumExprs() == 0) {
+      // It isn't possible to write this directly, but it is possible to
+      // end up in this situation with "x(some_pack...);"
+      Diag(CXXDirectInit->getLocStart(), diag::err_init_capture_no_expression)
----------------
It's possible to write this directly for a lambda; remove the comment?

================
Comment at: lib/Sema/SemaLambda.cpp:617
@@ +616,3 @@
+
+  const bool IsDirectInit = isa<ParenListExpr>(Init) || 
isa<InitListExpr>(Init);
+
----------------
Please move the (deleted) comment from below to here:

  // We do not need to distinguish between direct-list-initialization
  // and copy-list-initialization here, because we will always deduce
  [...]



================
Comment at: lib/Sema/SemaLambda.cpp:908-910
@@ -826,4 +907,5 @@
         ContainsUnexpandedParameterPack = true;
-
-      Var = checkInitCapture(C->Loc, C->Kind == LCK_ByRef,
-                             C->Id, C->Init.take());
+      // If the initializer expression is usable, but the InitCaptureType
+      // is not then an error has occured - so ignore the capture for now.
+      // for e.g., [n{0}] { }; <-- if no <initializer_list> is included.
+      if (C->InitCaptureType.get().isNull()) 
----------------
Add a FIXME here: we should create the init capture variable and mark it 
invalid in this case.


http://llvm-reviews.chandlerc.com/D2092
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to