From 3ea04f082b08f8f9f31c016d4a5927a3db4e9c4e Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Wed, 14 Mar 2007 13:16:24 +0100 Subject: [PATCH] module.c (mio_typespec): Don't look at ts->cl if not BT_CHARACTER. * module.c (mio_typespec): Don't look at ts->cl if not BT_CHARACTER. * gfortran.dg/module_implicit_conversion.f90: New test. From-SVN: r122915 --- gcc/fortran/ChangeLog | 4 ++++ gcc/fortran/module.c | 9 ++++++++- gcc/testsuite/ChangeLog | 4 ++++ gcc/testsuite/gfortran.dg/module_implicit_conversion.f90 | 9 +++++++++ 4 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gfortran.dg/module_implicit_conversion.f90 diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 2a49aa66846..832f62ca8fc 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,7 @@ +2007-03-14 Jakub Jelinek + + * module.c (mio_typespec): Don't look at ts->cl if not BT_CHARACTER. + 2007-03-13 Brooks Moses PR fortran/30933 diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c index 5b8bd550f9a..af52ca9942e 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 3007d98f41e..d3713ed19ec 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2007-03-14 Jakub Jelinek + + * gfortran.dg/module_implicit_conversion.f90: New test. + 2007-03-13 Alexandre Oliva 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 00000000000..d7835a7f961 --- /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" } } -- 2.30.2