Skip to content

ASAN reports LLVMOrcLLJITLookup memory leak if LLVMOrcIRTransformLayerSetTransform is used #56953

Closed
@mo-xiaoming

Description

@mo-xiaoming

Here is the code that can reproduce this problem, it is modified based on OrcV2CBindingsIRTransforms.c under llvm example by reducing some irrelevant noise

#include <llvm-c/Core.h>
#include <llvm-c/Error.h>
#include <llvm-c/Initialization.h>
#include <llvm-c/LLJIT.h>
#include <llvm-c/Support.h>
#include <llvm-c/Target.h>

#include <iostream>

namespace {
LLVMOrcThreadSafeModuleRef createDemoModule() {
  LLVMOrcThreadSafeContextRef TSCtx = LLVMOrcCreateNewThreadSafeContext();
  LLVMContextRef Ctx = LLVMOrcThreadSafeContextGetContext(TSCtx);
  LLVMModuleRef M = LLVMModuleCreateWithNameInContext("demo", Ctx);
  LLVMTypeRef ParamTypes[] = {LLVMInt32Type(), LLVMInt32Type()};
  LLVMTypeRef SumFunctionType = LLVMFunctionType(LLVMInt32Type(), ParamTypes, 2, 0);
  LLVMValueRef SumFunction = LLVMAddFunction(M, "sum", SumFunctionType);
  LLVMBasicBlockRef EntryBB = LLVMAppendBasicBlock(SumFunction, "entry");
  LLVMBuilderRef Builder = LLVMCreateBuilder();
  LLVMPositionBuilderAtEnd(Builder, EntryBB);
  LLVMValueRef SumArg0 = LLVMGetParam(SumFunction, 0);
  LLVMValueRef SumArg1 = LLVMGetParam(SumFunction, 1);
  LLVMValueRef Result = LLVMBuildAdd(Builder, SumArg0, SumArg1, "result");
  LLVMBuildRet(Builder, Result);
  LLVMDisposeBuilder(Builder); // THIS IS MISSING FROM EXAMPLE FILE
  LLVMOrcThreadSafeModuleRef TSM = LLVMOrcCreateNewThreadSafeModule(M, TSCtx);
  LLVMOrcDisposeThreadSafeContext(TSCtx);
  return TSM;
}

LLVMErrorRef transform(void*, LLVMOrcThreadSafeModuleRef*, LLVMOrcMaterializationResponsibilityRef) {
  return LLVMErrorSuccess;
}

void cant_fail(LLVMErrorRef Err) {
  if (Err != LLVMErrorSuccess) {
    std::cerr << LLVMGetErrorMessage(Err) << '\n';
    exit(1);
  }
}
}

int main() {
  LLVMInitializeCore(LLVMGetGlobalPassRegistry());

  LLVMInitializeNativeTarget();
  LLVMInitializeNativeAsmPrinter();

  LLVMOrcLLJITRef J{};
  cant_fail(LLVMOrcCreateLLJIT(&J, 0));

  LLVMOrcIRTransformLayerSetTransform(LLVMOrcLLJITGetIRTransformLayer(J), transform, nullptr);

  cant_fail(LLVMOrcLLJITAddLLVMIRModule(J, LLVMOrcLLJITGetMainJITDylib(J), createDemoModule()));

  LLVMOrcJITTargetAddress SumAddr{};
  cant_fail(LLVMOrcLLJITLookup(J, &SumAddr, "sum"));

  auto Sum = reinterpret_cast<int32_t (*)(int32_t, int32_t)>(SumAddr);
  int32_t Result = Sum(1, 2);
  std::cout << "1 + 2 = " << Result;

  cant_fail(LLVMOrcDisposeLLJIT(J));

  LLVMShutdown();
}

I first noticed this problem with llvm14.0.4 from vcpkg.json, my project setting can be found at vcpkg.json. By default, I build everything with address sanitizer, with LLVMOrcIRTransformLayerSetTransform, it reports

==4161738==ERROR: LeakSanitizer: detected memory leaks                                                                                                                                                                                                                                 
                                                                                                                                                                                                                                                                                       
Direct leak of 24 byte(s) in 1 object(s) allocated from:                                                                                                                                                                                                                               
    #0 0x7efe946fa1c7 in operator new(unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:99                                                                                                                                                                          
    #1 0x55753c4ef882 in operator() /home/mx/repos/toolchains/vcpkg/buildtrees/llvm/src/org-14.0.4-df58f01928.clean/llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp:796                                                                                                                
    #2 0x55753c4f1c06 in CallImpl<LLVMOrcIRTransformLayerSetTransform(LLVMOrcIRTransformLayerRef, LLVMOrcIRTransformLayerTransformFunction, void*)::<lambda(llvm::orc::ThreadSafeModule, llvm::orc::MaterializationResponsibility&)> > /home/mx/repos/toolchains/vcpkg/buildtrees/llvm/
src/org-14.0.4-df58f01928.clean/llvm/include/llvm/ADT/FunctionExtras.h:222                                                                                                                                                                                                             
    #3 0x55753c68ecac in llvm::unique_function<llvm::Expected<llvm::orc::ThreadSafeModule> (llvm::orc::ThreadSafeModule, llvm::orc::MaterializationResponsibility&)>::operator()(llvm::orc::ThreadSafeModule, llvm::orc::MaterializationResponsibility&) /home/mx/repos/toolchains/vcpk
g/buildtrees/llvm/src/org-14.0.4-df58f01928.clean/llvm/include/llvm/ADT/FunctionExtras.h:384                                                                                                                                                                                           
    #4 0x55753c68eb2c in llvm::orc::IRTransformLayer::emit(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility> >, llvm::orc::ThreadSafeModule) /home/mx/repos/toolchains/vcpkg/buildtrees/llvm/src/org-14.0.4-df58f
01928.clean/llvm/lib/ExecutionEngine/Orc/IRTransformLayer.cpp:24                                                                                                                                                                                                                       
    #5 0x55753c68ebbb in llvm::orc::IRTransformLayer::emit(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility> >, llvm::orc::ThreadSafeModule) /home/mx/repos/toolchains/vcpkg/buildtrees/llvm/src/org-14.0.4-df58f
01928.clean/llvm/lib/ExecutionEngine/Orc/IRTransformLayer.cpp:25
    #6 0x55753c5e1dd1 in llvm::orc::BasicIRLayerMaterializationUnit::materialize(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility> >) /home/mx/repos/toolchains/vcpkg/buildtrees/llvm/src/org-14.0.4-df58f01928.c
lean/llvm/lib/ExecutionEngine/Orc/Layer.cpp:151
    #7 0x55753c5315d7 in llvm::orc::MaterializationTask::run() /home/mx/repos/toolchains/vcpkg/buildtrees/llvm/src/org-14.0.4-df58f01928.clean/llvm/lib/ExecutionEngine/Orc/Core.cpp:1853
    #8 0x55753c5436cb in llvm::orc::ExecutionSession::runOnCurrentThread(std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task> >) /home/mx/repos/toolchains/vcpkg/buildtrees/llvm/src/org-14.0.4-df58f01928.clean/llvm/include/llvm/ExecutionEngine/Orc/Core.h:1667
    #9 0x55753c5678da in void llvm::detail::UniqueFunctionBase<void, std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task> > >::CallImpl<void (*)(std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task> >)>(void*, std::unique_ptr<llvm::orc::Task, std
::default_delete<llvm::orc::Task> >&) (/home/mx/repos/getting-started-llvm-c-api/build/src/getting-started-llvm-c-api+0x15428da)
    #10 0x55753c547858 in llvm::unique_function<void (std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task> >)>::operator()(std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task> >) (/home/mx/repos/getting-started-llvm-c-api/build/src/getting-start
ed-llvm-c-api+0x1522858)
    #11 0x55753c5435d0 in llvm::orc::ExecutionSession::dispatchTask(std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task> >) /home/mx/repos/toolchains/vcpkg/buildtrees/llvm/src/org-14.0.4-df58f01928.clean/llvm/include/llvm/ExecutionEngine/Orc/Core.h:1557
    #12 0x55753c534a66 in llvm::orc::ExecutionSession::dispatchOutstandingMUs() /home/mx/repos/toolchains/vcpkg/buildtrees/llvm/src/org-14.0.4-df58f01928.clean/llvm/lib/ExecutionEngine/Orc/Core.cpp:2231
    #13 0x55753c539131 in llvm::orc::ExecutionSession::OL_completeLookup(std::unique_ptr<llvm::orc::InProgressLookupState, std::default_delete<llvm::orc::InProgressLookupState> >, std::shared_ptr<llvm::orc::AsynchronousSymbolQuery>, std::function<void (llvm::DenseMap<llvm::orc::
JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void> >, llvm::DenseMapInfo<llvm::orc::JITDylib*, void>, llvm::detail::DenseMapPair<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc:
:SymbolStringPtr, void> > > > const&)>) /home/mx/repos/toolchains/vcpkg/buildtrees/llvm/src/org-14.0.4-df58f01928.clean/llvm/lib/ExecutionEngine/Orc/Core.cpp:2773
    #14 0x55753c544502 in llvm::orc::InProgressFullLookupState::complete(std::unique_ptr<llvm::orc::InProgressLookupState, std::default_delete<llvm::orc::InProgressLookupState> >) /home/mx/repos/toolchains/vcpkg/buildtrees/llvm/src/org-14.0.4-df58f01928.clean/llvm/lib/ExecutionE
ngine/Orc/Core.cpp:550
    #15 0x55753c5370ef in llvm::orc::ExecutionSession::OL_applyQueryPhase1(std::unique_ptr<llvm::orc::InProgressLookupState, std::default_delete<llvm::orc::InProgressLookupState> >, llvm::Error) /home/mx/repos/toolchains/vcpkg/buildtrees/llvm/src/org-14.0.4-df58f01928.clean/llvm
/lib/ExecutionEngine/Orc/Core.cpp:2529
    #16 0x55753c53354d in llvm::orc::ExecutionSession::lookup(llvm::orc::LookupKind, std::vector<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags>, std::allocator<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags> > > const&, llvm::orc::SymbolLookupSet
, llvm::orc::SymbolState, llvm::unique_function<void (llvm::Expected<llvm::DenseMap<llvm::orc::SymbolStringPtr, llvm::JITEvaluatedSymbol, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>, llvm::detail::DenseMapPair<llvm::orc::SymbolStringPtr, llvm::JITEvaluatedSymbol> > >)>,
 std::function<void (llvm::DenseMap<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void> >, llvm::DenseMapInfo<llvm::orc::JITDylib*, void>, llvm::detail::DenseMapPair<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc:
:SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void> > > > const&)>) /home/mx/repos/toolchains/vcpkg/buildtrees/llvm/src/org-14.0.4-df58f01928.clean/llvm/lib/ExecutionEngine/Orc/Core.cpp:2069
    #17 0x55753c5337e9 in llvm::orc::ExecutionSession::lookup(std::vector<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags>, std::allocator<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags> > > const&, llvm::orc::SymbolLookupSet const&, llvm::orc::Loo
kupKind, llvm::orc::SymbolState, std::function<void (llvm::DenseMap<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void> >, llvm::DenseMapInfo<llvm::orc::JITDylib*, void>, llvm::detail::DenseMapPair<llvm::orc::JITD
ylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void> > > > const&)>) /home/mx/repos/toolchains/vcpkg/buildtrees/llvm/src/org-14.0.4-df58f01928.clean/llvm/lib/ExecutionEngine/Orc/Core.cpp:2106
    #18 0x55753c533a29 in llvm::orc::ExecutionSession::lookup(std::vector<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags>, std::allocator<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags> > > const&, llvm::orc::SymbolStringPtr, llvm::orc::SymbolStat
e) /home/mx/repos/toolchains/vcpkg/buildtrees/llvm/src/org-14.0.4-df58f01928.clean/llvm/lib/ExecutionEngine/Orc/Core.cpp:2132
    #19 0x55753c5ed648 in llvm::orc::LLJIT::lookupLinkerMangled(llvm::orc::JITDylib&, llvm::orc::SymbolStringPtr) /home/mx/repos/toolchains/vcpkg/buildtrees/llvm/src/org-14.0.4-df58f01928.clean/llvm/lib/ExecutionEngine/Orc/LLJIT.cpp:707
    #20 0x55753c4f54d3 in llvm::orc::LLJIT::lookupLinkerMangled(llvm::orc::JITDylib&, llvm::StringRef) (/home/mx/repos/getting-started-llvm-c-api/build/src/getting-started-llvm-c-api+0x14d04d3)
    #21 0x55753c4f5580 in llvm::orc::LLJIT::lookup(llvm::orc::JITDylib&, llvm::StringRef) (/home/mx/repos/getting-started-llvm-c-api/build/src/getting-started-llvm-c-api+0x14d0580)
    #22 0x55753c4f55f5 in llvm::orc::LLJIT::lookup(llvm::StringRef) (/home/mx/repos/getting-started-llvm-c-api/build/src/getting-started-llvm-c-api+0x14d05f5)
    #23 0x55753c4f084e in LLVMOrcLLJITLookup /home/mx/repos/toolchains/vcpkg/buildtrees/llvm/src/org-14.0.4-df58f01928.clean/llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp:948
    #24 0x55753b2b4153 in foo() /home/mx/repos/getting-started-llvm-c-api/src/orcv2jit.cpp:368                                                                                                                                                                                         
    #25 0x55753b2b3bb5 in main /home/mx/repos/getting-started-llvm-c-api/src/main.cpp:8                                                                                                                                                                                                
    #26 0x7efe93addd8f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58  

then I upgraded the llvm to 14.0.4 in vcpkg, but got the same error

then I build llvm14.0.6 from source by

export LLVM_VER=14.0.6
git clone --depth=1 https://github.com/llvm/llvm-project.git llvm-${LLVM_VER} -b llvmorg-${LLVM_VER} --single-branch

cmake -G Ninja -S llvm -B build -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_INSTALL_PREFIX=$PWD/install -DLLVM_USE_SPLIT_DWARF=ON -DLLVM_USE_SANITIZER="Address"
cmake --build build
cmake --install build

g++ ../the-file-at-the-beginning.cpp `./install/bin/llvm-config --cxxflags --ldflags --system-libs --libs` -fsanitize=address

I got the same error

$ ./a.out                                                                                                                            
1 + 2 = 3                 
=================================================================
==1604253==ERROR: LeakSanitizer: detected memory leaks
                                                                     
Direct leak of 24 byte(s) in 1 object(s) allocated from:
    #0 0x7f081f9cf1c7 in operator new(unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:99
    #1 0x5653f47123f4 in llvm::Expected<llvm::orc::ThreadSafeModule> llvm::detail::UniqueFunctionBase<llvm::Expected<llvm::orc::ThreadSafeModule>, llvm::orc::ThreadSafeModule, llvm::orc::MaterializationResponsibility&>::CallImpl<LLVMOrcIRTransformLayerSetTransform::{lambda(llvm:
:orc::ThreadSafeModule, llvm::orc::MaterializationResponsibility&)#1}>(void*, llvm::orc::ThreadSafeModule&, llvm::orc::MaterializationResponsibility&) (/home/mx/repos/llvm-14.0.6/a.out+0x19ac3f4)
    #2 0x5653f4abe616 in llvm::orc::IRTransformLayer::emit(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility> >, llvm::orc::ThreadSafeModule) (/home/mx/repos/llvm-14.0.6/a.out+0x1d58616)
    #3 0x5653f4abe844 in llvm::orc::IRTransformLayer::emit(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility> >, llvm::orc::ThreadSafeModule) (/home/mx/repos/llvm-14.0.6/a.out+0x1d58844)
    #4 0x5653f490cda6 in llvm::orc::BasicIRLayerMaterializationUnit::materialize(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility> >) [clone .localalias] (/home/mx/repos/llvm-14.0.6/a.out+0x1ba6da6)
    #5 0x5653f47a9e02 in llvm::orc::MaterializationTask::run() (/home/mx/repos/llvm-14.0.6/a.out+0x1a43e02)
    #6 0x5653f47ec796 in llvm::orc::ExecutionSession::runOnCurrentThread(std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task> >) (/home/mx/repos/llvm-14.0.6/a.out+0x1a86796)
    #7 0x5653f47ed77e in void llvm::detail::UniqueFunctionBase<void, std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task> > >::CallImpl<void (*)(std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task> >)>(void*, std::unique_ptr<llvm::orc::Task, std
::default_delete<llvm::orc::Task> >&) (/home/mx/repos/llvm-14.0.6/a.out+0x1a8777e)
    #8 0x5653f47f293c in llvm::orc::ExecutionSession::dispatchTask(std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task> >) (/home/mx/repos/llvm-14.0.6/a.out+0x1a8c93c)
    #9 0x5653f47aaad3 in llvm::orc::ExecutionSession::dispatchOutstandingMUs() (/home/mx/repos/llvm-14.0.6/a.out+0x1a44ad3)
    #10 0x5653f47daf5f in llvm::orc::ExecutionSession::OL_completeLookup(std::unique_ptr<llvm::orc::InProgressLookupState, std::default_delete<llvm::orc::InProgressLookupState> >, std::shared_ptr<llvm::orc::AsynchronousSymbolQuery>, std::function<void (llvm::DenseMap<llvm::orc::
JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void> >, llvm::DenseMapInfo<llvm::orc::JITDylib*, void>, llvm::detail::DenseMapPair<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc:
:SymbolStringPtr, void> > > > const&)>) [clone .localalias] (/home/mx/repos/llvm-14.0.6/a.out+0x1a74f5f)
    #11 0x5653f4829446 in llvm::orc::InProgressFullLookupState::complete(std::unique_ptr<llvm::orc::InProgressLookupState, std::default_delete<llvm::orc::InProgressLookupState> >) (/home/mx/repos/llvm-14.0.6/a.out+0x1ac3446)
    #12 0x5653f4787594 in llvm::orc::ExecutionSession::OL_applyQueryPhase1(std::unique_ptr<llvm::orc::InProgressLookupState, std::default_delete<llvm::orc::InProgressLookupState> >, llvm::Error) [clone .localalias] (/home/mx/repos/llvm-14.0.6/a.out+0x1a21594)
    #13 0x5653f47abb73 in llvm::orc::ExecutionSession::lookup(llvm::orc::LookupKind, std::vector<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags>, std::allocator<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags> > > const&, llvm::orc::SymbolLookupSet
, llvm::orc::SymbolState, llvm::unique_function<void (llvm::Expected<llvm::DenseMap<llvm::orc::SymbolStringPtr, llvm::JITEvaluatedSymbol, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>, llvm::detail::DenseMapPair<llvm::orc::SymbolStringPtr, llvm::JITEvaluatedSymbol> > >)>,
 std::function<void (llvm::DenseMap<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void> >, llvm::DenseMapInfo<llvm::orc::JITDylib*, void>, llvm::detail::DenseMapPair<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc:
:SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void> > > > const&)>) [clone .localalias] (/home/mx/repos/llvm-14.0.6/a.out+0x1a45b73)
    #14 0x5653f47ac8b9 in llvm::orc::ExecutionSession::lookup(std::vector<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags>, std::allocator<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags> > > const&, llvm::orc::SymbolLookupSet const&, llvm::orc::Loo
kupKind, llvm::orc::SymbolState, std::function<void (llvm::DenseMap<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void> >, llvm::DenseMapInfo<llvm::orc::JITDylib*, void>, llvm::detail::DenseMapPair<llvm::orc::JITD
ylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void> > > > const&)>) (/home/mx/repos/llvm-14.0.6/a.out+0x1a468b9)
    #15 0x5653f47add37 in llvm::orc::ExecutionSession::lookup(std::vector<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags>, std::allocator<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags> > > const&, llvm::orc::SymbolStringPtr, llvm::orc::SymbolStat
e) [clone .localalias] (/home/mx/repos/llvm-14.0.6/a.out+0x1a47d37)
    #16 0x5653f4929d70 in llvm::orc::LLJIT::lookupLinkerMangled(llvm::orc::JITDylib&, llvm::orc::SymbolStringPtr) (/home/mx/repos/llvm-14.0.6/a.out+0x1bc3d70)
    #17 0x5653f471ca89 in LLVMOrcLLJITLookup (/home/mx/repos/llvm-14.0.6/a.out+0x19b6a89)
    #18 0x5653f3914e28 in main (/home/mx/repos/llvm-14.0.6/a.out+0xbaee28)
    #19 0x7f081f1b5d8f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
                                                                     
SUMMARY: AddressSanitizer: 24 byte(s) leaked in 1 allocation(s).

Did I do something wrong with this function call?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions