re PR c++/37789 (ICE with __FUNCTION__)

gcc/cp

2009-02-26  H.J. Lu  <hongjiu.lu@intel.com>

	PR c++/37789
	* parser.c (cp_parser_mem_initializer): Return error_mark_node
	if cp_parser_mem_initializer_id returns error_mark_node.

gcc/testsuite/

2009-02-26  H.J. Lu  <hongjiu.lu@intel.com>

	PR c++/37789
	* other/pr37789.C: New.

From-SVN: r144451
This commit is contained in:
H.J. Lu 2009-02-26 19:59:38 +00:00 committed by H.J. Lu
parent 9dadeeb83c
commit aad5badd41
4 changed files with 23 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2009-02-26 H.J. Lu <hongjiu.lu@intel.com>
PR c++/37789
* parser.c (cp_parser_mem_initializer): Return error_mark_node
if cp_parser_mem_initializer_id returns error_mark_node.
2009-02-24 Richard Guenther <rguenther@suse.de>
PR c++/39242

View File

@ -9200,7 +9200,11 @@ cp_parser_mem_initializer (cp_parser* parser)
mem_initializer_id = NULL_TREE;
}
else
mem_initializer_id = cp_parser_mem_initializer_id (parser);
{
mem_initializer_id = cp_parser_mem_initializer_id (parser);
if (mem_initializer_id == error_mark_node)
return mem_initializer_id;
}
member = expand_member_init (mem_initializer_id);
if (member && !DECL_P (member))
in_base_initializer = 1;

View File

@ -1,3 +1,8 @@
2009-02-26 H.J. Lu <hongjiu.lu@intel.com>
PR c++/37789
* other/pr37789.C: New.
2009-02-26 Paul Thomas <pault@gcc.gnu.org>
PR fortran/39295

View File

@ -0,0 +1,7 @@
// PR c++/37789
// { dg-do compile }
void foo():
{ // { dg-error "initializers|identifier" }
__FUNCTION__;
}