summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjb <jb@138bc75d-0d04-0410-961f-82ee72b054a4>2018-01-06 19:09:52 +0000
committerjb <jb@138bc75d-0d04-0410-961f-82ee72b054a4>2018-01-06 19:09:52 +0000
commit38f8769b71f018c1e5496a1eb9f165a97e7a6f05 (patch)
tree3b46dc14d9d91f2867f24fde1fd7e2e2db792190
parent69f0f1277edaa3eeea042c8ec8e545dfcca3e59c (diff)
downloadgcc-38f8769b71f018c1e5496a1eb9f165a97e7a6f05.tar.gz
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 <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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@256313 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--libgfortran/ChangeLog7
-rw-r--r--libgfortran/io/write.c10
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 <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
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)