[LLVMdev] boost shared pointer & llvm
Vladimir Prus
vladimir at codesourcery.com
Tue Jul 21 04:54:20 PDT 2009
Stefan Weigert wrote:
> hi,
>
> when using the execution engine (no matter, if JIT or Interpreter) i get the
> following assertion as soon as i use boost::shared_ptr:
>
> /build/buildd/llvm-2.5/lib/Target/X86/X86CodeEmitter.cpp:522:
> void<unnamed>::Emitter::emitInstruction(const llvm::MachineInstr&, const
> llvm::TargetInstrDesc*): Assertion `0 && "JIT does not support inline asm!\n"'
> failed.
>
> how can i find out which instruction is executed at this point or in which
> function we are currently?
>
> i also attached a very small example, which triggers the assertion when run
> with lli.
I do not know if there's general mechanism in LLVM to answer your question,
but you probably don't even need that.
1. Compiling with -save-temps will give you a preprocessed source, and you can
grep it for "asm".
2. The assembler most likely comes from boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp.
Defining either BOOST_SP_DISABLE_THREAD, or BOOST_SP_USE_PTHREADS will work around
this problem.
- Volodya
More information about the llvm-dev
mailing list