1// RUN: %clang_cc1 -fsyntax-only -verify %s 2 3class X {}; 4 5void test() { 6 X x; 7 8 x.int; // expected-error{{expected unqualified-id}} 9 x.~int(); // expected-error{{expected a class name}} 10 x.operator; // expected-error{{expected a type}} 11 x.operator typedef; // expected-error{{expected a type}} expected-error{{type name does not allow storage class}} 12} 13 14void test2() { 15 X *x; 16 17 x->int; // expected-error{{expected unqualified-id}} 18 x->~int(); // expected-error{{expected a class name}} 19 x->operator; // expected-error{{expected a type}} 20 x->operator typedef; // expected-error{{expected a type}} expected-error{{type name does not allow storage class}} 21} 22 23// PR6327 24namespace test3 { 25 template <class A, class B> struct pair {}; 26 27 void test0() { 28 pair<int, int> z = minmax({}); // expected-error {{expected expression}} 29 } 30 31 struct string { 32 class iterator {}; 33 }; 34 35 void test1() { 36 string s; 37 string::iterator i = s.foo(); // expected-error {{no member named 'foo'}} 38 } 39} 40 41 42// Make sure we don't crash. 43namespace rdar11293995 { 44 45struct Length { 46 explicit Length(PassRefPtr<CalculationValue>); // expected-error {{unknown type name}} \ 47 expected-error {{expected ')'}} \ 48 expected-note {{to match this '('}} 49}; 50 51struct LengthSize { 52 Length m_width; 53 Length m_height; 54}; 55 56enum EFillSizeType { Contain, Cover, SizeLength, SizeNone }; 57 58struct FillSize { 59 EFillSizeType type; 60 LengthSize size; 61}; 62 63class FillLayer { 64public: 65 void setSize(FillSize f) { m_sizeType = f.type;} 66private: 67 unsigned m_sizeType : 2; 68}; 69 70} 71