https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83704
--- Comment #15 from Dominique d'Humieres <dominiq at lps dot ens.fr> --- > does this help? Nope, I get ../../work/gcc/fortran/resolve.c: In function 'bool resolve_ordinary_assign(gfc_code*, gfc_namespace*)': ../../work/gcc/fortran/resolve.c:10281:27: error: format '%d' expects argument of type 'int', but argument 3 has type 'ptrdiff_t' {aka 'long int'} [-Werror=format=] llen, rlen, &code->loc); ^ ../../work/gcc/fortran/resolve.c:10281:27: error: format '%d' expects argument of type 'int', but argument 4 has type 'ptrdiff_t' {aka 'long int'} [-Werror=format=] i.e., in gfc_warning_now (OPT_Wcharacter_truncation, "CHARACTER expression will be truncated " "in assignment (%d/%d) at %L", llen, rlen, &code->loc); I did not find how to change the %d format (%lld does not work).