diff options
author | Mark Mitchell <mark@codesourcery.com> | 2003-01-22 19:28:23 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 2003-01-22 19:28:23 +0000 |
commit | 4eb6d60937e81c6cb56eb2e421616955329d5e26 (patch) | |
tree | 3ad300368a1ffe2c41bdf62b87817fe2061e804e /gcc | |
parent | be0acd42690371d4e55d76c02e5b6ad8aa631a68 (diff) | |
download | gcc-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/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/cp/parser.c | 10 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/parse/using1.C | 1 |
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 "" } |