]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR fortran/20896 (ambiguous interface not detected)
authorPaul Thomas <pault@gcc.gnu.org>
Tue, 2 Jan 2007 14:23:36 +0000 (14:23 +0000)
committerPaul Thomas <pault@gcc.gnu.org>
Tue, 2 Jan 2007 14:23:36 +0000 (14:23 +0000)
2007-01-02  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/20896
* interface.c (check_sym_interfaces): Remove call to
resolve_global_procedure.
gfortran.h : Remove prototype for resolve_global_procedure.
resolve.c (resolve_global_procedure): Add static attribute
to function declaration.

2007-01-02  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/20896
* gfortran.dg/interface_10.f90: Remove.

From-SVN: r120342

gcc/fortran/ChangeLog
gcc/fortran/gfortran.h
gcc/fortran/interface.c
gcc/fortran/resolve.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/interface_10.f90 [deleted file]

index 866038f8dce4263b12578efc73598ed2aa9d6a2b..e8a3de5efe3b06abcf4d39bc1e25bab819628155 100644 (file)
@@ -1,3 +1,12 @@
+2007-01-02  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/20896
+       * interface.c (check_sym_interfaces): Remove call to
+       resolve_global_procedure.
+       gfortran.h : Remove prototype for resolve_global_procedure.
+       resolve.c (resolve_global_procedure): Add static attribute
+       to function declaration.
+
 2007-01-01  Steven G. Kargl  <kargls@comcast.net>
 
        * ChangeLog: Copy to ...
index b477439ff64fb19fe923649302e0a8e92a247f05..62862977eeb1d5f0a2aa500cc3f78d09d8100900 100644 (file)
@@ -2032,7 +2032,6 @@ void gfc_free_statement (gfc_code *);
 void gfc_free_statements (gfc_code *);
 
 /* resolve.c */
-void resolve_global_procedure (gfc_symbol *, locus *, int);
 try gfc_resolve_expr (gfc_expr *);
 void gfc_resolve (gfc_namespace *);
 void gfc_resolve_blocks (gfc_code *, gfc_namespace *);
index 04618e7924ea740c3373685b1e006e557183a11b..dd1ac694521b581e0b973f41de2b3d1632576c77 100644 (file)
@@ -1016,11 +1016,6 @@ check_sym_interfaces (gfc_symbol * sym)
   if (sym->ns != gfc_current_ns)
     return;
 
-  if (sym->attr.if_source == IFSRC_IFBODY
-       && sym->attr.flavor == FL_PROCEDURE
-       && !sym->attr.mod_proc)
-    resolve_global_procedure (sym, &sym->declared_at, sym->attr.subroutine);
-
   if (sym->generic != NULL)
     {
       sprintf (interface_name, "generic interface '%s'", sym->name);
index ba547f20c55ede96b399d0ebb020b97c5d448aa2..650a5a22c9175d2610a8c367904088f47edf555e 100644 (file)
@@ -1235,7 +1235,7 @@ find_noncopying_intrinsics (gfc_symbol * fnsym, gfc_actual_arglist * actual)
    reference.  The corresponding code that is called in creating
    global entities is parse.c.  */
 
-void
+static void
 resolve_global_procedure (gfc_symbol *sym, locus *where, int sub)
 {
   gfc_gsymbol * gsym;
index 429382b4f12a5a52156c96611ffc6df5012f2867..81ac58cd08e1643d583dc70ed82c0da5343e21fe 100644 (file)
@@ -1,3 +1,8 @@
+2007-01-02  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/20896
+       * gfortran.dg/interface_10.f90: Remove.
+
 2007-01-01  Roger Sayle  <roger@eyesopen.com>
 
        * gcc.dg/fold-eqxor-4.c: New test case.
diff --git a/gcc/testsuite/gfortran.dg/interface_10.f90 b/gcc/testsuite/gfortran.dg/interface_10.f90
deleted file mode 100644 (file)
index 4dab96a..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-! { dg-do compile }
-! Test the fix for PR20896 in which the ambiguous use
-! of p was not detected.
-!
-! Contributed by Joost VandeVondele <jv244@cam.ac.uk>
-!
-  INTERFACE g
-    SUBROUTINE s1(p) ! { dg-error "is already being used" }
-      INTERFACE
-        SUBROUTINE p
-        END
-      END INTERFACE
-    END
-    SUBROUTINE s2(p) ! { dg-error "Global name" }
-      INTERFACE
-        REAL FUNCTION p()
-        END
-      END INTERFACE
-    END
-  END INTERFACE
-
-      INTERFACE
-        REAL FUNCTION x()
-        END
-      END INTERFACE
-      INTERFACE
-        SUBROUTINE y
-        END
-      END INTERFACE
-  call g (x)
-  call g (y)
-  END
-