[Patch, fortran] PR31213 , PR33888 and PR33998 - formal actual mapping problems

Paul Richard Thomas paul.richard.thomas@gmail.com
Sat Dec 15 17:51:00 GMT 2007


Tobias,

Thanks for the review.

> s/exxpression/expression/ as Dominique already noted.

Fixed.

>
>
> +         if (expr->ts.type == BT_CHARACTER
> +               && expr->ts.cl->length->expr_type != EXPR_CONSTANT)
>
> Indention looks wrong.

It is in fact OK.

>
>
> +          character(0) h4(1:minval([(1,i=1,0)],1))
>
> As written, this gives a huge array size. As Dominique remarked:
>
> > The original pr33998 had the line:
> >
> >         character(0) sv1(size(x,1):size(h4))

Will change both.
>
>
>
> +       /* TODO These implementations of lbound and ubound do not limit
> if the
> +          size < 0, according to 13.14.53 and 13.14.113.  */
>
> You should mention which Fortran standard you quote (F95 or F2003; it is
> F95). At least when there is also F2008 it will get a bit confusing.

Done.

> I do not understand the arg2 == NULL case; arg2 is the dimension, but
> why is new_expr equal to dimension 1 and not an array with the ubounds
> of all dimensions? Probably I just have not yet fully understood the patch.

I do not think that this is reachable.  I added this as a soggy,
harmless way of bailing out.  I'll put a gcc_unreachable and a TODO to
the effect that should the appliciations for this extension to the
mapping mechanism be extended, the array should result.
>
>
> Otherwise the patch looks ok and as far as I tested fixes all test cases
> from the PRs.

Great.  With the above modifications, I will commit it tomorrow morning.

Again, thanks

Paul


-- 
The knack of flying is learning how to throw yourself at the ground and miss.
       --Hitchhikers Guide to the Galaxy



More information about the Gcc-patches mailing list