This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug fortran/37336] Fortran 2003: Finish derived-type finalization


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

Tobias Burnus <burnus at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |NEW
         AssignedTo|domob at gcc dot gnu.org    |unassigned at gcc dot
                   |                            |gnu.org

--- Comment #10 from Tobias Burnus <burnus at gcc dot gnu.org> 2012-05-07 10:09:52 UTC ---
Regarding FINAL but also normal deallocation - including polymorphic
deallocation: Variables with the SAVE attribute shouldn't be automatically
deallocated. That includes variables of the main program which are implicitly
SAVE!

Currently, gfortran deallocates them automatically, which is nice for
"valgrind" results - and not detectable by the program.

However, with FINAL - but also for allocatable coarrays (except
-fcoarray=single) - one cannot do it. Coarrays might be still accessed from
other images while FINAL shouldn't be called - thus a simple 'print *,
"gotcha"' in FINAL would be able to detect this.

Note: A normal freeing for noncoarrays, including polymorphic freeing, would be
still possible if one simply skips all FINAL calls. At least I do not see how
that should be detectable from within the program.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]