diff options
Diffstat (limited to 'gcc/fortran')
-rw-r--r-- | gcc/fortran/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/fortran/module.c | 12 |
2 files changed, 17 insertions, 2 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 2a7cc28..794101b 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,10 @@ +2012-02-01 Tobias Burnus <burnus@net-b.de> + + PR fortran/52024 + * module.c (MOD_VERSION): Bump. + (mio_typebound_proc): Read/write is_operator from/to the + .mod file. + 2012-02-01 Tobias Burnus PR fortran/52059 diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c index c68277b..5e0f26e 100644 --- a/gcc/fortran/module.c +++ b/gcc/fortran/module.c @@ -81,7 +81,7 @@ along with GCC; see the file COPYING3. If not see /* Don't put any single quote (') in MOD_VERSION, if yout want it to be recognized. */ -#define MOD_VERSION "8" +#define MOD_VERSION "9" /* Structure that describes a position within a module file. */ @@ -3578,12 +3578,17 @@ mio_typebound_proc (gfc_typebound_proc** proc) if ((*proc)->is_generic) { gfc_tbp_generic* g; + int iop; mio_lparen (); if (iomode == IO_OUTPUT) for (g = (*proc)->u.generic; g; g = g->next) - mio_allocated_string (g->specific_st->name); + { + iop = (int) g->is_operator; + mio_integer (&iop); + mio_allocated_string (g->specific_st->name); + } else { (*proc)->u.generic = NULL; @@ -3594,6 +3599,9 @@ mio_typebound_proc (gfc_typebound_proc** proc) g = gfc_get_tbp_generic (); g->specific = NULL; + mio_integer (&iop); + g->is_operator = (bool) iop; + require_atom (ATOM_STRING); sym_root = ¤t_f2k_derived->tb_sym_root; g->specific_st = gfc_get_tbp_symtree (sym_root, atom_string); |