diff options
author | Janus Weil <janus@gcc.gnu.org> | 2011-05-20 20:05:26 +0200 |
---|---|---|
committer | Janus Weil <janus@gcc.gnu.org> | 2011-05-20 20:05:26 +0200 |
commit | 54381af7343506f3be32c51921faae1045fc5574 (patch) | |
tree | db4f9bd4f2eab6673b597bf99d85f53e1a45dbf4 /gcc | |
parent | 94df301fa033641561145d44ed48cf4c85d43a2c (diff) | |
download | gcc-54381af7343506f3be32c51921faae1045fc5574.zip gcc-54381af7343506f3be32c51921faae1045fc5574.tar.gz gcc-54381af7343506f3be32c51921faae1045fc5574.tar.bz2 |
re PR fortran/48706 (Type extension inside subroutine)
2011-05-20 Janus Weil <janus@gcc.gnu.org>
PR fortran/48706
* module.c (write_dt_extensions): Do not write extended types which
are local to a subroutine.
2011-05-20 Janus Weil <janus@gcc.gnu.org>
PR fortran/48706
* gfortran.dg/extends_12.f03: New.
From-SVN: r173966
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 12 | ||||
-rw-r--r-- | gcc/fortran/module.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/extends_12.f03 | 24 |
4 files changed, 49 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 6108401..45ca79c 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2011-05-20 Janus Weil <janus@gcc.gnu.org> + + PR fortran/48706 + * module.c (write_dt_extensions): Do not write extended types which + are local to a subroutine. + 2011-05-20 Joseph Myers <joseph@codesourcery.com> * Make-lang.in (GFORTRAN_D_OBJS): Remove version.o and intl.o. @@ -20,6 +26,12 @@ copy for scalar coarrays. * trans-array.c (gfc_conv_array_ref): Ditto. +2011-05-18 Janus Weil <janus@gcc.gnu.org> + + PR fortran/48700 + * trans-intrinsic.c (gfc_conv_intrinsic_move_alloc): Deallocate 'TO' + argument to avoid memory leaks. + 2011-05-16 Tobias Burnus <burnus@net-b.de> * gfortran.texi (_gfortran_set_options): Add GFC_STD_F2008_TR. diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c index fb8de0e..b6acca3 100644 --- a/gcc/fortran/module.c +++ b/gcc/fortran/module.c @@ -4817,6 +4817,9 @@ write_dt_extensions (gfc_symtree *st) { if (!gfc_check_symbol_access (st->n.sym)) return; + if (!(st->n.sym->ns && st->n.sym->ns->proc_name + && st->n.sym->ns->proc_name->attr.flavor == FL_MODULE)) + return; mio_lparen (); mio_pool_string (&st->n.sym->name); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ba56b6d..a2ccc56 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2011-05-20 Janus Weil <janus@gcc.gnu.org> + + PR fortran/48706 + * gfortran.dg/extends_12.f03: New. + 2011-05-20 Jason Merrill <jason@redhat.com> * g++.dg/template/koenig9.C: New. @@ -53,6 +58,11 @@ * gcc.c-torture/execute/960321-1.x: Remove. +2011-05-18 Janus Weil <janus@gcc.gnu.org> + + PR fortran/48700 + * gfortran.dg/move_alloc_4.f90: New. + 2011-05-18 H.J. Lu <hongjiu.lu@intel.com> PR target/49002 diff --git a/gcc/testsuite/gfortran.dg/extends_12.f03 b/gcc/testsuite/gfortran.dg/extends_12.f03 new file mode 100644 index 0000000..a93f6d0 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/extends_12.f03 @@ -0,0 +1,24 @@ +! { dg-do compile } +! +! PR 48706: Type extension inside subroutine +! +! Contributed by Tobias Burnus <burnus@gcc.gnu.org> + +module mod_diff_01 + implicit none + type :: foo + end type +contains + subroutine create_ext + type, extends(foo) :: foo_e + end type + end subroutine +end module + +program diff_01 + use mod_diff_01 + implicit none + call create_ext() +end program + +! { dg-final { cleanup-modules "mod_diff_01" } } |