diff options
author | Volker Reichelt <reichelt@igpm.rwth-aachen.de> | 2005-10-17 22:22:30 +0000 |
---|---|---|
committer | Volker Reichelt <reichelt@gcc.gnu.org> | 2005-10-17 22:22:30 +0000 |
commit | 0ef8776d01a50a33031e4bbc3ee03349bf7de862 (patch) | |
tree | 17b5d7c8ffa253c8d27c1450f2e0aca70beccc92 | |
parent | 4213f93b6aea64f4ea5f8a539a3f0ad912bec1d2 (diff) | |
download | gcc-0ef8776d01a50a33031e4bbc3ee03349bf7de862.zip gcc-0ef8776d01a50a33031e4bbc3ee03349bf7de862.tar.gz gcc-0ef8776d01a50a33031e4bbc3ee03349bf7de862.tar.bz2 |
re PR c++/23440 ("void f(){for" crashes the C++ frontend)
PR c++/23440
* parser.c (cp_parser_statement): If the parser reached CPP_EOF,
only complain about missing statement.
* g++.dg/parse/for1.C: New test.
From-SVN: r105520
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/parser.c | 5 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/parse/for1.C | 7 |
4 files changed, 23 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 08344ee..6223540 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2005-10-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de> + + PR c++/23440 + * parser.c (cp_parser_statement): If the parser reached CPP_EOF, + only complain about missing statement. + 2005-10-17 Nathan Sidwell <nathan@codesourcery.com> PR c++/24386 diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 45fc69f..300c266 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -6087,6 +6087,11 @@ cp_parser_statement (cp_parser* parser, tree in_statement_expr) cp_lexer_handle_pragma (parser->lexer); return; } + else if (token->type == CPP_EOF) + { + cp_parser_error (parser, "expected statement"); + return; + } /* Everything else must be a declaration-statement or an expression-statement. Try for the declaration-statement diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 5e1d0af..0815420 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-10-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de> + + PR c++/23440 + * g++.dg/parse/for1.C: New test. + 2005-10-17 Paul Thomas <pault@gcc.gnu.org> PR fortran/23446 diff --git a/gcc/testsuite/g++.dg/parse/for1.C b/gcc/testsuite/g++.dg/parse/for1.C new file mode 100644 index 0000000..1e310ee --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/for1.C @@ -0,0 +1,7 @@ +// PR c++/23440 +// Origin: Volker Reichelt <reichelt@igpm.rwth-aachen.de> +// { dg-do compile } +// { dg-options "" } + +# 0 "for1.C" +void foo() { for (;;) // { dg-error "at end of input" "" { target *-*-* } 0 } |