https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116292
--- Comment #6 from anlauf at gcc dot gnu.org --- Note that the ICE also happens for other variable types (e.g. integer), and disappears for rank > 0. This works: program p character, allocatable :: buffer, dummy ! integer, allocatable :: buffer, dummy dimension :: buffer(:), dummy(:) contains subroutine s call move_alloc (dummy, buffer) end end