summaryrefslogtreecommitdiff
path: root/gcc/fortran/decl.c
diff options
context:
space:
mode:
authorjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>2007-06-21 01:18:02 +0000
committerjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>2007-06-21 01:18:02 +0000
commit5720fd2fcae17043d12b0010e0f56b207e0ebe2a (patch)
tree07e0dcc099349be34d0f16f10b3cbe122c6148cc /gcc/fortran/decl.c
parentf4477dcae80121912b57484e74b3a7b2be5ef625 (diff)
downloadgcc-5720fd2fcae17043d12b0010e0f56b207e0ebe2a.tar.gz
2007-06-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/25061 * decl.c (get_proc_name) Check symbol for generic interface and issue an error. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@125906 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/decl.c')
-rw-r--r--gcc/fortran/decl.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c
index 82d3e6686ca..2568a50c7b3 100644
--- a/gcc/fortran/decl.c
+++ b/gcc/fortran/decl.c
@@ -696,6 +696,14 @@ get_proc_name (const char *name, gfc_symbol **result, bool module_fcn_entry)
gfc_error_now ("Procedure '%s' at %C is already defined at %L",
name, &sym->declared_at);
+ /* Trap a procedure with a name the same as interface in the
+ encompassing scope. */
+ if (sym->attr.generic != 0
+ && (sym->attr.subroutine || sym->attr.function))
+ gfc_error_now ("Name '%s' at %C is already defined"
+ " as a generic interface at %L",
+ name, &sym->declared_at);
+
/* Trap declarations of attributes in encompassing scope. The
signature for this is that ts.kind is set. Legitimate
references only set ts.type. */