https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94359
--- Comment #4 from Iain Sandoe <iains at gcc dot gnu.org> --- so, it seems: rs6000_function_ok_for_sibcall () calls rs6000_decl_ok_for_sibcall () which gets a NULL decl and thus this returns false /* Under the AIX or ELFv2 ABIs we can't allow calls to non-local functions, because the callee may have a different TOC pointer to the caller and there's no way to ensure we restore the TOC when we return. */ if (!decl || DECL_EXTERNAL (decl) || DECL_WEAK (decl) || !(*targetm.binds_local_p) (decl)) return false; ==== The signature of the callee is void (void *) So not sure how to proceed here at the moment (I wonder if this works for PPC on the clang impl). The comment indicates that this is going to fail for AIX too as it stands.