> I see. I do wonder how we should deal with the inherent > dependence on optimization for [[musttail]] to work then? "Solve" > the problem with good documentation?
For now that's good enough I think. If it's a significant problem it can always be improved later. > Offer a -fignore-musttail > option to allow a -O0 build to at least succeed? But then [[musttail]] > would rather be [[shouldtail]] and can no longer be for correctness? I don't think ignore-musttail is a good idea because an interpreter relying on this would almost certainly die very quickly after overflowing its stack. The feature is only useful when it can be relied on. > How does clang solve this? clang++ 17 seems to handle both cases (large struct in memory or struct fitting into registers) without optimization. I haven't checked the LLVM source on the exact details. -Andi