re PR fortran/43029 (enum_5.f90 ICE under valgrind)

PR fortran/43029
	* decl.c (enumerator_decl): Don't call gfc_free_enum_history
	here.
	(gfc_match_enumerator_def): But here whenever enumerator_decl returns
	MATCH_ERROR.

From-SVN: r156709
This commit is contained in:
Jakub Jelinek 2010-02-11 20:31:35 +01:00 committed by Jakub Jelinek
parent 4094aee8bf
commit 01e64c3dc7
2 changed files with 14 additions and 4 deletions

View File

@ -1,3 +1,11 @@
2010-02-11 Jakub Jelinek <jakub@redhat.com>
PR fortran/43029
* decl.c (enumerator_decl): Don't call gfc_free_enum_history
here.
(gfc_match_enumerator_def): But here whenever enumerator_decl returns
MATCH_ERROR.
2010-02-10 Joost VandeVondele <jv244@cam.ac.uk>
Tobias Burnus <burnus@net-b.de>

View File

@ -7124,10 +7124,9 @@ enumerator_decl (void)
if (initializer == NULL || initializer->ts.type != BT_INTEGER)
{
gfc_error("ENUMERATOR %L not initialized with integer expression",
&var_locus);
gfc_error ("ENUMERATOR %L not initialized with integer expression",
&var_locus);
m = MATCH_ERROR;
gfc_free_enum_history ();
goto cleanup;
}
@ -7193,7 +7192,10 @@ gfc_match_enumerator_def (void)
{
m = enumerator_decl ();
if (m == MATCH_ERROR)
goto cleanup;
{
gfc_free_enum_history ();
goto cleanup;
}
if (m == MATCH_NO)
break;