[Patch,Fortran] PR 36158 - Run-time implementation of BESSEL_JN/YN

Tobias Burnus burnus@net-b.de
Sat Aug 21 10:28:00 GMT 2010


  Am 21.08.2010 11:48, schrieb Daniel Kraft:
> Tobias Burnus wrote:
>>  The attached patch implements the run-time version of BESSEL_JN/YN. 
>> At the same time it allows to mark arguments of intrinsic functions 
>> as (call by) VALUE. In order to get this working, I had to modify the 
>> trans-intrinsics.c to use the interface - and I had to fix the fall 
>> out ICEs.
>>
>> Build and regtested on x86-64-linux.
>> OK for the trunk?
>
> Ok, considering the following points:
>
> +
> +  f->value.function.isym->formal->ts = a->ts;
> +  f->value.function.isym->formal->next->ts = mo->ts;
> +
>
> Has this something to do with your patch?  I don't really see what.

That's a fall out of adding support for the value attribute - or more 
explicitly: the consequence of adding gfc_copy_formal_args_intr in 
trans-intrinsic.c; that change caused an ICE (segfault) for many test 
cases and intrinsics such as RESHAPE, which I fixed by checking for 
fsym->as == NULL in gfc_conv_procedure_call (which should lead to the 
same cause as before fsym==NULL matched). Well, the other ICE was then 
for extends_type_of due to the BT_UNKNOWN. I fixed this by the snippet 
above.

Thanks for the review! I have incorporated all the suggested changes.

Committed as Rev. 163440.

Tobias



More information about the Fortran mailing list