aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>2001-10-27 14:05:34 +0000
committerKriang Lerdsuwanakij <lerdsuwa@gcc.gnu.org>2001-10-27 14:05:34 +0000
commit765430000ddb057aa1269539ffed21bdb988ad87 (patch)
tree4e90340eaf363251d63f8d9fa396d392a8b52ab5
parent7dddfb65cf6a30894855f54f7eeb7850879d7813 (diff)
downloadgcc-765430000ddb057aa1269539ffed21bdb988ad87.zip
gcc-765430000ddb057aa1269539ffed21bdb988ad87.tar.gz
gcc-765430000ddb057aa1269539ffed21bdb988ad87.tar.bz2
* decl2.c (validate_nonmember_using_decl): Handle NAMESPACE_DECL.
From-SVN: r46565
-rw-r--r--gcc/cp/ChangeLog4
-rw-r--r--gcc/cp/decl2.c5
-rw-r--r--gcc/testsuite/g++.dg/lookup/using2.C2
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 {