diff options
author | Paul Thomas <pault@gcc.gnu.org> | 2007-01-02 14:23:36 +0000 |
---|---|---|
committer | Paul Thomas <pault@gcc.gnu.org> | 2007-01-02 14:23:36 +0000 |
commit | ff604888532c10d72b45494670151be4fadfbd39 (patch) | |
tree | eaac45937e8ca8639bf0332ca79d422ef8b927ed /gcc | |
parent | 06d40de8bb03594e0f0eb7d0636f8ca84ce7d86d (diff) | |
download | gcc-ff604888532c10d72b45494670151be4fadfbd39.zip gcc-ff604888532c10d72b45494670151be4fadfbd39.tar.gz gcc-ff604888532c10d72b45494670151be4fadfbd39.tar.bz2 |
re PR fortran/20896 (ambiguous interface not detected)
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/fortran/gfortran.h | 1 | ||||
-rw-r--r-- | gcc/fortran/interface.c | 5 | ||||
-rw-r--r-- | gcc/fortran/resolve.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/interface_10.f90 | 33 |
6 files changed, 15 insertions, 40 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 866038f..e8a3de5 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -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 ... diff --git a/gcc/fortran/gfortran.h b/gcc/fortran/gfortran.h index b477439..6286297 100644 --- a/gcc/fortran/gfortran.h +++ b/gcc/fortran/gfortran.h @@ -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 *); diff --git a/gcc/fortran/interface.c b/gcc/fortran/interface.c index 04618e7..dd1ac69 100644 --- a/gcc/fortran/interface.c +++ b/gcc/fortran/interface.c @@ -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); diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index ba547f2..650a5a2 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -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; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 429382b..81ac58c 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -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 index 4dab96a..0000000 --- a/gcc/testsuite/gfortran.dg/interface_10.f90 +++ /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 - |