aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPaul Thomas <pault@gcc.gnu.org>2008-10-11 12:09:23 +0000
committerPaul Thomas <pault@gcc.gnu.org>2008-10-11 12:09:23 +0000
commit91a9632ca5578311dca3a5325ba59048324f4033 (patch)
tree1d6b1db831a3a302f7892a85e50dd19845795cea /gcc
parent506a7bc8995f0ca9357eca2ff7cdeb857612e283 (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/fortran/module.c7
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/used_types_24.f9033
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" } }