[Bug fortran/58433] FINAL memory leaks

janus at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Sep 16 20:50:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58433

--- Comment #3 from janus at gcc dot gnu.org ---
(In reply to Valery Weber from comment #2)
> But the std says:
> 
> 
> ****
> 4.5.6.3 When fi
nalization occurs
> ...
> 2 A nonpointer, nonallocatable object that is not a dummy argument or
> function result is 
finalized immediately before it would become undefi
ned
> due to execution of a RETURN or END statement (16.6.6, item (3)).

That's right.

However, 16.6.6 (3) says:

(3) When execution of an instance of a subprogram completes,
(a) its unsaved local variables become undefined

So, firstly, this only talks about 'subprograms' and, secondly, about *unsaved*
local variables. At least in F08, variables in the main program implicitly get
the SAVE attribute.

More importantly, note that 4.5.6.4 explicitly states that entities are not
finalized on an end-program-stmt!


We had quite some discussions about this already last year, both on c.l.f. (see
https://groups.google.com/forum/?fromgroups=#!topic/comp.lang.fortran/mhQLZOmVQ8Q)
and the gfortran mailing list (see e.g.
http://gcc.gnu.org/ml/fortran/2012-10/msg00136.html and other posts in this
thread).


More information about the Gcc-bugs mailing list