2 // RUN: %clang_cc1 -x c++ -fsyntax-only -Wunused-lambda-capture -Wno-unused-value -std=c++1z -fixit %t
3 // RUN: grep -v CHECK %t | FileCheck %s
13 // CHECK: [i] { return i; };
15 // CHECK: [j] { return j; };
17 // CHECK: [j] { return j; };
19 // CHECK: [j] { return j; };
22 [i,j,k] { return i + j; };
23 // CHECK: [i,j] { return i + j; };
24 [i,j,k] { return j + k; };
25 // CHECK: [j,k] { return j + k; };
26 [i,j,k] { return i + k; };
27 // CHECK: [i,k] { return i + k; };
28 [i,j,k] { return i + j + k; };
29 // CHECK: [i,j,k] { return i + j + k; };
31 // CHECK: [&] { return k; };
33 // CHECK: [=] { return k; };
34 [=,&i,&j] { return j; };
35 // CHECK: [=,&j] { return j; };
36 [=,&i,&j] { return i; };
37 // CHECK: [=,&i] { return i; };
40 [i,z = i] { return z; };
41 // CHECK: [z = i] { return z; };
42 [z = i,i] { return z; };
43 // CHECK: [z = i] { return z; };
47 // CHECK: [i] { return i; };
49 // CHECK: [i] { return i; };
52 #define I_REF_MACRO() &i
55 [I_MACRO(),j] { return j; };
56 // CHECK: [j] { return j; };
57 [j,I_MACRO()] { return j; };
58 // CHECK: [j] { return j; };
59 [I_REF_MACRO(),j] { return j; };
60 // CHECK: [j] { return j; };
61 [j,I_REF_MACRO()] { return j; };
62 // CHECK: [j] { return j; };
66 // CHECK: [z = (n = i)] {};
68 // CHECK: [z = (n = i)] {};
77 [i,this] { return i; };
78 // CHECK: [i] { return i; };
79 [this,i] { return i; };
80 // CHECK: [i] { return i; };
83 [*this,i] { return i; };
84 // CHECK: [i] { return i; };
85 [i,*this] { return i; };
86 // CHECK: [i] { return i; };
87 [*this] { return this; };
88 // CHECK: [*this] { return this; };
89 [*this,i] { return this; };
90 // CHECK: [*this] { return this; };
91 [i,*this] { return this; };
92 // CHECK: [*this] { return this; };