Since LLLazyJIT inherits from LLJIT, the following is valid:
class A { std::unique_ptr<LLJIT> jit; }; auto lazyJit = createLLLazyJIT(..); A example(lazyJit);
But whet jit gets destroyed only the dtor of LLJIT will be called and
it will cause memory leaks on the members of LLLazyJIT.
With a virtual dtor for LLJIT, LLLazyJIT dtor will be called first.