https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90329
--- Comment #34 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Even the subroutine foo (a, b, c, d, e, f) integer :: c, e, f character(len=1) :: a, b double precision :: d (e, *) call bar (a, b, c, d, e, f) end subroutine foo is tail call optimized by both older gfortran and ifort, and this one has the same prototype as the lapack routine and so will be broken by both old gfortran and ifort when called incorrectly without the hidden string length arguments.