从bitcode文件解析LLVM IR

时间:2018-02-21 08:52:55

标签: c++ llvm

我正在尝试从位代码文件解析LLVM IR。我完成了以下步骤。

HELLO.CPP

#include <iostream>

int main() {
  std::cout << "Hello world!" << "\n";
  return 0;
}

dump.cpp

#include <llvm/IR/Module.h>
#include <llvm/IRReader/IRReader.h>
#include <llvm/IR/LLVMContext.h>
#include <llvm/Support/SourceMgr.h>

using namespace llvm;
int main()
{
  LLVMContext context;
  SMDiagnostic error;
  Module *m = parseIRFile("hello.bc", error, context).get();
  if(m)
  {
    m->dump();
  } 

  return 0;
}

$ clang ++ -O3 -emit-llvm hello.cpp -c -o hello.bc

$ clang ++ -g -O3 dump.cpp llvm-config --cxxflags --ldflags --system-libs --libs all -o dump

$ ./dump

断言失败:(Val&amp;&amp;&#34; isa&lt;&gt;用于空指针&#34;),函数doit,文件/ Users / chamibuddhika / Builds / llvm / include /llvm/Support/Casting.h,第106行。 中止陷阱:6

所以我最后得到了上面的错误。可能是什么导致了这个?我在llvm-6.0 rc2。

0 个答案:

没有答案