2007-01-02 Paul Thomas <pault@gcc.gnu.org>
authorpault <pault@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 2 Jan 2007 14:23:36 +0000 (14:23 +0000)
committerpault <pault@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 2 Jan 2007 14:23:36 +0000 (14:23 +0000)
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120342 138bc75d-0d04-0410-961f-82ee72b054a4

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 866038f..e8a3de5 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 b477439..6286297 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 04618e7..dd1ac69 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 ba547f2..650a5a2 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 429382b..81ac58c 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
-