GCC elimina los trampolines en funciones anidadas con captura
Using GCC's Nested Functions with Wide Pointers and No Trampolines II
GCC 16 garantiza que las funciones anidadas que no capturan variables del padre no requieren trampolines, y GCC 17 incorpora dos nuevas funciones integradas que permiten usar funciones anidadas con captura sin necesidad de trampolines, pasando el contexto a través de un registro dedicado. Martin Uecker explica cómo estas mejoras simplifican el código y permiten optimizaciones eficientes, como convertir una llamada en una sola instrucción de multiplicación.
Con los trampolines fuera de escena, todo lo que GCC hace bajo el capó es transformar automáticamente este ejemplo en el anterior.