diff options
| author | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-03-13 20:54:36 +0000 |
|---|---|---|
| committer | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-03-13 20:54:36 +0000 |
| commit | 2addbfadb57f6d5906d268f5df97524812b0c827 (patch) | |
| tree | 2b41f95c6fb257708d495e55a5b27d63e19beb7c | |
| parent | e46b94b60fc064ca152c2face1e4e42d5d33bfc9 (diff) | |
| download | ppe42-gcc-2addbfadb57f6d5906d268f5df97524812b0c827.tar.gz ppe42-gcc-2addbfadb57f6d5906d268f5df97524812b0c827.zip | |
* decl2.c (do_nonmember_using_decl): Correct handling of
simultaneous type/non-type bindings.
* g++.dg/parse/namespace9.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@64323 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/cp/ChangeLog | 3 | ||||
| -rw-r--r-- | gcc/cp/decl2.c | 7 | ||||
| -rw-r--r-- | gcc/testsuite/ChangeLog | 2 | ||||
| -rw-r--r-- | gcc/testsuite/g++.dg/parse/namespace9.C | 8 |
4 files changed, 20 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 6a679d24fe3..29166882d5f 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,8 @@ 2003-03-13 Mark Mitchell <mark@codesourcery.com> + * decl2.c (do_nonmember_using_decl): Correct handling of + simultaneous type/non-type bindings. + * call.c (initialize_reference): Remove bogus assertion. * decl.c (build_ptrmemfunc_type): Revert change of 2003-03-09. diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c index b4654c9036f..fb25127da33 100644 --- a/gcc/cp/decl2.c +++ b/gcc/cp/decl2.c @@ -4222,6 +4222,13 @@ do_nonmember_using_decl (tree scope, tree name, tree oldval, tree oldtype, { tree tmp, tmp1; + if (oldval && !is_overloaded_fn (oldval)) + { + if (!DECL_IMPLICIT_TYPEDEF_P (oldval)) + error ("`%D' is already declared in this scope", name); + oldval = NULL_TREE; + } + *newval = oldval; for (tmp = BINDING_VALUE (decls); tmp; tmp = OVL_NEXT (tmp)) { diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 3407e5ccb5a..1cf08340a14 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,7 @@ 2003-03-13 Mark Mitchell <mark@codesourcery.com> + * g++.dg/parse/namespace9.C: New test. + * g++.dg/init/ref5.C: New test. * g++.dg/parse/ptrmem1.C: Likewise. diff --git a/gcc/testsuite/g++.dg/parse/namespace9.C b/gcc/testsuite/g++.dg/parse/namespace9.C new file mode 100644 index 00000000000..7ff0267bff3 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/namespace9.C @@ -0,0 +1,8 @@ +namespace A { + void f(); +} +int g() +{ + struct f { }; + using A::f; +} |

