aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/fortran/ChangeLog4
-rw-r--r--gcc/fortran/module.c9
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gfortran.dg/module_implicit_conversion.f909
4 files changed, 25 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 2a49aa6..832f62c 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,7 @@
+2007-03-14 Jakub Jelinek <jakub@redhat.com>
+
+ * module.c (mio_typespec): Don't look at ts->cl if not BT_CHARACTER.
+
2007-03-13 Brooks Moses <brooks.moses@codesourcery.com>
PR fortran/30933
diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c
index 5b8bd55..af52ca9 100644
--- a/gcc/fortran/module.c
+++ b/gcc/fortran/module.c
@@ -1814,7 +1814,14 @@ mio_typespec (gfc_typespec *ts)
else
mio_symbol_ref (&ts->derived);
- mio_charlen (&ts->cl);
+ if (ts->type != BT_CHARACTER)
+ {
+ /* ts->cl is only valid for BT_CHARACTER. */
+ mio_lparen ();
+ mio_rparen ();
+ }
+ else
+ mio_charlen (&ts->cl);
mio_rparen ();
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 3007d98..d3713ed 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2007-03-14 Jakub Jelinek <jakub@redhat.com>
+
+ * gfortran.dg/module_implicit_conversion.f90: New test.
+
2007-03-13 Alexandre Oliva <aoliva@redhat.com>
PR middle-end/31127
diff --git a/gcc/testsuite/gfortran.dg/module_implicit_conversion.f90 b/gcc/testsuite/gfortran.dg/module_implicit_conversion.f90
new file mode 100644
index 0000000..d7835a7
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/module_implicit_conversion.f90
@@ -0,0 +1,9 @@
+! { dg-do compile }
+! { dg-options "-std=gnu" }
+
+module module_implicit_conversion
+ ! double complex :: s = (1.0D0, 0D0)
+ double complex :: s = (1.0, 0D0)
+end module module_implicit_conversion
+
+! { dg-final { cleanup-modules "module_implicit_conversion" } }