https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90329
Janne Blomqvist <jb at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jb at gcc dot gnu.org --- Comment #3 from Janne Blomqvist <jb at gcc dot gnu.org> --- Ooof! (Just for the record, I don't think we should revert to the previous behavior. Whatever we do should be robust in the face of LTO etc.) I'd rather not see extra command-line arguments. For something which modifies the ABI and somehow works by accident part of the time, this is just too difficult to keep track of for end users, IMHO. My suggestions: 1) When compiling an external procedure, for character(len=1) arguments we don't generate the hidden string length argument. And similarly when calling an external procedure, if a len=1 character is passed, we omit the hidden string length argument. This, I believe, is what Paul is suggesting in the previous comment? 2) External procedures with character arguments are compiled and called as varargs functions. This is what Thomas is suggesting, except unconditionally and not controlled by an option. I'm not really happy with either of these, but the third option, of fixing all Fortran-calling code out there isn't realistic either.