diff options
| -rw-r--r-- | clang/test/CXX/drs/dr0xx.cpp | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/clang/test/CXX/drs/dr0xx.cpp b/clang/test/CXX/drs/dr0xx.cpp index 001549164b9..29e1720b1bb 100644 --- a/clang/test/CXX/drs/dr0xx.cpp +++ b/clang/test/CXX/drs/dr0xx.cpp @@ -4,7 +4,7 @@ namespace dr1 { // dr1: no namespace X { extern "C" void dr1_f(int a = 1); } - namespace Y { extern "C" void dr1_f(int a = 2); } + namespace Y { extern "C" void dr1_f(int a = 1); } using X::dr1_f; using Y::dr1_f; void g() { dr1_f(0); @@ -25,7 +25,23 @@ namespace dr1 { // dr1: no } void X::z(int = 1) {} // expected-note {{previous}} namespace X { - void z(int = 2); // expected-error {{redefinition of default argument}} + void z(int = 1); // expected-error {{redefinition of default argument}} + } + + void i(int = 1); + void j() { + void i(int = 1); + using dr1::i; + i(0); + // FIXME: This should be rejected, due to the ambiguous default argument. + i(); + } + void k() { + using dr1::i; + void i(int = 1); + i(0); + // FIXME: This should be rejected, due to the ambiguous default argument. + i(); } } |

