aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2003-01-22 19:28:23 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2003-01-22 19:28:23 +0000
commit4eb6d60937e81c6cb56eb2e421616955329d5e26 (patch)
tree3ad300368a1ffe2c41bdf62b87817fe2061e804e /gcc
parentbe0acd42690371d4e55d76c02e5b6ad8aa631a68 (diff)
downloadgcc-4eb6d60937e81c6cb56eb2e421616955329d5e26.zip
gcc-4eb6d60937e81c6cb56eb2e421616955329d5e26.tar.gz
gcc-4eb6d60937e81c6cb56eb2e421616955329d5e26.tar.bz2
re PR c++/9384 (ICE in validate_nonmember_using_decl, at cp/decl2.c:4152)
PR c++/9384 * parser.c (cp_parser_using_declaration): Issue error messages about name resolution failures here. PR c++/9384 * g++.dg/parse/using1.C: New test. From-SVN: r61611
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog4
-rw-r--r--gcc/cp/parser.c10
-rw-r--r--gcc/testsuite/ChangeLog3
-rw-r--r--gcc/testsuite/g++.dg/parse/using1.C1
4 files changed, 17 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 3bc0455..02262fd 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,9 @@
2003-01-22 Mark Mitchell <mark@codesourcery.com>
+ PR c++/9384
+ * parser.c (cp_parser_using_declaration): Issue error messages
+ about name resolution failures here.
+
PR c++/9388
* class.c (currently_open_derived_class): Use dependent_type_p.
* cp-tree.h (dependent_type_p): New function.
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c
index df9284c8..7f4eeaf 100644
--- a/gcc/cp/parser.c
+++ b/gcc/cp/parser.c
@@ -9219,7 +9219,15 @@ cp_parser_using_declaration (parser)
else
{
decl = cp_parser_lookup_name_simple (parser, identifier);
- if (scope)
+ if (decl == error_mark_node)
+ {
+ if (parser->scope && parser->scope != global_namespace)
+ error ("`%D::%D' has not been declared",
+ parser->scope, identifier);
+ else
+ error ("`::%D' has not been declared", identifier);
+ }
+ else if (scope)
do_local_using_decl (decl);
else
do_toplevel_using_decl (decl);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index cbf0ad9..1bc7453 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,8 @@
2003-01-22 Mark Mitchell <mark@codesourcery.com>
+ PR c++/9384
+ * g++.dg/parse/using1.C: New test.
+
PR c++/9285
PR c++/9294
* g++.dg/parse/expr2.C: New test.
diff --git a/gcc/testsuite/g++.dg/parse/using1.C b/gcc/testsuite/g++.dg/parse/using1.C
new file mode 100644
index 0000000..efe7a0e
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/using1.C
@@ -0,0 +1 @@
+namespace A { using ::B; } // { dg-error "" }