<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/74617>74617</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [libc] -Wcast-function-type in libc/src/signal/linux/signal_utils.h
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            libc
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          nickdesaulniers
      </td>
    </tr>
</table>

<pre>
    ```
[270/361] Building CXX object projects/libc/src/signal/linux/CMakeFiles/libc.src.signal.linux.raise.dir/raise.cpp.o
In file included from /android0/llvm-project/libc/src/signal/linux/raise.cpp:10:
/android0/llvm-project/libc/src/signal/linux/signal_utils.h: In member function ‘__llvm_libc_18_0_0_git::KernelSigaction& __llvm_libc_18_0_0_git::KernelSigaction::operator=(const sigaction&)’:
/android0/llvm-project/libc/src/signal/linux/signal_utils.h:38:20: warning: cast between incompatible function types from ‘void (*)(int, siginfo_t*, void*)’ to ‘void (*)(int)’ [-Wcast-function-type]
   38 |       sa_handler = reinterpret_cast<HandlerType *>(sa.sa_sigaction);
      |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/android0/llvm-project/libc/src/signal/linux/signal_utils.h: In member function ‘__llvm_libc_18_0_0_git::KernelSigaction::operator sigaction() const’:
/android0/llvm-project/libc/src/signal/linux/signal_utils.h:51:25: warning: cast between incompatible function types from ‘void (*)(int)’ to ‘void (*)(int, siginfo_t*, void*)’ [-Wcast-function-type]
   51 |       sa.sa_sigaction = reinterpret_cast<SiginfoHandlerType *>(sa_handler);
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
I'm trying to get -Werror re-enabled in https://github.com/llvm/llvm-project/pull/74506; building with GCC flags the above warning.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMls1u4zYQx59mfBlYkEh9HnTwR9wGRU9bYPcmUNJIZpcmBZJKmkufvaBsZ2O0i40XCFDCsAhyOPOf4U8YCefkqIlqyLaQ7Vdi9kdjay27rz05MSstybpVa_qXGvL48ov3EG8g27IiBnbgeQLZHrezVL3UI-6-fEHT_kmdx8ma8HTADkq2HbCDs8u_HLVQy6qe_wJ22P0uvtJBKrqaRs520dksWowiK6SjqJcW2OE876YpMmcxjxoHqQil7tTcU4-DNScEdhC6t0b2QadST6f1RdEPBb1GAL5JYuCbS9I_7_G80MxeKhcdgW_wUeOJTi1ZHGbdeWk0wgODMoaqbJrgvAkum6Rs4iZuRumDDr75jawm9UmOYjkELMd7zJdFM5EV3ljge2BlZ7Tz6N54BFZdtVQfkj0vgW9YqCw-C6ulHsO0E85jS_6ZSIfLNKdJeNkq-lYi_zKRu9zvtVpPRvYIrAS2CcJZKbUHtgsZST2Yxi8bOwx2F5trcujNj_y8MYZsu_4cRK6vetZBD2T7c4UQkZcIxQ7Pw4nmKHSvyCLwPVqS2pOdLPkmeAG--_W8_cfLRBjC8gdgpRORE82b-6iAb18jIL6JcDMge_j7vvE_xvqG07dwlsAqXJD9WESzJCCafSSid3H4Pp7fgWiW3CB6w9r3OP10Dv0dXK-Uv5vUn8T1FdjbXvQIrDihty-h_3iDI3lcfyZrjUVLa9KiVdSj1Hj0fnKBFnYAdhilP85t1JnTBZZ_MzPNKkBSpFmcA99ie21zz9If8ZfdDgclRof-SCha80RXVqJVX_O-4pVYUZ0UcVIWFSvi1bFuk7zqi7RKS9aKfBBFwfK8GKq253EpeLKSNYsZT1icJ3mS8jhKh1zkVKQpSwc-MAZpTCchVRTERsaOK-ncTHWR5kmxUqIl5ZaWztiZeRaau62X3Np5dJDGSjrvvjnw0qvlM2A5kO3xvyAKFbznJVrNVtV3l3zJxS1Fz5PinwAAAP__szS_oA">