1 // RUN: %clang_cc1 -fsyntax-only -std=c++11 %s -verify 2 3 namespace PR10457 { 4 5 class string 6 { 7 string(const char* str, unsigned); 8 9 public: 10 template <unsigned N> string(const char (& str)[N])11 string(const char (&str)[N]) 12 : string(str) {} // expected-error{{constructor for 'string<6>' creates a delegation cycle}} 13 }; 14 f()15 void f() { 16 string s("hello"); 17 } 18 19 struct Foo { FooPR10457::Foo20 Foo(int) { } 21 22 23 template <typename T> FooPR10457::Foo24 Foo(T, int i) : Foo(i) { } 25 }; 26 test_Foo()27 void test_Foo() 28 { 29 Foo f(1, 1); 30 } 31 } 32 33 namespace PR12890 { 34 class Document 35 { 36 public: 37 Document() = default; 38 39 template <class T> 40 explicit Document(T && t)41 Document(T&& t) : Document() 42 { 43 } 44 }; f()45 void f() 46 { 47 Document d(1); 48 } 49 } 50