aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2012-02-01 20:06:07 +0100
committerTobias Burnus <burnus@gcc.gnu.org>2012-02-01 20:06:07 +0100
commit6b6cd722f329a168f98d1f421834cf40bb33a77d (patch)
tree9283dd2dfbbff9817bd6557c7d780c37a4e98826 /gcc/fortran
parent887ee29f8e30cfa163eb584b0d6d40689679b639 (diff)
downloadgcc-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')
-rw-r--r--gcc/fortran/ChangeLog7
-rw-r--r--gcc/fortran/module.c12
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 = &current_f2k_derived->tb_sym_root;
g->specific_st = gfc_get_tbp_symtree (sym_root, atom_string);