PR 83704 Use size_t in write_character
authorDominique d'Humieres <dominiq@lps.ens.fr>
Sat, 6 Jan 2018 19:09:52 +0000 (20:09 +0100)
committerJanne Blomqvist <jb@gcc.gnu.org>
Sat, 6 Jan 2018 19:09:52 +0000 (21:09 +0200)
For printing long characters, we need to use size_t instead of int in
the argument to write_character.

Regtested on x86_64-pc-linux-gnu, approved in the PR, committed to
trunk.

libgfortran/ChangeLog:

2018-01-06  Dominique d'Humieres  <dominiq@lps.ens.fr>
    Janne Blomqvist  <jb@gcc.gnu.org>

PR fortran/83704
* io/write.c (write_character): Use size_t instead of int for
length.

Co-Authored-By: Janne Blomqvist <jb@gcc.gnu.org>
From-SVN: r256313

libgfortran/ChangeLog
libgfortran/io/write.c

index af1cb29..f0c151d 100644 (file)
@@ -1,3 +1,10 @@
+2018-01-06  Dominique d'Humieres  <dominiq@lps.ens.fr>
+           Janne Blomqvist  <jb@gcc.gnu.org>
+
+       PR fortran/83704
+       * io/write.c (write_character): Use size_t instead of int for
+       length.
+
 2019-01-05  Janne Blomqvist  <jb@gcc.gnu.org>
 
        PR fortran/78534
index c04d243..32abbd6 100644 (file)
@@ -1358,9 +1358,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)
@@ -1389,7 +1389,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 i = 0; i < length; i++)
            if (source[i] == d)
              extra++;
        }
@@ -1409,7 +1409,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)
@@ -1427,7 +1427,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)