Hi,<br><br>In my neverending hobby quest to make all of LLVM better on Windows, I am now stumbling over setjmp/longjmp and sjlj exception handling. To test I'm linking with GCC 4.6's libstdc++ and libgcc. The problem also occurs with libc++ and GCC's libsupc++.<br>
<br>I have attached the assembly output for a very simple exception testing program:<br>#include <stdexcept><br>#include <iostream><br>using namespace std;<br><br>int main()<br>{<br>    try { throw runtime_error( "Hello world!" ); }<br>
    catch( exception &e ) { cout << e.what(); }<br>}<br><br>GCC produces the sjlj initialization code, where Clang does not. Is sjlj exception handling not used with Clang or is this a genuine bug?<br><br>Will fixing this hinder future efforts of using/porting stdcxxrt and libunwind for MinGW, or will "flipping a hardcoded switch" be enough to make that transition?<br>
<br>Thanks!<br><br>Ruben<br><br>