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?