// RUN: %clang_cc1 -std=c++1y %s -verify
const char *has_no_member = .x; // expected-error {{no member named 'x'}}
double f;
auto with_float = ;
auto with_float_2 = ;
// Within the lambda-expression's compound-statement,
// the identifier in the init-capture hides any declaration
// of the same name in scopes enclosing the lambda-expression.
void
;
auto init_kind_1 = ;
auto init_kind_2 = ; // expected-error {{no matching constructor}}
void
;
; // expected-note {{instantiation of}}
void ;
int ;
int ;
auto bad_init_1 = ; // expected-error {{expected expression}}
auto bad_init_2 = ; // expected-error {{initializer for lambda capture 'a' contains multiple expressions}}
auto bad_init_3 = ; // expected-error {{cannot form a reference to 'void'}}
auto bad_init_4 = ; // expected-error {{has incomplete type 'void'}}
auto bad_init_5 = ; // expected-error {{cannot deduce type for lambda capture 'a' from initializer of type '<overloaded function}}
auto bad_init_6 = ; // expected-error {{cannot deduce type for lambda capture 'a' from initializer list}}
auto bad_init_7 = ; // expected-error {{cannot deduce type for lambda capture 'a' from nested initializer list}}
void // expected-error {{initializer missing for lambda capture 'a'}}
; // expected-note {{instantiation of}}
// No lifetime-extension of the temporary here.
auto a_copy = ; // expected-warning {{temporary whose address is used as value of local variable 'a_copy' will be destroyed at the end of the full-expression}} expected-note {{via initialization of lambda capture 'c'}}
// But there is lifetime extension here.
auto &&a = ;
auto b = ; // OK, per N3922
;
;
;
decltype
auto s = ;
T
int instantiate_test_1 = ;
const char *instantiate_test_2 = ; // expected-note {{here}}