https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79230

--- Comment #18 from vehre at gcc dot gnu.org ---
Correct me when I am wrong, but should the pointer component really be
finalized automatically? I am in the opinion that pointer components are not
finalized automatically. That is one of the significant differences to
allocatable components. I am thinking about a single linked list, where one
does:

type link
  type(link), pointer :: next
  class(*) :: data
end type

Grant me the above to be pseudo-fortran to just explain the concept.

Now, when I want to delete only the first item of the list and have:

type (link), pointer :: head
type (link), pointer :: newhead => head%next

deallocate(head) ! This one would deallocate the whole list, when finalization
is done!

So I first need to do: 

head%next => NULL
deallocate(head)

which for a pointer is IMHO not the intention of the standard. When I like to
have managed memory with full automatic free, then one should have chosen
allocatable, or am I totally misunderstanding Fortran?

Reply via email to