Error on Warnings From C Extensions
May differ on other platforms, but currently I see about 19 warnings from C extensions still left. I think we should aim to clean these up and set the `Werror` flag in CI as can help be proactive in identifying bugs from extensions

Here is the list of remaining warnings from a parallel build, so order may not be relevant

```sh
warning: pandas/_libs/groupby.pyx:1088:26: Unreachable code
warning: pandas/_libs/window/aggregations.pyx:59:47: Buffer unpacking not optimized away.
warning: pandas/_libs/window/aggregations.pyx:59:47: Buffer unpacking not optimized away.
warning: pandas/_libs/window/aggregations.pyx:60:47: Buffer unpacking not optimized away.
warning: pandas/_libs/window/aggregations.pyx:60:47: Buffer unpacking not optimized away.
pandas/_libs/hashing.c:25387:20: warning: unused function '__pyx_memview_get_object' [-Wunused-function]
  static PyObject *__pyx_memview_get_object(const char *itemp) {
                   ^
pandas/_libs/hashing.c:25392:12: warning: unused function '__pyx_memview_set_object' [-Wunused-function]
static int __pyx_memview_set_object(const char *itemp, PyObject *obj) {
           ^
pandas/_libs/hashtable.c:63498:20: warning: unused function '__pyx_memview_get_object' [-Wunused-function]
  static PyObject *__pyx_memview_get_object(const char *itemp) {
                   ^
pandas/_libs/hashtable.c:63503:12: warning: unused function '__pyx_memview_set_object' [-Wunused-function]
static int __pyx_memview_set_object(const char *itemp, PyObject *obj) {
           ^
pandas/_libs/algos.c:81415:3: warning: code will never be executed [-Wunreachable-code]
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_arr.rcbuffer->pybuffer);
  ^~~~~~~~~~~~~~~~~~~~~~~
pandas/_libs/algos.c:83050:3: warning: code will never be executed [-Wunreachable-code]
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_arr.rcbuffer->pybuffer);
  ^~~~~~~~~~~~~~~~~~~~~~~
pandas/_libs/algos.c:83956:3: warning: code will never be executed [-Wunreachable-code]
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_arr.rcbuffer->pybuffer);
  ^~~~~~~~~~~~~~~~~~~~~~~
pandas/_libs/algos.c:84862:3: warning: code will never be executed [-Wunreachable-code]
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_arr.rcbuffer->pybuffer);
  ^~~~~~~~~~~~~~~~~~~~~~~
pandas/_libs/algos.c:85039:3: warning: code will never be executed [-Wunreachable-code]
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_arr.rcbuffer->pybuffer);
  ^~~~~~~~~~~~~~~~~~~~~~~
pandas/_libs/algos.c:85945:3: warning: code will never be executed [-Wunreachable-code]
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_arr.rcbuffer->pybuffer);
  ^~~~~~~~~~~~~~~~~~~~~~~
pandas/_libs/algos.c:89901:19: warning: assigning to '__pyx_t_5numpy_uint8_t *' (aka 'unsigned char *') from 'const __pyx_t_5numpy_uint8_t *' (aka 'const unsigned char *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
        __pyx_v_v = (&(*((__pyx_t_5numpy_uint8_t const  *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_13 * __pyx_v_values.strides[0]) ) + __pyx_t_14 * __pyx_v_values.strides[1]) ))));
                  ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pandas/_libs/algos.c:92699:19: warning: assigning to '__pyx_t_5numpy_int8_t *' (aka 'signed char *') from 'const __pyx_t_5numpy_int8_t *' (aka 'const signed char *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
        __pyx_v_v = (&(*((__pyx_t_5numpy_int8_t const  *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_13 * __pyx_v_values.strides[0]) ) + __pyx_t_14 * __pyx_v_values.strides[1]) ))));
                  ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pandas/_libs/algos.c:98041:19: warning: assigning to '__pyx_t_5numpy_int16_t *' (aka 'short *') from 'const __pyx_t_5numpy_int16_t *' (aka 'const short *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
        __pyx_v_v = (&(*((__pyx_t_5numpy_int16_t const  *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_13 * __pyx_v_values.strides[0]) ) + __pyx_t_14 * __pyx_v_values.strides[1]) ))));
                  ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pandas/_libs/algos.c:103383:19: warning: assigning to '__pyx_t_5numpy_int32_t *' (aka 'int *') from 'const __pyx_t_5numpy_int32_t *' (aka 'const int *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
        __pyx_v_v = (&(*((__pyx_t_5numpy_int32_t const  *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_13 * __pyx_v_values.strides[0]) ) + __pyx_t_14 * __pyx_v_values.strides[1]) ))));
                  ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pandas/_libs/algos.c:107434:19: warning: assigning to '__pyx_t_5numpy_int64_t *' (aka 'long *') from 'const __pyx_t_5numpy_int64_t *' (aka 'const long *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
        __pyx_v_v = (&(*((__pyx_t_5numpy_int64_t const  *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_13 * __pyx_v_values.strides[0]) ) + __pyx_t_14 * __pyx_v_values.strides[1]) ))));
                  ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pandas/_libs/algos.c:110194:19: warning: assigning to '__pyx_t_5numpy_float32_t *' (aka 'float *') from 'const __pyx_t_5numpy_float32_t *' (aka 'const float *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
        __pyx_v_v = (&(*((__pyx_t_5numpy_float32_t const  *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_13 * __pyx_v_values.strides[0]) ) + __pyx_t_14 * __pyx_v_values.strides[1]) ))));
                  ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pandas/_libs/algos.c:112955:19: warning: assigning to '__pyx_t_5numpy_float64_t *' (aka 'double *') from 'const __pyx_t_5numpy_float64_t *' (aka 'const double *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
        __pyx_v_v = (&(*((__pyx_t_5numpy_float64_t const  *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_13 * __pyx_v_values.strides[0]) ) + __pyx_t_14 * __pyx_v_values.strides[1]) ))));
                  ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2 warnings generated.
2 warnings generated.
13 warnings generated.
pandas/_libs/tslibs/conversion.c:33343:20: warning: unused function '__pyx_memview_get_object' [-Wunused-function]
  static PyObject *__pyx_memview_get_object(const char *itemp) {
                   ^
pandas/_libs/tslibs/conversion.c:33348:12: warning: unused function '__pyx_memview_set_object' [-Wunused-function]
static int __pyx_memview_set_object(const char *itemp, PyObject *obj) {
           ^
2 warnings generated.
```