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.

Reply via email to