Home | History | Annotate | Download | only in SemaTemplate
      1 // RUN: %clang_cc1 -fsyntax-only -verify %s
      2 
      3 int* f(int);
      4 float *f(...);
      5 
      6 template<typename T>
      7 struct X {
      8   typedef typeof(T*) typeof_type;
      9   typedef typeof(f(T())) typeof_expr;
     10 };
     11 
     12 int *iptr0;
     13 float *fptr0;
     14 X<int>::typeof_type &iptr1 = iptr0;
     15 
     16 X<int>::typeof_expr &iptr2 = iptr0;
     17 X<float*>::typeof_expr &fptr1 = fptr0;
     18 
     19 namespace rdar13094134 {
     20   template <class>
     21   class X {
     22     typedef struct {
     23       Y *y; // expected-error{{unknown type name 'Y'}}
     24     } Y;
     25   };
     26 
     27   X<int> xi;
     28 }
     29