------- Comment #8 from kargl at gcc dot gnu dot org 2009-05-02 15:37 -------
For the code in Comment #1, I get
REMOVE:kargl[208] gfc4x -c -O -fwhole-file sa.f90
sa.f90:7.10:
call S1(z)
1
Warning: Type mismatch in argument 'z' at (1); passed COMPLEX(4) to REAL(4)
sa.f90:17.11:
CALL S2(D(1,1),4)
1
Warning: Element of assumed-shaped array passed to dummy argument 'd' at (1)
with this patch
Index: interface.c
===================================================================
--- interface.c (revision 146793)
+++ interface.c (working copy)
@@ -1378,9 +1378,16 @@ compare_parameter (gfc_symbol *formal, g
&& !gfc_compare_types (&formal->ts, &actual->ts))
{
if (where)
- gfc_error ("Type mismatch in argument '%s' at %L; passed %s to %s",
- formal->name, &actual->where, gfc_typename (&actual->ts),
- gfc_typename (&formal->ts));
+ {
+ if (gfc_option.flag_whole_file)
+ gfc_warning ("Type mismatch in argument '%s' at %L; passed %s to
%s",
+ formal->name, &actual->where, gfc_typename
(&actual->ts),
+ gfc_typename (&formal->ts));
+ else
+ gfc_error ("Type mismatch in argument '%s' at %L; passed %s to %s",
+ formal->name, &actual->where, gfc_typename
(&actual->ts),
+ gfc_typename (&formal->ts));
+ }
return 0;
}
@@ -1448,8 +1455,14 @@ compare_parameter (gfc_symbol *formal, g
|| actual->symtree->n.sym->attr.pointer))
{
if (where)
- gfc_error ("Element of assumed-shaped array passed to dummy "
- "argument '%s' at %L", formal->name, &actual->where);
+ {
+ if (gfc_option.flag_whole_file)
+ gfc_warning ("Element of assumed-shaped array passed to dummy "
+ "argument '%s' at %L", formal->name, &actual->where);
+ else
+ gfc_error ("Element of assumed-shaped array passed to dummy "
+ "argument '%s' at %L", formal->name, &actual->where);
+ }
return 0;
}
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40006