Commit d9bb51cd by Dominique d'Humieres Committed by Janne Blomqvist

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.

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

From-SVN: r256313
parent b4c96972
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> 2019-01-05 Janne Blomqvist <jb@gcc.gnu.org>
PR fortran/78534 PR fortran/78534
......
...@@ -1358,9 +1358,9 @@ write_integer (st_parameter_dt *dtp, const char *source, int kind) ...@@ -1358,9 +1358,9 @@ write_integer (st_parameter_dt *dtp, const char *source, int kind)
#define NODELIM 0 #define NODELIM 0
static void 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; char *p, d;
if (mode == DELIM) if (mode == DELIM)
...@@ -1389,7 +1389,7 @@ write_character (st_parameter_dt *dtp, const char *source, int kind, int length, ...@@ -1389,7 +1389,7 @@ write_character (st_parameter_dt *dtp, const char *source, int kind, int length,
{ {
extra = 2; extra = 2;
for (i = 0; i < length; i++) for (size_t i = 0; i < length; i++)
if (source[i] == d) if (source[i] == d)
extra++; extra++;
} }
...@@ -1409,7 +1409,7 @@ write_character (st_parameter_dt *dtp, const char *source, int kind, int length, ...@@ -1409,7 +1409,7 @@ write_character (st_parameter_dt *dtp, const char *source, int kind, int length,
{ {
*p4++ = d4; *p4++ = d4;
for (i = 0; i < length; i++) for (size_t i = 0; i < length; i++)
{ {
*p4++ = (gfc_char4_t) source[i]; *p4++ = (gfc_char4_t) source[i];
if (source[i] == d) if (source[i] == d)
...@@ -1427,7 +1427,7 @@ write_character (st_parameter_dt *dtp, const char *source, int kind, int length, ...@@ -1427,7 +1427,7 @@ write_character (st_parameter_dt *dtp, const char *source, int kind, int length,
{ {
*p++ = d; *p++ = d;
for (i = 0; i < length; i++) for (size_t i = 0; i < length; i++)
{ {
*p++ = source[i]; *p++ = source[i];
if (source[i] == d) if (source[i] == d)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment