https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113402
--- Comment #8 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>: https://gcc.gnu.org/g:e9b2f15d989addc1c2ad4604f5fa5ee1bda6023b commit r14-8712-ge9b2f15d989addc1c2ad4604f5fa5ee1bda6023b Author: Jakub Jelinek <ja...@redhat.com> Date: Thu Feb 1 21:07:01 2024 +0100 libgcc: Avoid warnings on __gcc_nested_func_ptr_created [PR113402] I'm seeing hundreds of In file included from ../../../libgcc/libgcc2.c:56: ../../../libgcc/libgcc2.h:32:13: warning: conflicting types for built-in function â__gcc_nested_func_ptr_createdâ; expected âvoid(void *, void *, void *)â +[-Wbuiltin-declaration-mismatch] 32 | extern void __gcc_nested_func_ptr_created (void *, void *, void **); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ warnings. Either we need to add like in r14-6218 #pragma GCC diagnostic ignored "-Wbuiltin-declaration-mismatch" (but in that case because of the libgcc2.h prototype (why is it there?) it would need to be also with #pragma GCC diagnostic push/pop around), or we could go with just following how the builtins are prototyped on the compiler side and only cast to void ** when dereferencing (which is in a single spot in each TU). 2024-02-01 Jakub Jelinek <ja...@redhat.com> PR libgcc/113402 * libgcc2.h (__gcc_nested_func_ptr_created): Change type of last argument from void ** to void *. * config/i386/heap-trampoline.c (__gcc_nested_func_ptr_created): Change type of dst from void ** to void * and cast dst to void ** before dereferencing it. * config/aarch64/heap-trampoline.c (__gcc_nested_func_ptr_created): Likewise.