[libc-commits] [libc] [libc] Add `-Wsign-conversion` (PR #129811)

Vinay Deshmukh via libc-commits libc-commits at lists.llvm.org
Wed Mar 5 17:22:04 PST 2025


================
@@ -285,7 +285,10 @@ LIBC_INLINE constexpr cpp::array<word, N> shift(cpp::array<word, N> array,
       return 0;
     if (i >= int(N))
       return is_neg ? cpp::numeric_limits<word>::max() : 0;
+    #pragma GCC diagnostic push
+    #pragma GCC diagnostic ignored "-Wsign-conversion"
     return array[i];
----------------
vinay-deshmukh wrote:

This didn't work, as the error is at:
```
llvm-project/libc/src/__support/big_int.h:288:36: error: implicit conversion changes signedness: 'const int' to 'size_t' (aka 'unsigned long') [-Werror,-Wsign-conversion]
    return static_cast<word>(array[i]);
```

But:

```suggestion
    return array[static_cast<size_t>(i)];
```

did work

https://github.com/llvm/llvm-project/pull/129811


More information about the libc-commits mailing list