diff options
author | Mikael Morin <mikael@gcc.gnu.org> | 2010-07-31 10:27:36 +0000 |
---|---|---|
committer | Mikael Morin <mikael@gcc.gnu.org> | 2010-07-31 10:27:36 +0000 |
commit | 951d634180a28c7c29eabedf1dc2348835708b5e (patch) | |
tree | b50f122afa9060807026a341587a53113334fbe9 | |
parent | 8aadc2f3e5d25589294430a7eb66edabcbced1ce (diff) | |
download | gcc-951d634180a28c7c29eabedf1dc2348835708b5e.zip gcc-951d634180a28c7c29eabedf1dc2348835708b5e.tar.gz gcc-951d634180a28c7c29eabedf1dc2348835708b5e.tar.bz2 |
re PR fortran/42051 ([OOP] ICE on array-valued function with CLASS formal argument)
2010-07-31 Mikael Morin <mikael@gcc.gnu.org>
PR fortran/42051
PR fortran/44064
* symbol.c (changed_syms): Made non-static.
* parse.c (changed_syms): Declare new external.
(next_statement): Assert changed_syms is NULL at the beginning.
From-SVN: r162776
-rw-r--r-- | gcc/fortran/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/fortran/parse.c | 4 | ||||
-rw-r--r-- | gcc/fortran/symbol.c | 2 |
3 files changed, 13 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index bf7d4d1..1bc2a1f 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,11 @@ +2010-07-31 Mikael Morin <mikael@gcc.gnu.org> + + PR fortran/42051 + PR fortran/44064 + * symbol.c (changed_syms): Made non-static. + * parse.c (changed_syms): Declare new external. + (next_statement): Assert changed_syms is NULL at the beginning. + 2010-07-30 Janus Weil <janus@gcc.gnu.org> Steven G. Kargl <kargl@gcc.gnu.org> diff --git a/gcc/fortran/parse.c b/gcc/fortran/parse.c index 989d644..94440e9 100644 --- a/gcc/fortran/parse.c +++ b/gcc/fortran/parse.c @@ -879,6 +879,7 @@ blank_line: return ST_NONE; } +extern gfc_symbol *changed_syms; /* Return the next non-ST_NONE statement to the caller. We also worry about including files and the ends of include files at this stage. */ @@ -889,6 +890,9 @@ next_statement (void) gfc_statement st; locus old_locus; + /* We start with a clean state. */ + gcc_assert (changed_syms == NULL); + gfc_new_block = NULL; gfc_current_ns->old_cl_list = gfc_current_ns->cl_list; diff --git a/gcc/fortran/symbol.c b/gcc/fortran/symbol.c index e713cd8..0231da1 100644 --- a/gcc/fortran/symbol.c +++ b/gcc/fortran/symbol.c @@ -98,7 +98,7 @@ gfc_namespace *gfc_global_ns_list; gfc_gsymbol *gfc_gsym_root = NULL; -static gfc_symbol *changed_syms = NULL; +gfc_symbol *changed_syms = NULL; gfc_dt_list *gfc_derived_types; |