From: jvdelisle Date: Wed, 2 Oct 2019 02:35:14 +0000 (+0000) Subject: 2019-10-01 Jerry DeLisle X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2ace3ebdd272060e9673badd0f2a31125696087d;p=thirdparty%2Fgcc.git 2019-10-01 Jerry DeLisle PR libfortran/91593 * io/read.c (read_decimal): Cast constant to size_t to turn off a bogus warning. * io/write.c (btoa_big): Use memset in lieu of setting the null byte in a string buffer to turn off a bogus warning. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@276439 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index e2c65075aa89..3f69e567ef77 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,11 @@ +2019-10-01 Jerry DeLisle + + PR libfortran/91593 + * io/read.c (read_decimal): Cast constant to size_t to turn off + a bogus warning. + * io/write.c (btoa_big): Use memset in lieu of setting the null + byte in a string buffer to turn off a bogus warning. + 2019-09-28 Jerry DeLisle PR libfortran/91593 diff --git a/libgfortran/io/read.c b/libgfortran/io/read.c index be9f6cb6f76c..4a77e4384b75 100644 --- a/libgfortran/io/read.c +++ b/libgfortran/io/read.c @@ -638,7 +638,7 @@ read_decimal (st_parameter_dt *dtp, const fnode *f, char *dest, int length) /* This is a legacy extension, and the frontend will only allow such cases * through when -fdec-format-defaults is passed. */ - if (w == DEFAULT_WIDTH) + if (w == (size_t) DEFAULT_WIDTH) w = default_width_for_integer (length); p = read_block_form (dtp, &w); diff --git a/libgfortran/io/write.c b/libgfortran/io/write.c index 4ef35561fdd7..eacd1f79715a 100644 --- a/libgfortran/io/write.c +++ b/libgfortran/io/write.c @@ -1048,8 +1048,6 @@ btoa_big (const char *s, char *buffer, int len, GFC_UINTEGER_LARGEST *n) } } - *q = '\0'; - if (*n == 0) return "0"; @@ -1207,6 +1205,9 @@ write_b (st_parameter_dt *dtp, const fnode *f, const char *source, int len) char itoa_buf[GFC_BTOA_BUF_SIZE]; GFC_UINTEGER_LARGEST n = 0; + /* Ensure we end up with a null terminated string. */ + memset(itoa_buf, '\0', GFC_BTOA_BUF_SIZE); + if (len > (int) sizeof (GFC_UINTEGER_LARGEST)) { p = btoa_big (source, itoa_buf, len, &n);