With the attached patch we get rid of the following build failure:

/home/andreas/build/../gcc/gcc/config/s390/s390.c: In function ‘void
s390_option_override()’:
/home/andreas/build/../gcc/gcc/config/s390/s390.c:15361:16: error: ‘char*
strncpy(char*, const char*, size_t)’ specified bound 256 equals destination
size [-Werror=stringop-truncation]
        strncpy (s, opt->arg, 256);
        ~~~~~~~~^~~~~~~~~~~~~~~~~~

gcc/ChangeLog:

2017-12-18  Andreas Krebbel  <kreb...@linux.vnet.ibm.com>

        PR target/83420
        * config/s390/s390.c (s390_option_override): Avoid strncpy.
---
 gcc/config/s390/s390.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index 0b04ac0..6f2a189 100644
--- a/gcc/config/s390/s390.c
+++ b/gcc/config/s390/s390.c
@@ -15357,16 +15357,11 @@ s390_option_override (void)
            {
              int val1;
              int val2;
-             char s[256];
-             char *t;
+             char *s = strtok (ASTRDUP (opt->arg), ",");
+             char *t = strtok (NULL, "\0");
 
-             strncpy (s, opt->arg, 256);
-             s[255] = 0;
-             t = strchr (s, ',');
              if (t != NULL)
                {
-                 *t = 0;
-                 t++;
                  val1 = integral_argument (s);
                  val2 = integral_argument (t);
                }
-- 
2.9.1

Reply via email to