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! :)