// RUN: %clang_cc1 -fsyntax-only -verify %s | |
int* f(int); | |
float *f(...); | |
template<typename T> | |
struct X { | |
typedef typeof(T*) typeof_type; | |
typedef typeof(f(T())) typeof_expr; | |
}; | |
int *iptr0; | |
float *fptr0; | |
X<int>::typeof_type &iptr1 = iptr0; | |
X<int>::typeof_expr &iptr2 = iptr0; | |
X<float*>::typeof_expr &fptr1 = fptr0; | |
namespace rdar13094134 { | |
template <class> | |
class X { | |
typedef struct { | |
Y *y; // expected-error{{unknown type name 'Y'}} | |
} Y; | |
}; | |
X<int> xi; | |
} |