aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Thomas <pault@gcc.gnu.org>2007-10-04 04:45:41 +0000
committerPaul Thomas <pault@gcc.gnu.org>2007-10-04 04:45:41 +0000
commitee332da9f77d641cb731596e6d2545ba03b6b326 (patch)
tree81c4a8a9536d0e135c5a39dcfe10068f375f0ec9
parent231d0665181e5a58542608c129fe31e323bddff6 (diff)
downloadgcc-ee332da9f77d641cb731596e6d2545ba03b6b326.zip
gcc-ee332da9f77d641cb731596e6d2545ba03b6b326.tar.gz
gcc-ee332da9f77d641cb731596e6d2545ba03b6b326.tar.bz2
re PR fortran/33542 (gfortran does not detect ambigious specific names if they are the same as generic names)
2007-10-04 Paul Thomas <pault@gcc.gnu.org> PR fortran/33542 * interface.c (check_interface1): Revert patch of 2007-10-02. 2007-10-04 Paul Thomas <pault@gcc.gnu.org> PR fortran/33542 * gfortran.dg/ambiguous_specific_1.f90: Remove. From-SVN: r129000
-rw-r--r--gcc/fortran/ChangeLog5
-rw-r--r--gcc/fortran/interface.c3
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/ambiguous_specific_1.f9037
4 files changed, 11 insertions, 39 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index cb9c9ca..327d9a5 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,8 @@
+2007-10-04 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/33542
+ * interface.c (check_interface1): Revert patch of 10-02.
+
2007-10-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
PR fortran/26682
diff --git a/gcc/fortran/interface.c b/gcc/fortran/interface.c
index 6513517..741bba5 100644
--- a/gcc/fortran/interface.c
+++ b/gcc/fortran/interface.c
@@ -1044,8 +1044,7 @@ check_interface1 (gfc_interface *p, gfc_interface *q0,
if (p->sym->name == q->sym->name && p->sym->module == q->sym->module)
continue;
- if (compare_interfaces (p->sym, q->sym, generic_flag)
- || p->sym->name == q->sym->name)
+ if (compare_interfaces (p->sym, q->sym, generic_flag))
{
if (referenced)
{
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 0173411..6a49363 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-10-04 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/33542
+ * gfortran.dg/ambiguous_specific_1.f90: Remove.
+
2007-10-03 Alexandre Oliva <aoliva@redhat.com>
* g++.dg/ext/gnu-inline-global-redecl.C: New.
diff --git a/gcc/testsuite/gfortran.dg/ambiguous_specific_1.f90 b/gcc/testsuite/gfortran.dg/ambiguous_specific_1.f90
deleted file mode 100644
index 63ea9da..0000000
--- a/gcc/testsuite/gfortran.dg/ambiguous_specific_1.f90
+++ /dev/null
@@ -1,37 +0,0 @@
-! { dg-do compile }
-! Checks the fix for PR33542, in which the ambiguity in the specific
-! interfaces of foo was missed.
-!
-! Contributed by Tobias Burnus <burnus@gcc.gnu.org>
-!
-MODULE M1
- INTERFACE FOO
- MODULE PROCEDURE FOO2
- END INTERFACE
-CONTAINS
- SUBROUTINE FOO2(I)
- INTEGER, INTENT(IN) :: I
- WRITE(*,*) 'INTEGER'
- END SUBROUTINE FOO2
-END MODULE M1
-
-MODULE M2
- INTERFACE FOO
- MODULE PROCEDURE FOO2
- END INTERFACE
-CONTAINS
- SUBROUTINE FOO2(R)
- REAL, INTENT(IN) :: R
- WRITE(*,*) 'REAL'
- END SUBROUTINE FOO2
-END MODULE M2
-
-PROGRAM P
- USE M1 ! { dg-error "Ambiguous interfaces" }
- USE M2
- implicit none
- external bar
- CALL FOO(10)
- CALL FOO(10.)
-END PROGRAM P
-! { dg-final { cleanup-modules "m1 m2" } }