1ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// RUN: %clang_cc1 -fsyntax-only -verify %s
2ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
3ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoclass C {
4ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaopublic:
5ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  void f(int i = 3); // expected-note{{here}}
6ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  void g(int i, int j = 99);
7ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao};
8ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
9ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaovoid C::f(int i = 3) { } // expected-error{{redefinition of default argument}}
10ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
11ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaovoid C::g(int i = 88, int j) { }
12ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
13ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaovoid test_C(C c) {
14ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  c.f();
15ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  c.g();
16ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}
17ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
18ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaotemplate<typename T>
19ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaostruct X0 {
20ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  void f(int);
21ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
22ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  struct Inner {
23ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao    void g(int);
24ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  };
25ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao};
26ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
27ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// DR217
28ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaotemplate<typename T>
29ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaovoid X0<T>::f(int = 17) { } // expected-error{{cannot be added}}
30ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
31ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// DR217 + DR205 (reading tea leaves)
32ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaotemplate<typename T>
33ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaovoid X0<T>::Inner::g(int = 17) { } // expected-error{{cannot be added}}
34