[llvm-dev] SegFault creating a ExecutionEngine

edA-qa mort-ora-y via llvm-dev llvm-dev at lists.llvm.org
Sat Jun 11 08:59:32 PDT 2016


On 11/06/16 16:54, Tim Northover wrote:
> The EngineBuilder shouldn't be trying to destroy the module. Looking
> at EngineBuilder::create's control flow, the most plausible problem is
> that the TargetMachine is null, so EngineBuilder::selectTarget has
> gone wrong. If so, maybe the Module's triple is wrong or your LLVM is
> compiled strangely so no targets can be found? Either way, it's
> probably time to pull out the debugger. Tim. 

I'm not sure I've passed an invalid value; I've changed my code to not
delete the engine builder and it works:

    auto ebuild = new llvm::EngineBuilder(
unique_ptr<llvm::Module>(module) );
    llvm::ExecutionEngine * ee = ebuild->
        setErrorStr( &errStr ).
        setEngineKind( llvm::EngineKind::JIT ).
        setTargetOptions( topts ).
        create();

My code then runs fine. This is pointing towards destruction of the
`EngineBuilder` itself causing the problem (like it's deleting the
module although it shouldn't, since it's been given to the created
`ExecutionEngine`).

-- 
edA-qa mort-ora-y 
http://mortoray.com/

Leaf - the language we always wanted
http://leaflang.org/




More information about the llvm-dev mailing list