diff options
| -rw-r--r-- | gcc/cp/ChangeLog | 4 | ||||
| -rw-r--r-- | gcc/cp/decl2.c | 5 | ||||
| -rw-r--r-- | gcc/testsuite/g++.dg/lookup/using2.C | 2 |
3 files changed, 11 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 5fbcc47..848411d 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,7 @@ +2001-10-27 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> + + * decl2.c (validate_nonmember_using_decl): Handle NAMESPACE_DECL. + 2001-10-25 Zack Weinberg <zack@codesourcery.com> * cp-lang.c: Redefine LANG_HOOKS_CLEAR_BINDING_STACK to diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c index f384f0a..e215cd6 100644 --- a/gcc/cp/decl2.c +++ b/gcc/cp/decl2.c @@ -4877,6 +4877,11 @@ validate_nonmember_using_decl (decl, scope, name) *scope = global_namespace; *name = decl; } + else if (TREE_CODE (decl) == NAMESPACE_DECL) + { + cp_error ("namespace `%D' not allowed in using-declaration", decl); + return NULL_TREE; + } else my_friendly_abort (382); if (DECL_P (*name)) diff --git a/gcc/testsuite/g++.dg/lookup/using2.C b/gcc/testsuite/g++.dg/lookup/using2.C index aac3342..92f134e 100644 --- a/gcc/testsuite/g++.dg/lookup/using2.C +++ b/gcc/testsuite/g++.dg/lookup/using2.C @@ -25,6 +25,8 @@ namespace N template<int> void f() {} } +using N; // { dg-error "parse error" "" } +using ::N; // { dg-error "using-declaration" "" } using N::f< 0 >; // { dg-error "using-declaration" "" } struct A { |
