forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			50 lines
		
	
	
		
			708 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			708 B
		
	
	
	
		
			C++
		
	
	
	
| // RUN: %clang_cc1 -fsyntax-only -std=c++11 %s -verify 
 | |
| 
 | |
| namespace PR10457 {
 | |
| 
 | |
|   class string
 | |
|   {
 | |
|     string(const char* str, unsigned);
 | |
| 
 | |
|   public:
 | |
|     template <unsigned N>
 | |
|     string(const char (&str)[N])
 | |
|       : string(str) {} // expected-error{{constructor for 'string<6>' creates a delegation cycle}}
 | |
|   };
 | |
| 
 | |
|   void f() {
 | |
|     string s("hello");
 | |
|   }
 | |
| 
 | |
|   struct Foo {
 | |
|    Foo(int) { }
 | |
| 
 | |
| 
 | |
|    template <typename T>
 | |
|    Foo(T, int i) : Foo(i) { }
 | |
| };
 | |
| 
 | |
|   void test_Foo()
 | |
|   {
 | |
|     Foo f(1, 1);
 | |
|   }
 | |
| }
 | |
| 
 | |
| namespace PR12890 {
 | |
|   class Document
 | |
|   {
 | |
|   public:
 | |
|       Document() = default;
 | |
| 
 | |
|       template <class T>
 | |
|       explicit
 | |
|       Document(T&& t) : Document()
 | |
|       {
 | |
|       }
 | |
|   };
 | |
|   void f()
 | |
|   {
 | |
|       Document d(1);
 | |
|   }
 | |
| }
 |