[fortran patch] Don't use TREE_LISTs for storing arguments to intrinsic functions
Brooks Moses
brooks.moses@codesourcery.com
Tue May 8 18:31:00 GMT 2007
Hello, Lee,
At 11:16 AM 5/8/2007, Lee Millward wrote:
>> > +{
>> > + int n = 0;
>> > + gfc_actual_arglist *actual;
>> > + gfc_intrinsic_arg *formal = expr->value.function.isym->formal;;
>>
>>There is no need for formal in this function; it is never used.
>>
>> > +
>> > + for (actual = expr->value.function.actual; actual; actual =
>> actual->next,
>> > + formal = formal ? formal->next : NULL)
>>
>>Similarly, the whole second line of this is irrelevant.
>
>Previous versions of the patch didn't use formal for calculating the
>number of arguments but this led to discrepencies in the number of
>arguments returned from this function and the number expected by
>gfc_conv_intrinsic_function_args. Since the two are meant to work in
>conjunction with each other I adjusted this to make it behave the same
>as gfc_conv_intrinsic_function_args since it was causing ICEs and
>wrong-code problems in the testsuite.
I'm still baffled by this, then. The two lines that I quoted are the only
uses of formal in this function, right? As far as I can see, neither of
them affects the number of iterations of the loop or the calculation of the
number of arguments, unless I'm completely missing something. Could you
please lead me through how this works?
Thanks,
- Brooks
More information about the Fortran
mailing list