// RUN: %clang_cc1 -fsyntax-only -std=c++11 -verify %s
structfoo{int i;foo();foo(int);foo(int,int);foo(bool);foo(char);foo(constfloat*);foo(constfloat&);foo(void*);};// Good
foo::foo (inti):i(i){}// Good
foo::foo ():foo(-1){}// Good
foo::foo (int,int):foo(){}foo::foo (bool):foo(true){// expected-error{{creates a delegation cycle}}
}// Good
foo::foo (constfloat*f):foo(*f){// expected-note{{it delegates to}}
}foo::foo (constfloat&f):foo(&f){//expected-error{{creates a delegation cycle}} \
//expected-note{{which delegates to}}
}foo::foo (char):i(3),foo(3){// expected-error{{must appear alone}}
}// This should not cause an infinite loop
foo::foo (void*):foo(4.0f){}structdeleted_dtor{~deleted_dtor()=delete;// expected-note{{'~deleted_dtor' has been explicitly marked deleted here}}
deleted_dtor();deleted_dtor(int):deleted_dtor()// expected-error{{attempt to use a deleted function}}
{}};