3 ms·
The musttail attribute performs several checks to ensure that a tail call can be guaranteed, and rejects the program if these rules are violated. The documenta
by haberman 6y ago
The musttail attribute performs several checks to ensure that a tail call can be guaranteed, and rejects the program if these rules are violated. The documentation has the details: https://github.com/llvm/llvm-project/blob/3b8ec86fd576b9808dc63da620d9a4f7bbe04372/clang/include/clang/Basic/AttrDocs.td#L449-L468 https://github.com/llvm/llvm-project/blob/3b8ec86fd576b9808d...
These rules guarantee that the tail call is possible to perform on every platform. They end up being more strict than is necessary on some platforms and calling conventions.