]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
jit: Adjust back-patch of f90b4a84 to 12 and 13.
authorThomas Munro <tmunro@postgresql.org>
Mon, 23 Oct 2023 22:14:21 +0000 (11:14 +1300)
committerThomas Munro <tmunro@postgresql.org>
Mon, 23 Oct 2023 22:23:21 +0000 (11:23 +1300)
While back-patching f90b4a84, I missed that branches before
REL_14_STABLE did some (accidental?) type punning in a function
parameter, and failed to adjust these two branches accordingly.  That
didn't seem to cause a problem for newer LLVM versions or non-debug
builds, but older debug builds would fail a type cross-check assertion.
Fix by supplying the correct function argument type.  In REL_14_STABLE
the same change was made by commit df99ddc7.

Per build farm animal xenodermus, which runs a debug build of LLVM 6
with jit_above_cost=0.

Discussion: https://postgr.es/m/CA%2BhUKGLQ38rgZ3bvNHXPRjsWFAg3pa%3Dtnpeq0osa%2B%3DmiFD5jAw%40mail.gmail.com

src/backend/jit/llvm/llvmjit_expr.c

index 075ee76310e7a8866691032aa45ec1e0bd5e935d..f69780a5d7a9357b9cd36b862f9bde4d52f53542 100644 (file)
@@ -1154,7 +1154,7 @@ llvm_compile_expr(ExprState *state)
                                                                                 llvm_pg_var_type("TypeExecEvalSubroutine"));
 
                                        v_params[0] = v_state;
-                                       v_params[1] = l_ptr_const(op, l_ptr(TypeSizeT));
+                                       v_params[1] = l_ptr_const(op, l_ptr(StructExprEvalStep));
                                        v_params[2] = v_econtext;
                                        l_call(b,
                                                   LLVMGetFunctionType(ExecEvalSubroutineTemplate),