From 38f8769b71f018c1e5496a1eb9f165a97e7a6f05 Mon Sep 17 00:00:00 2001 From: jb Date: Sat, 6 Jan 2018 19:09:52 +0000 Subject: [PATCH] PR 83704 Use size_t in write_character 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 Janne Blomqvist PR fortran/83704 * io/write.c (write_character): Use size_t instead of int for length. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@256313 138bc75d-0d04-0410-961f-82ee72b054a4 --- libgfortran/ChangeLog | 7 +++++++ libgfortran/io/write.c | 10 +++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index af1cb29d83c..f0c151d22b5 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,10 @@ +2018-01-06 Dominique d'Humieres + Janne Blomqvist + + PR fortran/83704 + * io/write.c (write_character): Use size_t instead of int for + length. + 2019-01-05 Janne Blomqvist PR fortran/78534 diff --git a/libgfortran/io/write.c b/libgfortran/io/write.c index c04d243dc08..32abbd64e91 100644 --- a/libgfortran/io/write.c +++ b/libgfortran/io/write.c @@ -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) -- 2.11.4.GIT