1 // RUN: %clang_cc1 -fsyntax-only -verify %s 2 3 // PR4381 4 template<class T> struct X {}; 5 template<typename T> struct Y : public X<T>::X { }; 6 7 // PR4621 8 class A1 { 9 A1(int x) {} 10 }; 11 template<class C> class B1 : public A1 { 12 B1(C x) : A1(x.x) {} 13 }; 14 class A2 { A2(int x, int y); }; 15 template <class C> class B2 { 16 A2 x; 17 B2(C x) : x(x.x, x.y) {} 18 }; 19 template <class C> class B3 { 20 C x; 21 B3() : x(1,2) {} 22 }; 23 24 // PR4627 25 template<typename _Container> class insert_iterator { 26 _Container* container; 27 insert_iterator(_Container& __x) : container(&__x) {} 28 }; 29 30 // PR4763 31 template<typename T> struct s0 {}; 32 template<typename T> struct s0_traits {}; 33 template<typename T> struct s1 : s0<typename s0_traits<T>::t0> { 34 s1() {} 35 }; 36 37 // PR6062 38 namespace PR6062 { 39 template <typename T> 40 class A : public T::type 41 { 42 A() : T::type() 43 { 44 } 45 46 template <typename U> 47 A(U const& init) 48 : T::type(init) 49 { } 50 51 template<typename U> 52 A(U& init) : U::other_type(init) { } 53 }; 54 } 55 56 template<typename T, typename U> 57 struct X0 : T::template apply<U> { 58 X0(int i) : T::template apply<U>(i) { } 59 }; 60 61 // PR7698 62 namespace PR7698 { 63 template<typename Type> 64 class A { 65 char mA[sizeof(Type *)]; 66 A(): mA() {} 67 }; 68 } 69