[llvm-dev] Propagation of foreign c++ exceptions (msvc, x64, llvm 3.7.1, MCJIT) through IR code

koffie drinker via llvm-dev llvm-dev at lists.llvm.org
Thu Jan 21 06:21:13 PST 2016


Hi all,

I have the following code:

[use llvm to generate ir_func() ]

in side the ir_func() there's a call to a native cpp function that throws
an exception.
(Just imagine changing the fibonacci example and calling a native c++ func
that throws inside the fibonacci body)

I can't seem to catch "foreign" exception or any exception using the
following pseudo code:

try {
// cast function ptr and execute
   ir_func();
} catch (const myEx&) {
} catch (...) {
}

Looking at:
*LLVM_ENABLE_EH:BOOL*Build LLVM with exception-handling support. This is
necessary if you wish to link against LLVM libraries and make use of C++
exceptions in your own code that need to propagate through LLVM code.
Defaults to OFF.
It seems to be exactly what I require.

I enabled LLVM_ENABLE_EH and LLVM_ENABLE_RTTI but it doesn't seems to work.
I also tested it with /EHs /EHsc in msvc. It makes no difference

I also looked at the ExceptionDemo.cpp, but it seems to be unsupported
under windows. Do I need to try catch and retrhow in my ir_func() ?

Regards,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160121/ccc8473f/attachment.html>


More information about the llvm-dev mailing list