https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83704
--- Comment #8 from Janne Blomqvist <jb at gcc dot gnu.org> --- Good catch! Though as is, there's a few warnings due to signed/unsigned comparisons. Some minor fixes results in: diff --git a/libgfortran/io/write.c b/libgfortran/io/write.c index 3aa2f0e..f966917 100644 --- a/libgfortran/io/write.c +++ b/libgfortran/io/write.c @@ -1359,9 +1359,9 @@ write_integer (st_parameter_dt *dtp, const char *source, int kind) #define NODELIM 0 static void -write_character (st_parameter_dt *dtp, const char *source, int kind, int length, int mode) +write_character (st_parameter_dt *dtp, const char *source, int kind, size_t length, int mode) { - int i, extra; + size_t extra; char *p, d; if (mode == DELIM) @@ -1390,7 +1390,7 @@ write_character (st_parameter_dt *dtp, const char *source, int kind, int length, { extra = 2; - for (i = 0; i < length; i++) + for (size_t = 0; i < length; i++) if (source[i] == d) extra++; } @@ -1410,7 +1410,7 @@ write_character (st_parameter_dt *dtp, const char *source, int kind, int length, { *p4++ = d4; - for (i = 0; i < length; i++) + for (size_t i = 0; i < length; i++) { *p4++ = (gfc_char4_t) source[i]; if (source[i] == d) @@ -1428,7 +1428,7 @@ write_character (st_parameter_dt *dtp, const char *source, int kind, int length, { *p++ = d; - for (i = 0; i < length; i++) + for (size_t i = 0; i < length; i++) { *p++ = source[i]; if (source[i] == d) Consider this preapproved with a ChangeLog entry, if you'd like to do the honors! :)