summaryrefslogtreecommitdiff
path: root/libgfortran
diff options
context:
space:
mode:
authorJerry DeLisle <jvdelisle@gcc.gnu.org>2019-10-02 02:35:14 +0000
committerJerry DeLisle <jvdelisle@gcc.gnu.org>2019-10-02 02:35:14 +0000
commita4626a7b3ed64eac59c7905c5d2f997ffd1bedb2 (patch)
treea38be292d73ae8293780c9d009dc121ba0b13c10 /libgfortran
parent8dc7a6f2a59b252cb756bd1f450558a4850cb6d2 (diff)
re PR libfortran/91593 (Implicit enum conversions in libgfortran/io/transfer.c)
2019-10-01 Jerry DeLisle <jvdelisle@gcc.gnu.org> 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. From-SVN: r276439
Diffstat (limited to 'libgfortran')
-rw-r--r--libgfortran/ChangeLog8
-rw-r--r--libgfortran/io/read.c2
-rw-r--r--libgfortran/io/write.c5
3 files changed, 12 insertions, 3 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index e2c65075aa8..3f69e567ef7 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,11 @@
+2019-10-01 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ 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 <jvdelisle@gcc.gnu.org>
PR libfortran/91593
diff --git a/libgfortran/io/read.c b/libgfortran/io/read.c
index be9f6cb6f76..4a77e4384b7 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 4ef35561fdd..eacd1f79715 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);