diff options
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 "" } |
