[llvm-dev] Proper method to initialize all LLVM Internal Data Structures?

mayuyu.io via llvm-dev llvm-dev at lists.llvm.org
Mon Jun 11 22:04:27 PDT 2018


I’m using LLVM6.0 Release version on macOS

Zhang

> 在 2018年6月12日,12:59,Zhang via llvm-dev <llvm-dev at lists.llvm.org> 写道:
> 
> Hi:
> I'm building a small tool on top of LLVM Core Library.
> 
> ```
> LLVMContext context;
> SMDiagnostic diag;
> Module *M = parseIRFile(InputIR, diag, context).get();
>   if (M == nullptr) {
>     diag.print("LLVM", errs());
>     exit(-1);
>   }
>   assert(M->isMaterialized() && "Module not materialized!");
>   PointerType *ArrayPtrTy =
>       M->getTypeByName("struct._Array")->getPointerTo();
> ```
> 
> However this piece of code crashes at Module::getTypeByName because getContext().pImpl is NULL pointer. Other similar issues include Module::getTypeByName results in a NULL pointer dereference because TheTable in StringMap is not allocated/initialized.
> 
> It would be great if someone could show me what's the correct way to initialize all this kind of internal data structures so I could focus on my tool's logic
> 
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev





More information about the llvm-dev mailing list