pgsql: Fix illegal attribute propagation in LLVM JIT.

Поиск
Список
Период
Сортировка
От Thomas Munro
Тема pgsql: Fix illegal attribute propagation in LLVM JIT.
Дата
Msg-id E1ruLnH-001MRw-Ki@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Fix illegal attribute propagation in LLVM JIT.

Commit 72559438 started copying more attributes from AttributeTemplate
to the functions we generate on the fly.  In the case of deform
functions, which return void, this meant that "noundef", from
AttributeTemplate's return value (a Datum) was copied to a void type.
Older LLVM releases were OK with that, but LLVM 18 crashes.

Update our llvm_copy_attributes() function to skip copying the attribute
for the return value, if the target function returns void.

Thanks to Dmitry Dolgov for help chasing this down.

Back-patch to all supported releases, like 72559438.

Reported-by: Pavel Stehule <pavel.stehule@gmail.com>
Reviewed-by: Dmitry Dolgov <9erthalion6@gmail.com>
Discussion: https://postgr.es/m/CAFj8pRACpVFr7LMdVYENUkScG5FCYMZDDdSGNU-tch%2Bw98OxYg%40mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/53c8d6c9f157f2bc8211b8de02417e55fefddbc7

Modified Files
--------------
src/backend/jit/llvm/llvmjit.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: David Rowley
Дата:
Сообщение: pgsql: Fixup various StringInfo function usages
Следующее
От: Thomas Munro
Дата:
Сообщение: pgsql: Fix illegal attribute propagation in LLVM JIT.