From c401755f4660d6b42ed74d53e580e4a5f8c2ee9f Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Sat, 1 Dec 2012 01:01:09 +0000 Subject: Fix the determination of whether a capture refers to an enclosing scope when dealing with nested blocks. Fixes . llvm-svn: 169065 --- clang/test/CodeGenCXX/lambda-expressions.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'clang/test/CodeGenCXX/lambda-expressions.cpp') diff --git a/clang/test/CodeGenCXX/lambda-expressions.cpp b/clang/test/CodeGenCXX/lambda-expressions.cpp index cee4f172a00..19195c9dd29 100644 --- a/clang/test/CodeGenCXX/lambda-expressions.cpp +++ b/clang/test/CodeGenCXX/lambda-expressions.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -triple x86_64-apple-darwin10.0.0 -emit-llvm -o - %s -fexceptions -std=c++11 | FileCheck %s +// RUN: %clang_cc1 -triple x86_64-apple-darwin10.0.0 -fblocks -emit-llvm -o - %s -fexceptions -std=c++11 | FileCheck %s // CHECK-NOT: @unused auto unused = [](int i) { return i+1; }; @@ -89,3 +89,14 @@ int g() { // CHECK-NEXT: ret i32 // CHECK: define internal void @"_ZZ1e1ES_bEN3$_4D2Ev" + +// +struct XXX {}; +void nestedCapture () { + XXX localKey; + ^() { + [&]() { + ^{ XXX k = localKey; }; + }; + }; +} -- cgit v1.2.3