Memory alignment for strings ifort vs gfortran

The following routine is accepted by ifx, gfortran, and flang-new,

subroutine hello(msg) bind(c)
use, intrinsic :: iso_c_binding, only: c_char
character(kind=c_char,len=:), allocatable, intent(out) :: msg
msg = "Hello from Fortran"
end subroutine

and would have the matching C prototype: void hello(CFI_cdesc_t *msg).

There is special bullet point (6) for this case in the F2018 interpretation document, section 18.3.6, paragraph 2,