[Patch, fortran] PR31213 , PR33888 and PR33998 - formal actual mapping problems
Paul Richard Thomas
Sat Dec 15 17:51:00 GMT 2007
Thanks for the review.
> s/exxpression/expression/ as Dominique already noted.
> + 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.
> 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.
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