I'm trying to build a simple bitcode reader (rather than a dedicated pass, in order to be able to debug more easily) and I have some problems extracting the module. Here's what I have inside main:
LLVMModuleRef module;
char *message = nullptr;
LLVMMemoryBufferRef memoryBuffer;
LLVMCreateMemoryBufferWithContentsOfFile(
argv[1],
&memoryBuffer,
&message);
LLVMParseBitcode2(memoryBuffer,&module);
// for (auto func:module->getFunctionList())
{
/* ... */
}
How can I extract Module from LLVMModuleRef? Surely I'm missing something trivial here.
Why are you mixing C and C++ APIs?
If you want to work with
llvm::Module
, I assume you are coding in C++, so just use C++ API to parse the bitcode: