jit: Fix accidentally-harmless type confusion
authorAndres Freund <[email protected]>
Tue, 4 Nov 2025 23:36:18 +0000 (18:36 -0500)
committerAndres Freund <[email protected]>
Tue, 4 Nov 2025 23:42:03 +0000 (18:42 -0500)
In 2a0faed9d702, which added JIT compilation support for expressions, I
accidentally used sizeof(LLVMBasicBlockRef *) instead of
sizeof(LLVMBasicBlockRef) as part of computing the size of an allocation. That
turns out to have no real negative consequences due to LLVMBasicBlockRef being
a pointer itself (and thus having the same size). It still is wrong and
confusing, so fix it.

Reported by coverity.

Backpatch-through: 13

src/backend/jit/llvm/llvmjit_expr.c

index 600262fd99d3bdf67fd13eb69765751e20c90f10..56aa5ba2ce7130b0ff44f16f8b9982422b4bf38b 100644 (file)
@@ -2077,7 +2077,7 @@ llvm_compile_expr(ExprState *state)
                    v_nullsp = l_ptr_const(nulls, l_ptr(TypeStorageBool));
 
                    /* create blocks for checking args */
-                   b_checknulls = palloc(sizeof(LLVMBasicBlockRef *) * nargs);
+                   b_checknulls = palloc(sizeof(LLVMBasicBlockRef) * nargs);
                    for (int argno = 0; argno < nargs; argno++)
                    {
                        b_checknulls[argno] =