| // RUN: %clang_cc1 -fsyntax-only -verify %s |
| static enum K1 { K1Val = sizeof(T) } Kind1; |
| static enum { K2Val = sizeof(T)*2 } Kind2; |
| enum { K3Val = sizeof(T)*2 } Kind3; |
| Outer::Inner::InnerTemplate<type>::VeryInner::Kind2 = K2Val; |
| Outer::Inner::InnerTemplate<type>::VeryInner::Kind2 = K2Val; |
| template struct N::Outer::Inner::InnerTemplate<INT>::VeryInner; |
| template struct N::Outer::Inner::InnerTemplate<INT>::UeberInner; // expected-error{{'UeberInner' does not name a tag member}} |
| template<typename T, typename U = T> |
| enum { K1Val = sizeof(T) } k1; |
| enum K2 { K2Val = sizeof(T)*2 } k2a; |
| s1.x = s2.x; // expected-error{{incompatible}} |
| typedef struct { T z; } type2; |
| template struct N2::Outer2::Inner<float>; |
| template struct N2::Outer2::Inner<int*, float*>; // expected-note{{instantiation}} |
| // Test dependent pointer-to-member expressions. |
| operator int safe_bool::*() const { |
| return ptr? &safe_bool::member : 0; |
| void test_smart_ptr(smart_ptr<int> p) { |