p8.cpp revision b326ca8ffbea96f9cc8a457b0f57be880304a6f5
1437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter// RUN: %clang_cc1 -std=c++11 %s -verify 2437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter 3437bbad37074e472b66d427814275de84ca77f19Roderick Sheeterclass X0 { 4437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter void explicit_capture() { 5142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi int foo; 6142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi 7437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter (void)[foo, foo] () {}; // expected-error {{'foo' can appear only once}} 8437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter (void)[this, this] () {}; // expected-error {{'this' can appear only once}} 9437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter (void)[=, foo] () {}; // expected-error {{'&' must precede a capture when}} 10437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter (void)[=, &foo] () {}; 11437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter (void)[=, this] () {}; // expected-error {{'this' cannot appear}} 12437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter (void)[&, foo] () {}; 13437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter (void)[&, &foo] () {}; // expected-error {{'&' cannot precede a capture when}} 14437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter (void)[&, this] () {}; 15437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter } 16437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter}; 17437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter