https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104819
--- Comment #14 from anlauf at gcc dot gnu.org --- Created attachment 59582 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=59582&action=edit Patch handling testcase in comment#13 This patch leads to the following translation of the main: void p () { static void bar (character(kind=1) * &, integer(kind=8) *); static void bla (character(kind=1)[1:10] * &, integer(kind=8)); static void foo (character(kind=1)[1:] * &, integer(kind=8)); static character(kind=1)[1:10] * c = 0B; static integer(kind=8) _F.d; static character(kind=1) * d = 0B; { void * pchar.0; pchar.0 = 0B; foo (&pchar.0, 10); } { void * pchar.1; pchar.1 = 0B; bla (&pchar.1, 10); } { void * pchar.2; pchar.2 = 0B; bar (&pchar.2, &_F.d); } { static void * C.4805 = 0B; integer(kind=8) slen.3; slen.3 = 0; bla (&C.4805, slen.3); } { static void * C.4807 = 0B; integer(kind=8) slen.4; slen.4 = 0; bar (&C.4807, &slen.4); } foo (&c, 10); bla (&c, 10); bar (&d, &_F.d); } Regtests fine. Will test some more.