Boundaries of arrays with deferred shape
Daniel Kraft
domob1812@gmail.com
Fri Jun 20 15:09:00 GMT 2008
Hi,
I already feel I've got the auto-deallocation thing near finishing with
finalization, and then only the deallocation of temporary function
results after they've been used will be left.
But at the moment I've got this problem: When finalizing a derived-type
array, I'm building a DO-loop to scalarize finalization of
finalizable/ALLOCATABLE components of the elements of the array. That's
working basically at the moment, but in the loop-builder I'm relying on
as->type==AS_EXPLICIT because I'm currently accessing the boundaries in
the as->lower/as->upper arrays.
I need to handle arrays with deferred shape (like allocated ones) here,
too. A quick gdb check showed me that in this case lower/upper really
contains NULLs. How can I access (during resolution, not trans!) the
array boundaries of *every* array expression? Is this possible or do I
need some magic here, like generating intrinsic-calls or other "ugly"
things?
BTW, at some place I need to generate something like
IF (ALLOCATED (array)) THEN
do-some-finalization-stuff
END IF
For building the ALLOCATED-expression, at the moment I'm doing a
gfc_get_sym_tree ("allocated", ...) call which looks really, really
wrong to me; but so far that's the only partially working solution I
came up with (works basically, but I get some testsuite failures that
look like being caused by that one). How can I do this correctly? I
want a gfc_expr* representing this ALLOCATED-call given array as
gfc_expr*...
Thank you very much, hopefully I can soon submit a really working
finalization patch :)
Daniel
--
Done: Bar-Sam-Val-Wiz, Dwa-Elf-Hum-Orc, Cha-Law, Fem-Mal
Underway: Ran-Gno-Neu-Fem
To go: Arc-Cav-Hea-Kni-Mon-Pri-Rog-Tou
More information about the Fortran
mailing list