|  | // 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<6U>' 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); | 
|  | } | 
|  | } |