diff options
author | Tobias Burnus <burnus@net-b.de> | 2012-02-01 20:06:07 +0100 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2012-02-01 20:06:07 +0100 |
commit | 6b6cd722f329a168f98d1f421834cf40bb33a77d (patch) | |
tree | 9283dd2dfbbff9817bd6557c7d780c37a4e98826 /gcc/fortran/module.c | |
parent | 887ee29f8e30cfa163eb584b0d6d40689679b639 (diff) | |
download | gcc-6b6cd722f329a168f98d1f421834cf40bb33a77d.zip gcc-6b6cd722f329a168f98d1f421834cf40bb33a77d.tar.gz gcc-6b6cd722f329a168f98d1f421834cf40bb33a77d.tar.bz2 |
re PR fortran/52024 ([OOP] GENERIC operator cannot be resolved)
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 <burnus@net-b.de>
PR fortran/52024
* gfortran.dg/typebound_operator_14.f90: New.
From-SVN: r183808
Diffstat (limited to 'gcc/fortran/module.c')
-rw-r--r-- | gcc/fortran/module.c | 12 |
1 files changed, 10 insertions, 2 deletions
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); |