aboutsummaryrefslogtreecommitdiff
path: root/src/backend/jit/llvm/llvmjit_wrap.cpp
diff options
context:
space:
mode:
authorAndres Freund <andres@anarazel.de>2020-10-15 13:39:41 -0700
committerAndres Freund <andres@anarazel.de>2020-10-15 14:29:53 -0700
commit72559438f92f9a7d9205192bef601be953c7bd2a (patch)
tree004aca20ed73fa3423b3f69e6e499b0bc1b03c2e /src/backend/jit/llvm/llvmjit_wrap.cpp
parenta97e85f2be400a08d863c1d65f172eb48af3e9b5 (diff)
downloadpostgresql-72559438f92f9a7d9205192bef601be953c7bd2a.tar.gz
postgresql-72559438f92f9a7d9205192bef601be953c7bd2a.zip
llvmjit: Also copy parameter / return value attributes from template functions.
Previously we only copied the function attributes. That caused problems at least on s390x: Because we didn't copy the 'zeroext' attribute for ExecAggTransReparent()'s *IsNull parameters, expressions invoking it didn't ensure that the upper bytes of the registers were zeroed. In the - relatively rare - cases where not, ExecAggTransReparent() wrongly ended up in the newValueIsNull branch due to the register not being zero. Subsequently causing a crash. It's quite possible that this would cause problems on other platforms, and in other places than just ExecAggTransReparent() on s390x. Thanks to Christoph (and the Debian project) for providing me with access to a s390x machine, allowing me to debug this. Reported-By: Christoph Berg Author: Andres Freund Discussion: https://postgr.es/m/20201015083246.kie5726xerdt3ael@alap3.anarazel.de Backpatch: 11-, where JIT was added
Diffstat (limited to 'src/backend/jit/llvm/llvmjit_wrap.cpp')
0 files changed, 0 insertions, 0 deletions