diff options
| -rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/testsuite/g++.dg/lookup/using9.C | 30 |
2 files changed, 35 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 3e9f9fa..a8c2306 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2003-11-14 Giovanni Bajo <giovannibajo@libero.it> + + PR c++/2294 + * g++.dg/lookup/using9.c: New test. + 2003-11-14 Mark Mitchell <mark@codesourcery.com> PR c++/12762 diff --git a/gcc/testsuite/g++.dg/lookup/using9.C b/gcc/testsuite/g++.dg/lookup/using9.C new file mode 100644 index 0000000..c622675 --- /dev/null +++ b/gcc/testsuite/g++.dg/lookup/using9.C @@ -0,0 +1,30 @@ +// { dg-do compile } +// Origin: C++ Standard Draft (7.3.3/12) +// PR c++/2294: using declarations should not conflict, but only cause +// an ambiguous overload set to be created. + +namespace B { + void f(int); // { dg-error "note" } + void f(double); // { dg-error "note" } +} + +namespace C { + void f(int); // { dg-error "note" } + void f(double); // { dg-error "note" } + void f(char); // { dg-error "note" } +} + +void h() +{ + using B::f; + using C::f; + f('h'); + f(1); // { dg-error "ambiguous" } + void f(int); // { dg-error "previous using declaration" } +} + +void m() +{ + void f(int); + using B::f; // { dg-error "already declared" } +} |
