diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/fortran/decl.c | 10 |
2 files changed, 14 insertions, 4 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 5efa90c..956d73c 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -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> diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c index 82c67ae..0f3898f 100644 --- a/gcc/fortran/decl.c +++ b/gcc/fortran/decl.c @@ -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; |