So I've managed to get my stack crawler working and passing its unit tests - this is the one I've been working on as an alternative to shadow-stack: it uses only static constant data structures (no global variables or thread-local data), which means that it's fully compatible with a multi-threaded environment.<div>

<br></div><div>One question that has arisen, however, is what to do about function parameters that may be stack roots. You can't call llvm.gcroot() on a function parameter. The only thing I can think of is to copy any function parameter that is a pointer, or which contains a pointer, into a local variable. This seems complicated and inefficient to me (for one thing, it means that every stack frame just got 8 bytes bigger due to the need to store the 'this' pointer locally)  - is there a better way?<br clear="all">

<br>-- <br>-- Talin<br>
</div>