Your Function Pointers Are a Lie. Here’s the Truth About Nested C.
Most C programmers assume a function pointer is simply the address of compiled code. But with nested functions in GNU C, it can point to a synthesized stack trampoline. Removing the executable stack didn’t kill this feature—it forced better low-level engineering, silently changing what a function pointer actually means.