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