From adcc62c7677c3bf0a81301d2103e87082a9d7cce Mon Sep 17 00:00:00 2001 From: Volker Reichelt Date: Sun, 30 Mar 2008 22:02:06 +0000 Subject: [PATCH] re PR c++/35578 (Error about misplaced 'friend' word is issued on a wrong line) PR c++/35578 * parser.c (cp_parser_decl_specifier_seq): Add location to error message. * g++.dg/parse/friend8.C: New test. From-SVN: r133738 --- gcc/cp/ChangeLog | 6 ++++++ gcc/cp/parser.c | 2 +- gcc/testsuite/ChangeLog | 3 +++ gcc/testsuite/g++.dg/parse/friend8.C | 8 ++++++++ 4 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/g++.dg/parse/friend8.C diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 9627a53..ac3deb4 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2008-03-30 Volker Reichelt + + PR c++/35578 + * parser.c (cp_parser_decl_specifier_seq): Add location to error + message. + 2008-03-27 Tom Tromey * Make-lang.in: Revert automatic dependency patch. diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 35a2fc3..bb16edf 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -8103,7 +8103,7 @@ cp_parser_decl_specifier_seq (cp_parser* parser, case RID_FRIEND: if (!at_class_scope_p ()) { - error ("% used outside of class"); + error ("%H% used outside of class", &token->location); cp_lexer_purge_token (parser->lexer); } else diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e7e4b30..515f5fd 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,8 @@ 2008-03-30 Volker Reichelt + PR c++/35578 + * g++.dg/parse/friend8.C: New test. + PR c/35748 * gcc.dg/union-cast-4.c: New test. diff --git a/gcc/testsuite/g++.dg/parse/friend8.C b/gcc/testsuite/g++.dg/parse/friend8.C new file mode 100644 index 0000000..aac5f0e --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/friend8.C @@ -0,0 +1,8 @@ +// PR c++/35578 +// Check position of error message +// { dg-do compile } + +int i; + +friend // { dg-error "friend" } + void foo(); -- 2.7.4