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);
 | 
						|
  }
 | 
						|
}
 |