]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Suppress Clang warning on adding an integer to a string
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Fri, 25 Mar 2022 14:23:35 +0000 (11:23 -0300)
committerH.J. Lu <hjl.tools@gmail.com>
Sun, 22 Dec 2024 09:35:33 +0000 (17:35 +0800)
Suppress Clang warning on adding an integer to a string, like:

tst-iconv-sticky-input-error.c:125:42: error: adding 'int' to a string does not append to the string [-Werror,-Wstring-plus-int]
  125 |                 expected_output = "ABXY" + skip;
      |                                   ~~~~~~~^~~~~~
tst-iconv-sticky-input-error.c:125:42: note: use array indexing to silence this warning
  125 |                 expected_output = "ABXY" + skip;
      |                                          ^
      |                                   &      [     ]

Co-Authored-By: H.J. Lu <hjl.tools@gmail.com>
Reviewed-by: Sam James <sam@gentoo.org>
dirent/tst-readdir-long.c
dirent/tst-rewinddir.c
iconv/tst-iconv-sticky-input-error.c
posix/bug-regex24.c

index 409318fa52fc664feafaec4472802fa676db6e58..2a9db5901db7e0da7d6939fa08ec71e66c1cba1e 100644 (file)
@@ -26,6 +26,7 @@
 #include <support/support.h>
 #include <support/xdirent.h>
 #include <support/readdir.h>
+#include <libc-diag.h>
 
 /* If positive, at this length an EMSGSIZE error is injected.  */
 static _Atomic int inject_error_at_length;
@@ -59,7 +60,10 @@ add_directory_entry (struct support_fuse_dirstream *d, uint64_t offset)
   if (offset <= 1)
     {
       type = DT_DIR;
+      DIAG_PUSH_NEEDS_COMMENT_CLANG;
+      DIAG_IGNORE_NEEDS_COMMENT_CLANG (13, "-Wstring-plus-int");
       name = ".." + !offset;    /* "." or "..".  */
+      DIAG_POP_NEEDS_COMMENT_CLANG;
       ino = 1;
     }
   else if (length == 1000)
index 1479766ebe8fc911cceb9c5109f465e517a9bca3..891c7e7e48a9438af1bccb8a4d6f5cb6b1e25242 100644 (file)
 #include <support/readdir.h>
 #include <support/support.h>
 #include <support/xdirent.h>
+#include <libc-diag.h>
 
 /* Return the file name at the indicated directory offset.  */
 static char *
 name_at_offset (unsigned int offset)
 {
+  DIAG_PUSH_NEEDS_COMMENT_CLANG;
+  DIAG_IGNORE_NEEDS_COMMENT_CLANG (13, "-Wstring-plus-int");
   if (offset <= 1)
     return xstrdup (".." + !offset); /* "." or "..".  */
   else
     /* Pad the name with a lot of zeros, so that the dirent buffer gets
        filled more quickly.  */
     return xasprintf ("file%0240u", offset);
+  DIAG_POP_NEEDS_COMMENT_CLANG;
 }
 
 /* This many directory entries, including "." and "..".  */
index 34a245f185e614abbcd9abfd21dd9fc83bfe2ebb..68698646aebdfb47ff48687b141360979c0abce1 100644 (file)
@@ -26,6 +26,7 @@
 #include <support/support.h>
 #include <support/test-driver.h>
 #include <stdio.h>
+#include <libc-diag.h>
 
 /* FROM is the input character set, TO the output character set.  If
    IGNORE is true, the iconv descriptor is set up in the same way as
@@ -121,12 +122,15 @@ do_test (void)
           for (int skip = 0; skip < 3; ++skip)
             {
               const char *expected_output;
+             DIAG_PUSH_NEEDS_COMMENT_CLANG;
+             DIAG_IGNORE_NEEDS_COMMENT_CLANG (13, "-Wstring-plus-int");
               if (do_ignore || strstr (charsets[to_idx], "//IGNORE") != NULL)
                 expected_output = "ABXY" + skip;
               else
                 expected_output = "AB" + skip;
               one_direction (charsets[from_idx], charsets[to_idx], do_ignore,
                              "AB\xffXY" + skip, expected_output, limit);
+             DIAG_POP_NEEDS_COMMENT_CLANG;
             }
 
   return 0;
index 97c5c3508a9ea469e0a84e1f6a640ada02d03f1f..72f3d76afeb490045be6027ba53b6ebaf9234a35 100644 (file)
@@ -1,6 +1,7 @@
 #include <regex.h>
 #include <stdio.h>
 #include <string.h>
+#include <libc-diag.h>
 
 #define str "civic"
 
@@ -45,11 +46,14 @@ do_test (void)
       {
        int len = m[i].rm_eo - m[i].rm_so;
 
+       DIAG_PUSH_NEEDS_COMMENT_CLANG;
+       DIAG_IGNORE_NEEDS_COMMENT_CLANG (13, "-Wstring-plus-int");
        printf ("m[%d] = \"%.*s\"\n", i, len, str + m[i].rm_so);
 
        if (strlen (expected[i]) != len
            || memcmp (expected[i], str + m[i].rm_so, len) != 0)
          result = 1;
+       DIAG_POP_NEEDS_COMMENT_CLANG;
       }
 
   return result;