https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88044
--- Comment #8 from seurer at gcc dot gnu.org --- I looked at where the code is hanging and it looks like it is hung in a loop where it keeps calling memcpy with an incrementing by 1 length. I set a breakpoint at the start of memcpy to break if the length was greater than 9000 and when the breakpoint was hit just keeping hitting continue. It was called with length 9001, 9002, 9003, ... There is nothing in the code that does anything like this as far as I can tell and this doesn't happen with the previous revision. Is the call s = transfer(vs, s) expanded into an infinite loop? I don't know fortran so I have no idea what that is supposed to do. #0 .__memcpy_power7 () at ../sysdeps/powerpc/powerpc64/power7/memcpy.S:34 #1 0x0000000010000a24 in str_vs (_vs=1, _vs=1, vs=..., .__result=9002, __result=<optimized out>) at /home/seurer/gcc/gcc-test2/gcc/testsuite/gfortran.dg/transfer_intrinsic_3.f90:13 #2 MAIN__ () at /home/seurer/gcc/gcc-test2/gcc/testsuite/gfortran.dg/transfer_intrinsic_3.f90:34 #3 main (argc=<optimized out>, argv=<optimized out>) at /home/seurer/gcc/gcc-test2/gcc/testsuite/gfortran.dg/transfer_intrinsic_3.f90:26 #4 0x00003fffb79c7a6c in generic_start_main (main=@0x1001fec0: 0x100008a0 <main>, argc=<optimized out>, argv=0x3fffffffe888, auxvec=0x3fffffffea00, init=<optimized out>, rtld_fini=<optimized out>, stack_end=<optimized out>, fini=<optimized out>) at ../csu/libc-start.c:266 #5 0x00003fffb79c7c94 in __libc_start_main (argc=<optimized out>, argv=<optimized out>, ev=<optimized out>, auxvec=<optimized out>, rtld_fini=<optimized out>, stinfo=<optimized out>, stack_on_entry=<optimized out>) at ../sysdeps/unix/sysv/linux/powerpc/libc-start.c:81 #6 0x0000000000000000 in ?? ()