re PR c++/53003 (Internal compiler error on short testcase)

/cp
2012-04-17  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/53003
	* parser.c (cp_parser_member_declaration): Check that
	initializer_token_start is non null before dereferencing it.

/testsuite
2012-04-17  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/53003
	* g++.dg/parse/crash59.C: New.

From-SVN: r186544
This commit is contained in:
Paolo Carlini 2012-04-17 17:45:25 +00:00 committed by Paolo Carlini
parent 8eadf4cf06
commit 2b874a6b85
4 changed files with 15 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2012-04-17 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/53003
* parser.c (cp_parser_member_declaration): Check that
initializer_token_start is non null before dereferencing it.
2012-04-16 Jason Merrill <jason@redhat.com>
PR c++/38543

View File

@ -19105,7 +19105,7 @@ cp_parser_member_declaration (cp_parser* parser)
possible that this fact is an oversight in the
standard, since a pure function may be defined
outside of the class-specifier. */
if (initializer)
if (initializer && initializer_token_start)
error_at (initializer_token_start->location,
"pure-specifier on function-definition");
decl = cp_parser_save_member_function_body (parser,

View File

@ -1,3 +1,8 @@
2012-04-17 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/53003
* g++.dg/parse/crash59.C: New.
2012-04-16 Jason Merrill <jason@redhat.com>
PR c++/38543

View File

@ -0,0 +1,3 @@
// PR c++/53003
struct A{ void a{} return b // { dg-error "function definition|expected" }