For me it seems that the LLVMRunPasses() call, new in commit 76200e5ee469e4a9db5f9514b9d0c6a31b496bff Author: Thomas Munro <tmu...@postgresql.org> Date: Wed Oct 18 22:15:54 2023 +1300
jit: Changes for LLVM 17. is reaching code that segfaults inside libLLVM, specifically in llvm::InlineFunction(llvm::CallBase&, llvm::InlineFunctionInfo&, bool, llvm::AAResults*, bool, llvm::Function*). First obvious question would be: is that NULL argument still acceptable? Perhaps it wants our LLVMTargetMachineRef there: err = LLVMRunPasses(module, passes, NULL, options); But then when we see what is does with that argument, it arrives at a place that apparently accepts nullptr. https://github.com/llvm/llvm-project/blob/6b2bab2839c7a379556a10287034bd55906d7094/llvm/lib/Passes/PassBuilderBindings.cpp#L56 https://github.com/llvm/llvm-project/blob/6b2bab2839c7a379556a10287034bd55906d7094/llvm/include/llvm/Passes/PassBuilder.h#L124 Hrmph. Might need an assertion build to learn more. I'll try to look again next week or so.