JIT execution engine & shadow stack


I’ve followed the LLVM tutorial to create an execution environment for my DSL and want to enable the shadow stack for garbage collection. On all functions generated by my compiler I call setGC(“shadow-stack”).

I end up with IR functions like this:

define float @“main float”(float %x) gc “shadow-stack” {


When I try to execute a function using executionEngine->getPointerToFunction(myFunction) it returns the following error: unsupported GC: shadow-stack

Am I missing some initialisation step? Is there example code of correct shadow stack usage folk can steer me towards?

Sorry to bother the group with such a trivial questions.