Marc:
I was just told that the development version of gcc:
heine:~/programs/gcc/gcc-mainline> /pkgs/gcc-mainline/bin/gcc -v Using built-in specs. COLLECT_GCC=/pkgs/gcc-mainline/bin/gcc COLLECT_LTO_WRAPPER=/pkgs/gcc-mainline/libexec/gcc/x86_64-pc-linux-gnu/15.0.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../../gcc-mainline/configure --prefix=/pkgs/gcc-mainline --disable-multilib --enable-languages=c --enable-checking=release Thread model: posix Supported LTO compression algorithms: zlib gcc version 15.0.0 20240819 (experimental) (GCC)
supports a version of musttail with documentation source ============ @cindex @code{musttail} statement attribute @item musttail
The @code{gnu::musttail} or @code{clang::musttail} attribute can be applied to a @code{return} statement with a return-value expression that is a function call. It asserts that the call must be a tail call that does not allocate extra stack space, so it is safe to use tail recursion to implement long running loops.
@smallexample [[gnu::musttail]] return foo(); @end smallexample
If the compiler cannot generate a @code{musttail} tail call it will report an error. On some targets tail calls may never be supported. Tail calls cannot reference locals in memory, which may affect builds without optimization when passing small structures, or passing or returning large structures. Enabling @option{-O1} or @option{-O2} can improve the success of tail calls. @end table ============
Must I change any configuration or header files to try the musttail attribute of gcc?
Brad