From 0e8ff39dc79938400aac07dbdb62b35d810df12c Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Wed, 1 Feb 2012 00:09:55 +0000 Subject: Diagnose attempts to explicitly capture a __block variable in a lambda. llvm-svn: 149458 --- clang/test/CXX/expr/expr.prim/expr.prim.lambda/blocks.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 clang/test/CXX/expr/expr.prim/expr.prim.lambda/blocks.cpp (limited to 'clang/test/CXX') diff --git a/clang/test/CXX/expr/expr.prim/expr.prim.lambda/blocks.cpp b/clang/test/CXX/expr/expr.prim/expr.prim.lambda/blocks.cpp new file mode 100644 index 00000000000..faf686d1113 --- /dev/null +++ b/clang/test/CXX/expr/expr.prim/expr.prim.lambda/blocks.cpp @@ -0,0 +1,11 @@ +// RUN: %clang_cc1 -std=c++11 -fblocks %s -verify + +void block_capture_errors() { + __block int var; // expected-note 2{{'var' declared here}} + (void)[var] { }; // expected-error{{__block variable 'var' cannot be captured in a lambda}} \ + // expected-error{{lambda expressions are not supported yet}} + + // FIXME: this should produce the same error as above + (void)[=] { var = 17; }; // expected-error{{reference to local variable 'var' declared in enclosed function 'block_capture_errors'}} \ + // expected-error{{lambda expressions are not supported yet}} +} -- cgit v1.2.3