diff options
author | Paul Thomas <pault@gcc.gnu.org> | 2008-10-11 12:09:23 +0000 |
---|---|---|
committer | Paul Thomas <pault@gcc.gnu.org> | 2008-10-11 12:09:23 +0000 |
commit | 91a9632ca5578311dca3a5325ba59048324f4033 (patch) | |
tree | 1d6b1db831a3a302f7892a85e50dd19845795cea /gcc | |
parent | 506a7bc8995f0ca9357eca2ff7cdeb857612e283 (diff) | |
download | gcc-91a9632ca5578311dca3a5325ba59048324f4033.zip gcc-91a9632ca5578311dca3a5325ba59048324f4033.tar.gz gcc-91a9632ca5578311dca3a5325ba59048324f4033.tar.bz2 |
re PR fortran/37794 (Fortran module overloading regression)
2008-10-11 Paul Thomas <pault@gcc.gnu.org>
PR fortran/37794
* module.c (check_for_ambiguous): Remove redundant code.
2008-10-11 Paul Thomas <pault@gcc.gnu.org>
PR fortran/37794
* gfortran.dg/used_types_24.f90: New test.
From-SVN: r141057
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/fortran/module.c | 7 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/used_types_24.f90 | 33 |
4 files changed, 43 insertions, 7 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index a2ca844..9393dae 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2008-10-11 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/37794 + * module.c (check_for_ambiguous): Remove redundant code. + 2008-10-09 Daniel Kraft <d@domob.eu> PR fortran/35723 diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c index 3846d95..b9c99fe 100644 --- a/gcc/fortran/module.c +++ b/gcc/fortran/module.c @@ -3960,13 +3960,6 @@ check_for_ambiguous (gfc_symbol *st_sym, pointer_info *info) if (st_sym == rsym) return false; - /* Identical derived types are not ambiguous and will be rolled up - later. */ - if (st_sym->attr.flavor == FL_DERIVED - && rsym->attr.flavor == FL_DERIVED - && gfc_compare_derived_types (st_sym, rsym)) - return false; - /* If the existing symbol is generic from a different module and the new symbol is generic there can be no ambiguity. */ if (st_sym->attr.generic diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f7545fc..5a31ae3 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2008-10-11 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/37794 + * gfortran.dg/used_types_24.f90: New test. + 2008-10-11 Jakub Jelinek <jakub@redhat.com> PR target/35760 diff --git a/gcc/testsuite/gfortran.dg/used_types_24.f90 b/gcc/testsuite/gfortran.dg/used_types_24.f90 new file mode 100644 index 0000000..44d2f5e --- /dev/null +++ b/gcc/testsuite/gfortran.dg/used_types_24.f90 @@ -0,0 +1,33 @@ +! { dg-do compile } +! Tests the fix for PR37794 a regression where a bit of redundant code caused an ICE. +! +! Contributed by Jonathan Hogg <J.Hogg@rl.ac.uk> +! +module m1 + implicit none + + type of01_data_private + real :: foo + end type of01_data_private + + type of01_data + type (of01_data_private) :: private + end type of01_data +end module m1 + +module m2 + implicit none + + type of01_data_private + integer :: youngest + end type of01_data_private +end module m2 + +module test_mod + use m1, of01_rdata => of01_data + use m2, of01_idata => of01_data ! { dg-error "not found in module" } + + implicit none +end module test_mod + +! { dg-final { cleanup-modules "m1 m2 test_mod" } } |