dependent-base-member-init.cpp revision 0f2b97d1b0bfbcec727a386dc9e5cf06051cb29b
1// RUN: %clang_cc1 -fsyntax-only -verify %s 2 3// PR4381 4template<class T> struct X {}; 5template<typename T> struct Y : public X<T>::X { }; 6 7// PR4621 8class A1 { 9 A1(int x) {} 10}; 11template<class C> class B1 : public A1 { 12 B1(C x) : A1(x.x) {} 13}; 14class A2 { A2(int x, int y); }; 15template <class C> class B2 { 16 A2 x; 17 B2(C x) : x(x.x, x.y) {} 18}; 19template <class C> class B3 { 20 C x; 21 B3() : x(1,2) {} 22}; 23 24// PR4627 25template<typename _Container> class insert_iterator { 26 _Container* container; 27 insert_iterator(_Container& __x) : container(&__x) {} 28}; 29 30// PR4763 31template<typename T> struct s0 {}; 32template<typename T> struct s0_traits {}; 33template<typename T> struct s1 : s0<typename s0_traits<T>::t0> { 34 s1() {} 35}; 36 37// PR6062 38namespace 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 56template<typename T, typename U> 57struct X0 : T::template apply<U> { 58 X0(int i) : T::template apply<U>(i) { } 59}; 60 61// PR7698 62namespace PR7698 { 63 template<typename Type> 64 class A { 65 char mA[sizeof(Type *)]; 66 A(): mA() {} 67 }; 68} 69