From: Lang Hames Date: Tue, 27 Apr 2021 05:25:26 +0000 (-0700) Subject: [ORC] Make LLVMOrcLLJITBuilderSetJITTargetMachineBuilder consume as advertised. X-Git-Tag: llvmorg-14-init~8366 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a702fa2a04221a3b26abd7a9ef3d908f351a6eb2;p=platform%2Fupstream%2Fllvm.git [ORC] Make LLVMOrcLLJITBuilderSetJITTargetMachineBuilder consume as advertised. This should fix some of the memory leaks seen in the ORC C API test case. --- diff --git a/llvm/include/llvm-c/Orc.h b/llvm/include/llvm-c/Orc.h index 78f6f28..76692ba 100644 --- a/llvm/include/llvm-c/Orc.h +++ b/llvm/include/llvm-c/Orc.h @@ -635,8 +635,9 @@ LLVMErrorRef LLVMOrcJITTargetMachineBuilderDetectHost( * * This operation takes ownership of the given TargetMachine and destroys it * before returing. The resulting JITTargetMachineBuilder is owned by the client - * and must be passed to a consuming operation (e.g. LLVMOrcCreateLLJITBuilder) - * or disposed of by calling LLVMOrcDisposeJITTargetMachineBuilder. + * and must be passed to a consuming operation (e.g. + * LLVMOrcLLJITBuilderSetJITTargetMachineBuilder) or disposed of by calling + * LLVMOrcDisposeJITTargetMachineBuilder. */ LLVMOrcJITTargetMachineBuilderRef LLVMOrcJITTargetMachineBuilderCreateFromTargetMachine(LLVMTargetMachineRef TM); diff --git a/llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp b/llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp index 419f6e8..5f9cb10 100644 --- a/llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp +++ b/llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp @@ -513,7 +513,8 @@ void LLVMOrcDisposeLLJITBuilder(LLVMOrcLLJITBuilderRef Builder) { void LLVMOrcLLJITBuilderSetJITTargetMachineBuilder( LLVMOrcLLJITBuilderRef Builder, LLVMOrcJITTargetMachineBuilderRef JTMB) { - unwrap(Builder)->setJITTargetMachineBuilder(*unwrap(JTMB)); + unwrap(Builder)->setJITTargetMachineBuilder(std::move(*unwrap(JTMB))); + LLVMOrcDisposeJITTargetMachineBuilder(JTMB); } void LLVMOrcLLJITBuilderSetObjectLinkingLayerCreator(