PR 83704 Use size_t in write_character

Message ID 1515265813-30639-1-git-send-email-blomqvist.janne@gmail.com
State New
Headers show
Series
  • PR 83704 Use size_t in write_character
Related show

Commit Message

Janne Blomqvist Jan. 6, 2018, 7:10 p.m.
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.
---
 libgfortran/io/write.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

-- 
2.7.4

Patch

diff --git a/libgfortran/io/write.c b/libgfortran/io/write.c
index 3aa2f0e..6e3cc10 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 i = 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)