https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86545
--- Comment #1 from janus at gcc dot gnu.org ---
I guess the problem is the absence of the error message that one gets when
calling the specific function directly, without going through the generic
interface:
write(*,*) trim_string(s) ! correctly rejected
1
Error: Data transfer element at (1) cannot have ALLOCATABLE components unless
it is processed by a defined input/output procedure
Possibly the resolution of the interface comes too late, so that we fail to
detect that the function results a derived type?