jit: Correct parameter type for generated expression evaluation functions.
authorAndres Freund <andres@anarazel.de>
Tue, 8 Dec 2020 02:21:06 +0000 (18:21 -0800)
committerAndres Freund <andres@anarazel.de>
Tue, 8 Dec 2020 03:34:13 +0000 (19:34 -0800)
commit5da871bfa1ba41768ecd7786293d9b81dcf1b667
treec83ab6ddd2723d62d62dd29808dab8f0b6fc6b0f
parent9543f0861b1d9b566be88edae21f24fb1377f45c
jit: Correct parameter type for generated expression evaluation functions.

clang only uses the 'i1' type for scalar booleans, not for pointers to
booleans (as the pointer might be pointing into a larger memory
allocation). Therefore a pointer-to-bool needs to the "storage" boolean.

There's no known case of wrong code generation due to this, but it seems quite
possible that it could cause problems (see e.g. 72559438f92).

Author: Andres Freund
Discussion: https://postgr.es/m/20201207212142.wz5tnbk2jsaqzogb@alap3.anarazel.de
Backpatch: 11-, where jit support was added
src/backend/jit/llvm/llvmjit_expr.c