The following fixes PR63152 zeroing the data field only for allocatables,
not pointers. The benefit of the patch is a small speedup, and it avoids
that code starts to rely on behavior that is undefined in the standard. With
this patch, something like
INTEGER, DIMENSION(:), POINTER :: foo
thanks for your good question. I think it is equivalent, as it seems that
GFC_DESCRIPTOR_TYPE_P (type) implies either sym-attr.allocatable or
sym-attr.pointer. To check, I rank a check-fortran with the explicit patch
below, and this made no difference. Code gen for a number of additional
The following fixes PR63152 zeroing the data field only for allocatables, not
pointers. The benefit of the patch is a small speedup, and it avoids that
code starts to rely on behavior that is undefined in the standard. With this
patch, something like
INTEGER, DIMENSION(:), POINTER :: foo
The following fixes PR63152 zeroing the data field only for allocatables, not
pointers. The benefit of the patch is a small speedup, and it avoids that code
starts to rely on behavior that is undefined in the standard. With this patch,
something like
INTEGER, DIMENSION(:), POINTER :: foo
IF