summaryrefslogtreecommitdiffstats
path: root/gcc/fortran/resolve.c
diff options
context:
space:
mode:
authorpault <pault@138bc75d-0d04-0410-961f-82ee72b054a4>2006-12-20 13:48:06 +0000
committerpault <pault@138bc75d-0d04-0410-961f-82ee72b054a4>2006-12-20 13:48:06 +0000
commit3186f695660bb621c576ff78e8851517799b697f (patch)
tree006a73693cd6f5f41909b3e2d5aff9801697221d /gcc/fortran/resolve.c
parenta30b29a7777cc383807116c38f3d172b7678d950 (diff)
downloadppe42-gcc-3186f695660bb621c576ff78e8851517799b697f.tar.gz
ppe42-gcc-3186f695660bb621c576ff78e8851517799b697f.zip
2006-12-20 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29992 * interface.c (check_sym_interfaces): Module procedures in a generic must be use associated or contained in the module. * decl.c (gfc_match_modproc): Set attribute mod_proc. * gfortran.h (symbol_attribute): Add mod_proc atribute. PR fortran/30081 * resolve.c (resolve_generic_f, resolve_generic_s): Use gfc_intrinsic_name to find out if the function is intrinsic because it does not have to be a generic intrinsic to be overloaded. 2006-12-20 Paul Thomas <pault@gcc.gnu.org> PR fortran/29992 * gfortran.dg/generic_9.f90: New test. PR fortran/30081 * gfortran.dg/generic_10.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120072 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r--gcc/fortran/resolve.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index 33ef7481470..519d92ab9b7 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -1215,9 +1215,9 @@ generic:
goto generic;
}
- /* Last ditch attempt. */
-
- if (!gfc_generic_intrinsic (expr->symtree->n.sym->name))
+ /* Last ditch attempt. See if the reference is to an intrinsic
+ that possesses a matching interface. 14.1.2.4 */
+ if (!gfc_intrinsic_name (sym->name, 0))
{
gfc_error ("There is no specific function for the generic '%s' at %L",
expr->symtree->n.sym->name, &expr->where);
@@ -1675,9 +1675,11 @@ generic:
goto generic;
}
- /* Last ditch attempt. */
+ /* Last ditch attempt. See if the reference is to an intrinsic
+ that possesses a matching interface. 14.1.2.4 */
sym = c->symtree->n.sym;
- if (!gfc_generic_intrinsic (sym->name))
+
+ if (!gfc_intrinsic_name (sym->name, 1))
{
gfc_error
("There is no specific subroutine for the generic '%s' at %L",
OpenPOWER on IntegriCloud