diff options
author | Douglas Gregor <dgregor@apple.com> | 2012-10-25 18:39:16 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2012-10-25 18:39:16 +0000 |
commit | d814a05f6b29351d6e05edf42d9bfd668f9993be (patch) | |
tree | 2082fc368e479c4897a2062c0c86a63e555cc4ac /clang/test/CXX/expr/expr.prim/expr.prim.lambda | |
parent | 8cdb7ede804325938f64ac5348cd5ee1d9f70156 (diff) | |
download | bcm5719-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.cpp | 15 |
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; + }(); + } +}; + |