Reset context at the tail end of JITed EEOP_AGG_PLAIN_TRANS.

While no negative consequences are currently known, it's clearly wrong
to not reset the context in one of the branches.

Reported-By: Dmitry Dolgov
Author: Dmitry Dolgov
Discussion: https://postgr.es/m/CAGPqQf165-=+Drw3Voim7M5EjHT1zwPF9BQRjLFQzCzYnNZEiQ@mail.gmail.com
Backpatch: 11-, where JIT compilation support was added
This commit is contained in:
Andres Freund 2018-07-22 20:31:22 -07:00
parent 013f320dc3
commit 1307bc3d45
1 changed files with 2 additions and 0 deletions

View File

@ -2499,6 +2499,8 @@ llvm_compile_expr(ExprState *state)
/* store trans value */
LLVMBuildStore(b, v_newval, v_transvaluep);
LLVMBuildStore(b, v_fcinfo_isnull, v_transnullp);
l_mcxt_switch(mod, b, v_oldcontext);
LLVMBuildBr(b, opblocks[i + 1]);
/* returned datum passed datum, no need to reparent */