summaryrefslogtreecommitdiffstats
path: root/clang/test/CXX/expr/expr.prim/expr.prim.lambda
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2012-10-25 18:39:16 +0000
committerDouglas Gregor <dgregor@apple.com>2012-10-25 18:39:16 +0000
commitd814a05f6b29351d6e05edf42d9bfd668f9993be (patch)
tree2082fc368e479c4897a2062c0c86a63e555cc4ac /clang/test/CXX/expr/expr.prim/expr.prim.lambda
parent8cdb7ede804325938f64ac5348cd5ee1d9f70156 (diff)
downloadbcm5719-llvm-d814a05f6b29351d6e05edf42d9bfd668f9993be.tar.gz
bcm5719-llvm-d814a05f6b29351d6e05edf42d9bfd668f9993be.zip
When capturing 'this' in a lambda, make sure to update the set of
array-index starting values for the 'this' capture. Fixes <rdar://problem/12426831>. llvm-svn: 166709
Diffstat (limited to 'clang/test/CXX/expr/expr.prim/expr.prim.lambda')
-rw-r--r--clang/test/CXX/expr/expr.prim/expr.prim.lambda/p14.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p14.cpp b/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p14.cpp
index 678fa4b964d..6358215a555 100644
--- a/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p14.cpp
+++ b/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p14.cpp
@@ -73,3 +73,18 @@ struct ExpectedThisLayout {
static_assert(sizeof(x) == sizeof(ExpectedThisLayout), "Layout mismatch!");
}
};
+
+struct CaptureArrayAndThis {
+ int value;
+
+ void f() {
+ int array[3];
+ [=]() -> int {
+ int result = value;
+ for (unsigned i = 0; i < 3; ++i)
+ result += array[i];
+ return result;
+ }();
+ }
+};
+
OpenPOWER on IntegriCloud