Hello all,<div><br></div><div>I am an user of LLVM Interpreter. The situation I encounter is as follows:<br><br>---------------------------------------------------------------------<br>main.c:<br><br>jmp_buf buf;<br>int main() {<br>
<br>  if (setjmp(buf) == 0) {<br>    ...<br>  } else {<br>     execute();<br>  }<br><br>}<br>---------------------------------------------------------------------<br>execute.c:<br><br>execute() {<br>    EE->runFunction(Func, Args); // EE is LLVM interpreter, function body <br>
                                                // of Func is in Func.ll<br>}<br>---------------------------------------------------------------------<br>Func.ll:<br><br></div><div>def void @Func() {</div><div>  . </div><div>
  call void @foo() noreturn</div><div>  .</div>
<div>}<br>---------------------------------------------------------------------<br>foo.c:<br><br>void foo() {<br>  longjmp(buf, 1);<br>}<br>---------------------------------------------------------------------<br><br>If Interpreter execute a LLVM function Func, It may not update stack frame of <br>
interpreter simultaneously. An error may occur when recall interpreter::run().<br><br>Does anyone encounter the same problem and have any idea to solve it?<br><br>Thanks a lot<br></div>