https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99126
--- Comment #1 from Andrea Corallo <andrea.corallo at arm dot com> --- This is the bt of how the C front-end is initializing these declarations: #0 set_builtin_decl (implicit_p=<optimized out>, decl=<function_decl 0x7ffff72a0800 __builtin_return_address>, fncode=<optimized out>) at ../../gcc/tree.h:5662 #1 def_builtin_1 (fncode=<optimized out>, name=<optimized out>, fntype=<optimized out>, libtype=<tree 0x0>, both_p=<optimized out>, fallback_p=<optimized out>, nonansi_p=false, fnattrs=<tree_list 0x7ffff7204f78>, implicit_p=true, fnclass=BUILT_IN_NORMAL) at ../../gcc/c-family/c-common.c:4729 #2 0x0000000000a291c9 in c_define_builtins ( va_list_arg_type_node=<optimized out>, va_list_ref_type_node=<optimized out>) at ../../gcc/builtins.def:933 Thinking loud: I guess in jit-builtins.c we should loop once over all the builtins calling 'set_builtin_decl'? Probably in the constructor for gcc::jit::builtins_manager?