// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s
structS{
S *p =this;// ok
decltype(this) q;// expected-error {{invalid use of 'this' outside of a non-static member function}}
int arr[sizeof(this)];// expected-error {{invalid use of 'this' outside of a non-static member function}}
int sz =sizeof(this);// ok
typedefautof()->decltype(this);// expected-error {{invalid use of 'this' outside of a non-static member function}}
};namespaceCaptureThis{structX{int n =10;int m =[&]{return n +1;}();int o =[&]{returnthis->m+1;}();int p =[&]{return[&](int x){returnthis->m+ x;}(o);}();};
X x;}