r204757 - PR19249: Don't forget to DiagnoseUseOfDecl for the implicit use of a variable

Richard Smith richard-llvm at metafoo.co.uk
Tue Mar 25 14:11:32 PDT 2014


Author: rsmith
Date: Tue Mar 25 16:11:32 2014
New Revision: 204757

URL: http://llvm.org/viewvc/llvm-project?rev=204757&view=rev
Log:
PR19249: Don't forget to DiagnoseUseOfDecl for the implicit use of a variable
in a lambda capture.

Modified:
    cfe/trunk/lib/Sema/SemaLambda.cpp
    cfe/trunk/test/SemaCXX/lambda-expressions.cpp

Modified: cfe/trunk/lib/Sema/SemaLambda.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaLambda.cpp?rev=204757&r1=204756&r2=204757&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaLambda.cpp (original)
+++ cfe/trunk/lib/Sema/SemaLambda.cpp Tue Mar 25 16:11:32 2014
@@ -1062,6 +1062,8 @@ void Sema::ActOnStartOfLambdaDefinition(
       }
 
       Var = R.getAsSingle<VarDecl>();
+      if (Var && DiagnoseUseOfDecl(Var, C->Loc))
+        continue;
     }
 
     // C++11 [expr.prim.lambda]p8:

Modified: cfe/trunk/test/SemaCXX/lambda-expressions.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/lambda-expressions.cpp?rev=204757&r1=204756&r2=204757&view=diff
==============================================================================
--- cfe/trunk/test/SemaCXX/lambda-expressions.cpp (original)
+++ cfe/trunk/test/SemaCXX/lambda-expressions.cpp Tue Mar 25 16:11:32 2014
@@ -359,3 +359,7 @@ namespace PR18473 {
   };
   template void f<NoCopy>(); // expected-note {{instantiation}}
 }
+
+void PR19249() {
+  auto x = [&x]{}; // expected-error {{cannot appear in its own init}}
+}





More information about the cfe-commits mailing list