[Bug fortran/47569] [4.3/4.4/4.5/4.6 Regression] gfortran does not detect that the parameters for passing a partial string to a subroutine are incorrect
burnus at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Feb 1 14:54:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47569
--- Comment #3 from Tobias Burnus <burnus at gcc dot gnu.org> 2011-02-01 14:54:10 UTC ---
(In reply to comment #2)
> Draft patch:
> + || gfc_expr_attr (actual).pointer))))
That check won't work as "foo(1)" is never a pointer while "foo" might be a
pointer; thus, one has to save the last REF_COMPONENT and handle it manually.
The following check at a few lines later also needs to be modified (both the
AS_ASSUMED and the pointer check).
if (actual->expr_type == EXPR_VARIABLE && ref
&& (ref->u.ar.as->type == AS_ASSUMED_SHAPE
|| gfc_expr_attr (actual).pointer))
And the check:
for (ref = actual->ref; ref; ref = ref->next)
if (ref->type == REF_ARRAY && ref->u.ar.type == AR_ELEMENT
&& ref->u.ar.dimen > 0)
break;
seems to mishandle "foo(1)%bar(1)%foo" by looking only at the first
AR_ELEMENT.
More information about the Gcc-bugs
mailing list