p7.cpp revision 6d2f0f589a8c38f64147e90ccdd813dde74ecdb6
1// RUN: %clang_cc1 -fsyntax-only -std=c++11 %s -verify 2 3// Check that analysis-based warnings work in lambda bodies. 4void analysis_based_warnings() { 5 []() -> int { }; // expected-warning{{control reaches end of non-void function}} \ 6 // expected-error{{lambda expressions are not supported yet}} 7} 8 9// Check that we get the right types of captured variables (the 10// semantic-analysis part of p7). 11int &check_const_int(int&); 12float &check_const_int(const int&); 13 14void test_capture_constness(int i, const int ic) { 15 [i,ic] ()->void { // expected-error{{lambda expressions are not supported yet}} 16 float &fr1 = check_const_int(i); 17 float &fr2 = check_const_int(ic); 18 }; 19 20 [=] ()->void { // expected-error{{lambda expressions are not supported yet}} 21 float &fr1 = check_const_int(i); 22 float &fr2 = check_const_int(ic); 23 }; 24 25 [i,ic] () mutable ->void { // expected-error{{lambda expressions are not supported yet}} 26 int &ir = check_const_int(i); 27 float &fr = check_const_int(ic); 28 }; 29 30 [=] () mutable ->void { // expected-error{{lambda expressions are not supported yet}} 31 int &ir = check_const_int(i); 32 float &fr = check_const_int(ic); 33 }; 34 35 [&i,&ic] ()->void { // expected-error{{lambda expressions are not supported yet}} 36 int &ir = check_const_int(i); 37 float &fr = check_const_int(ic); 38 }; 39 40 [&] ()->void { // expected-error{{lambda expressions are not supported yet}} 41 int &ir = check_const_int(i); 42 float &fr = check_const_int(ic); 43 }; 44} 45 46 47