https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88088
--- Comment #16 from Segher Boessenkool <segher at gcc dot gnu.org> --- Something as trivial as this === void h(int (*)(void)); void f(int x) { int g(void) { return x; } h(g); } === will already do. *Anything* that needs trampolines will do.