Does the X86 backend (or any other backend) correctly implement support for __builtin_setjmp and __builtin_longjmp?<br>I don't get the correct result when I compile and run the following code with clang.<br><br># clang foo.c -O3; ./a.out<br>
<br>#include <stdio.h><br>void *buf[20];<br>void __attribute__((noinline))<br>foo (void)<br>{<br> __builtin_longjmp (buf, 1);<br>}<br><br>int<br>main (int argc, char** argv)<br>{<br> if (__builtin_setjmp (buf))<br>
{<br> printf("return\n");<br> return 0;<br> }<br><br> printf("call foo\n");<br> foo ();<br><br> return 1;<br>}<br><br>