]> git.ipfire.org Git - thirdparty/gcc.git/commit
Fix __builtin_nested_func_ptr_{created,deleted} symbol versions [PR113402]
authorIain Sandoe <iain@sandoe.co.uk>
Tue, 16 Jan 2024 10:21:14 +0000 (10:21 +0000)
committerIain Sandoe <iain@sandoe.co.uk>
Sun, 28 Jan 2024 10:59:34 +0000 (10:59 +0000)
commit837827f8f2542c36ba5944b4da0a76ea6a64b08b
treeac406b504717cf847f7f5543febf30eac96bd885
parent557bea3d2e13bd8a4a19f494df748f7a384dc649
Fix __builtin_nested_func_ptr_{created,deleted} symbol versions [PR113402]

The symbols for the functions supporting heap-based trampolines were
exported at an incorrect symbol version, the following patch fixes that.

As requested in the PR, this also renames __builtin_nested_func_ptr* to
__gcc_nested_func_ptr*.  In carrying our the rename, we move the builtins
to use DEF_EXT_LIB_BUILTIN.

PR libgcc/113402

gcc/ChangeLog:

* builtins.cc (expand_builtin): Handle BUILT_IN_GCC_NESTED_PTR_CREATED
and BUILT_IN_GCC_NESTED_PTR_DELETED.
* builtins.def (BUILT_IN_GCC_NESTED_PTR_CREATED,
BUILT_IN_GCC_NESTED_PTR_DELETED): Make these builtins LIB-EXT and
rename the library fallbacks to __gcc_nested_func_ptr_created and
__gcc_nested_func_ptr_deleted.
* doc/invoke.texi: Rename these to __gcc_nested_func_ptr_created
and __gcc_nested_func_ptr_deleted.
* tree-nested.cc (finalize_nesting_tree_1): Use builtin_explicit for
BUILT_IN_GCC_NESTED_PTR_CREATED and BUILT_IN_GCC_NESTED_PTR_DELETED.
* tree.cc (build_common_builtin_nodes): Build the
BUILT_IN_GCC_NESTED_PTR_CREATED and BUILT_IN_GCC_NESTED_PTR_DELETED local
builtins only for non-explicit.

libgcc/ChangeLog:

* config/aarch64/heap-trampoline.c: Rename
__builtin_nested_func_ptr_created to __gcc_nested_func_ptr_created and
__builtin_nested_func_ptr_deleted to __gcc_nested_func_ptr_deleted.
* config/i386/heap-trampoline.c: Likewise.
* libgcc2.h: Likewise.
* libgcc-std.ver.in (GCC_7.0.0): Likewise and then move
__gcc_nested_func_ptr_created and
__gcc_nested_func_ptr_deleted from this symbol version to ...
(GCC_14.0.0): ... this one.

Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>
Co-authored-by: Jakub Jelinek <jakub@redhat.com>
gcc/builtins.cc
gcc/builtins.def
gcc/doc/invoke.texi
gcc/tree-nested.cc
gcc/tree.cc
libgcc/config/aarch64/heap-trampoline.c
libgcc/config/i386/heap-trampoline.c
libgcc/libgcc-std.ver.in
libgcc/libgcc2.h