19ae60d54e4454192384933f3020968ea5c8c3540Sean Hunt// RUN: %clang_cc1 -fsyntax-only -verify %s
20a62984eab0ab25ed0d0d974e6753a75447e404eSean Hunt// RUN: %clang_cc1 -Wno-default-arg-special-member -Werror -fsyntax-only %s
39ae60d54e4454192384933f3020968ea5c8c3540Sean Hunt
49ae60d54e4454192384933f3020968ea5c8c3540Sean Huntclass foo {
59ae60d54e4454192384933f3020968ea5c8c3540Sean Hunt  foo(foo&, int); // expected-note {{was not a special member function}}
69ae60d54e4454192384933f3020968ea5c8c3540Sean Hunt  foo(int); // expected-note {{was not a special member function}}
79ae60d54e4454192384933f3020968ea5c8c3540Sean Hunt  foo(const foo&); // expected-note {{was a copy constructor}}
89ae60d54e4454192384933f3020968ea5c8c3540Sean Hunt};
99ae60d54e4454192384933f3020968ea5c8c3540Sean Hunt
109ae60d54e4454192384933f3020968ea5c8c3540Sean Huntfoo::foo(foo&, int = 0) { } // expected-warning {{makes this constructor a copy constructor}}
119ae60d54e4454192384933f3020968ea5c8c3540Sean Huntfoo::foo(int = 0) { } // expected-warning {{makes this constructor a default constructor}}
129ae60d54e4454192384933f3020968ea5c8c3540Sean Huntfoo::foo(const foo& = 0) { } //expected-warning {{makes this constructor a default constructor}}
13