]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
iconvdata: Fix clang -Wstring-plus-int clang warning
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Fri, 17 Oct 2025 19:12:50 +0000 (16:12 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Tue, 21 Oct 2025 12:24:14 +0000 (09:24 -0300)
clang issues an warning adding '{unsigned} int' to a string does not
append to the string.

Use array indexes instead of string addition (it is simpler than
add a supress warning).

Reviewed-by: Sam James <sam@gentoo.org>
iconvdata/gbk.c
iconvdata/iso-2022-cn-ext.c
iconvdata/iso-2022-cn.c

index ac77c891ce24fbecf31a76957b822b3f42a704e6..54ddcc079c7763b44d08df49fb9c28baa22e0ce8 100644 (file)
@@ -13286,7 +13286,7 @@ static const char __gbk_from_ucs4_tab12[][2] =
          cp = "\xa8\xc0";                                                    \
          break;                                                              \
        case 0x2c7 ... 0x2cb:                                                 \
-         cp = "\xa1\xa6\0\0\0\0\0\0\xa1\xa5\0\0\xa8\x40\0\0\xa8\x41" + ((ch - 0x2c7) * 4); \
+         cp = &"\xa1\xa6\0\0\0\0\0\0\xa1\xa5\0\0\xa8\x40\0\0\xa8\x41"[(ch - 0x2c7) * 4]; \
          break;                                                              \
        case 0x2d9:                                                           \
          cp = "\xa8\x42";                                                    \
@@ -13330,7 +13330,7 @@ static const char __gbk_from_ucs4_tab12[][2] =
          buf[1] = '\x80' + (ch - 0x2588);                                    \
          break;                                                              \
        case 0x2593 ... 0x2595:                                               \
-         cp = "\xa8\x88\0\0\xa8\x89\0\0\xa8\x8a" + ((ch - 0x2593) * 4);      \
+         cp = &"\xa8\x88\0\0\xa8\x89\0\0\xa8\x8a"[(ch - 0x2593) * 4];        \
          break;                                                              \
        case 0x25a0:                                                          \
          cp = "\xa1\xf6";                                                    \
@@ -13461,7 +13461,7 @@ static const char __gbk_from_ucs4_tab12[][2] =
          cp = __gbk_from_ucs4_tab12[ch - 0xff01];                            \
          break;                                                              \
        case 0xffe0 ... 0xffe5:                                               \
-         cp = "\xa1\xe9\0\0\xa1\xea\0\0\xa9\x56\0\0\xa3\xfe\0\0\xa9\x57\0\0\xa3\xa4" + ((ch - 0xffe0) * 4); \
+         cp = &"\xa1\xe9\0\0\xa1\xea\0\0\xa9\x56\0\0\xa3\xfe\0\0\xa9\x57\0\0\xa3\xa4" [(ch - 0xffe0) * 4]; \
          break;                                                              \
        default:                                                              \
          UNICODE_TAG_HANDLER (ch, 4);                                        \
index 2afa5e3b4d9e84fb4109b064fd4b5360530037a7..ade40c745e758505dcdc4cdcae7b5f87bf9c8f7f 100644 (file)
@@ -562,7 +562,7 @@ DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
                  }                                                           \
                                                                              \
                assert (used >= 1 && used <= 4);                              \
-               escseq = ")A\0\0)G)E" + (used - 1) * 2;                       \
+               escseq = &")A\0\0)G)E"[(used - 1) * 2];                       \
                *outptr++ = ESC;                                              \
                *outptr++ = '$';                                              \
                *outptr++ = *escseq++;                                        \
@@ -600,7 +600,7 @@ DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
                  }                                                           \
                                                                              \
                assert ((used >> 5) >= 3 && (used >> 5) <= 7);                \
-               escseq = "+I+J+K+L+M" + ((used >> 5) - 3) * 2;                \
+               escseq = &"+I+J+K+L+M"[((used >> 5) - 3) * 2];                \
                *outptr++ = ESC;                                              \
                *outptr++ = '$';                                              \
                *outptr++ = *escseq++;                                        \
index 0b81714256c724bf7f6b881db3cb14368a47e197..7fe4b36f27c00015f5534980b8fd5bf0a9df72b6 100644 (file)
@@ -326,7 +326,7 @@ enum
                  }                                                           \
                                                                              \
                assert ((used >> 3) >= 1 && (used >> 3) <= 3);                \
-               escseq = ")A)G*H" + ((used >> 3) - 1) * 2;                    \
+               escseq = &")A)G*H"[((used >> 3) - 1) * 2];                    \
                *outptr++ = ESC;                                              \
                *outptr++ = '$';                                              \
                *outptr++ = *escseq++;                                        \