[Bug fortran/63363] No diagnostic for passing function as actual argument to KIND
janus at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sun Dec 21 09:59:00 GMT 2014
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63363
janus at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |accepts-invalid
Status|NEW |ASSIGNED
Assignee|unassigned at gcc dot gnu.org |janus at gcc dot gnu.org
--- Comment #3 from janus at gcc dot gnu.org ---
Draft patch:
Index: gcc/fortran/check.c
===================================================================
--- gcc/fortran/check.c (Revision 218990)
+++ gcc/fortran/check.c (Arbeitskopie)
@@ -2531,13 +2531,20 @@ gfc_check_kill_sub (gfc_expr *pid, gfc_expr *sig,
bool
gfc_check_kind (gfc_expr *x)
{
- if (x->ts.type == BT_DERIVED)
+ if (x->ts.type == BT_DERIVED || x->ts.type == BT_CLASS)
{
- gfc_error ("%qs argument of %qs intrinsic at %L must be a "
- "non-derived type", gfc_current_intrinsic_arg[0]->name,
+ gfc_error ("%qs argument of %qs intrinsic at %L must be of "
+ "intrinsic type", gfc_current_intrinsic_arg[0]->name,
gfc_current_intrinsic, &x->where);
return false;
}
+ if (x->ts.type == BT_PROCEDURE)
+ {
+ gfc_error ("%qs argument of %qs intrinsic at %L must be a data entity",
+ gfc_current_intrinsic_arg[0]->name, gfc_current_intrinsic,
+ &x->where);
+ return false;
+ }
return true;
}
More information about the Gcc-bugs
mailing list