https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71880
--- Comment #5 from Harald Anlauf <anlauf at gmx dot de> ---
Maybe the dump-tree gives a hint. Looking at the example
program t
character(:), dimension(:), allocatable, target :: c
character(:), dimension(:), pointer :: p
allocate(c(10),source='X')
p=>c
write(*,*) size(c),len(c) !,' c=<',c(1),'>'
write(*,*) size(p),len(p) !,' p=<',p(1),'>'
end program t
I find:
t ()
{
integer(kind=4) .c;
struct array1_unknown c;
integer(kind=4) .p;
struct array1_unknown p;
[...]
.c = 1;
[...]
but .p seems to never get set. (.c, .p are the quantities
that are printed as the len(c),len(p)).