Home | History | Annotate | Download | only in class.ctor
      1 // RUN: %clang_cc1 -fsyntax-only -verify %s
      2 struct X0 {
      3   struct type { };
      4 
      5   X0();
      6   X0(int);
      7   (X0)(float);
      8   X0 (f0)(int);
      9   X0 (f0)(type);
     10 
     11   X0 f1();
     12   X0 f1(double);
     13 };
     14 
     15 X0::X0() { }
     16 (X0::X0)(int) { }
     17 
     18 X0 (X0::f0)(int) { return X0(); }
     19 
     20 template<typename T>
     21 struct X1 {
     22   struct type { };
     23 
     24   X1<T>();
     25   X1<T>(int);
     26   (X1<T>)(float);
     27   X1(float, float);
     28   (X1)(double);
     29   X1<T> (f0)(int);
     30   X1<T> (f0)(type);
     31   X1 (f1)(int);
     32   X1 (f1)(type);
     33 
     34   template<typename U> X1(U);
     35   X1 f2();
     36   X1 f2(int);
     37 };
     38 
     39 template<typename T> X1<T>::X1() { }
     40 template<typename T> (X1<T>::X1)(double) { }
     41 template<typename T> X1<T> X1<T>::f1(int) { return 0; }
     42 template<typename T> X1<T> (X1<T>::f1)(type) { return 0; }
     43