summaryrefslogtreecommitdiffstats
path: root/clang/test/CXX/expr/expr.prim/expr.prim.lambda
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2012-02-01 00:09:55 +0000
committerDouglas Gregor <dgregor@apple.com>2012-02-01 00:09:55 +0000
commit0e8ff39dc79938400aac07dbdb62b35d810df12c (patch)
tree545b8adfd51c5c1c5ddb4d16aa197d38cf90dd61 /clang/test/CXX/expr/expr.prim/expr.prim.lambda
parent9fa0481569b688e95d297cf23fa6d5eb4c01e00a (diff)
downloadbcm5719-llvm-0e8ff39dc79938400aac07dbdb62b35d810df12c.tar.gz
bcm5719-llvm-0e8ff39dc79938400aac07dbdb62b35d810df12c.zip
Diagnose attempts to explicitly capture a __block variable in a lambda.
llvm-svn: 149458
Diffstat (limited to 'clang/test/CXX/expr/expr.prim/expr.prim.lambda')
-rw-r--r--clang/test/CXX/expr/expr.prim/expr.prim.lambda/blocks.cpp11
1 files changed, 11 insertions, 0 deletions
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}}
+}
OpenPOWER on IntegriCloud