I'm moving this thread to llvm-dev in the hopes of reaching a wider audience.<div><br></div><div>This patch relaxes the restriction on llvm.gcroot so that it can work with non-pointer allocas. The only changes are to Verifier.cpp - it appears from my testing that llvm.gcroot always worked fine with non-pointer allocas, except that the verifier wouldn't allow it. I've used this patch to build an efficient stack crawler (an alternative to shadow-stack that uses only static constant data structures.)</div>

<div><br></div><div>Here's a deal: If you accept this patch, I'll write up an extensive tutorial on how to write a stack crawler like mine. (Actually, it's already written, however without this patch the tutorial doesn't make any sense.)<br clear="all">

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