70 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| // RUN: %clang_cc1 -fsyntax-only -verify %s
 | |
| // expected-no-diagnostics
 | |
| 
 | |
| // PR4381
 | |
| template<class T> struct X {};
 | |
| template<typename T> struct Y : public X<T>::X { };
 | |
| 
 | |
| // PR4621
 | |
| class A1 {
 | |
|   A1(int x) {}
 | |
| };
 | |
| template<class C> class B1 : public A1 {
 | |
|   B1(C x) : A1(x.x) {}
 | |
| };
 | |
| class A2 { A2(int x, int y); };
 | |
| template <class C> class B2 {
 | |
|   A2 x;
 | |
|   B2(C x) : x(x.x, x.y) {}
 | |
| };
 | |
| template <class C> class B3 {
 | |
|   C x;
 | |
|   B3() : x(1,2) {}
 | |
| };
 | |
| 
 | |
| // PR4627
 | |
| template<typename _Container> class insert_iterator {
 | |
|     _Container* container;
 | |
|     insert_iterator(_Container& __x) : container(&__x) {}
 | |
| };
 | |
| 
 | |
| // PR4763
 | |
| template<typename T> struct s0 {};
 | |
| template<typename T> struct s0_traits {};
 | |
| template<typename T> struct s1 : s0<typename s0_traits<T>::t0> {
 | |
|   s1() {}
 | |
| };
 | |
| 
 | |
| // PR6062
 | |
| namespace PR6062 {
 | |
|   template <typename T>
 | |
|   class A : public T::type
 | |
|   {
 | |
|     A() : T::type()
 | |
|     {  
 | |
|     }
 | |
|     
 | |
|     template <typename U>
 | |
|     A(U const& init)
 | |
|       : T::type(init)
 | |
|     { }
 | |
| 
 | |
|     template<typename U>
 | |
|     A(U& init) : U::other_type(init) { }
 | |
|   };
 | |
| }
 | |
| 
 | |
| template<typename T, typename U>
 | |
| struct X0 : T::template apply<U> {
 | |
|   X0(int i) : T::template apply<U>(i) { }
 | |
| };
 | |
| 
 | |
| // PR7698
 | |
| namespace PR7698 {
 | |
|   template<typename Type>
 | |
|   class A {
 | |
|     char mA[sizeof(Type *)];
 | |
|     A(): mA() {}
 | |
|   };
 | |
| }
 | 
