1 // RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s
4 int *j
= &nonexistent
; // expected-error {{use of undeclared identifier 'nonexistent'}}
11 int i
= sizeof(S::m
); // ok
12 int j
= sizeof(S::m
+ 42); // ok
18 int a
[n
]; // expected-error {{invalid use of member 'n' in static member function}}
19 int b
[sizeof n
]; // ok
23 // Make sure the rule for unevaluated operands works correctly with typeid.
27 class Poly
{ virtual ~Poly(); };
28 const std::type_info
& k
= typeid(S::m
);
29 const std::type_info
& m
= typeid(*(Poly
*)S::m
); // expected-error {{invalid use of non-static data member}}
30 const std::type_info
& n
= typeid(*(Poly
*)(0*sizeof S::m
));
34 struct Y
{ int f() { return sizeof(X::a
); } }; // ok
36 struct A
{ enum E
{} E
; };
37 struct B
{ int f() { return sizeof(A::E
); } }; // ok