diff --git a/src/backend/jit/llvm/llvmjit.c b/src/backend/jit/llvm/llvmjit.c
index 125e1e73ae..5a9be73957 100644
--- a/src/backend/jit/llvm/llvmjit.c
+++ b/src/backend/jit/llvm/llvmjit.c
@@ -77,7 +77,7 @@ LLVMTypeRef StructExprState;
 LLVMTypeRef StructAggState;
 LLVMTypeRef StructAggStatePerGroupData;
 LLVMTypeRef StructAggStatePerTransData;
-LLVMTypeRef StructErrorSaveContext;
+LLVMTypeRef StructNode;
 
 LLVMValueRef AttributeTemplate;
 
@@ -1130,7 +1130,7 @@ llvm_create_types(void)
 	StructAggState = llvm_pg_var_type("StructAggState");
 	StructAggStatePerGroupData = llvm_pg_var_type("StructAggStatePerGroupData");
 	StructAggStatePerTransData = llvm_pg_var_type("StructAggStatePerTransData");
-	StructErrorSaveContext = llvm_pg_var_type("StructErrorSaveContext");
+	StructNode = llvm_pg_var_type("StructNode");
 
 	AttributeTemplate = LLVMGetNamedFunction(llvm_types_module, "AttributeTemplate");
 }
diff --git a/src/backend/jit/llvm/llvmjit_expr.c b/src/backend/jit/llvm/llvmjit_expr.c
index 7d44a4c9f4..aa0e09bd7a 100644
--- a/src/backend/jit/llvm/llvmjit_expr.c
+++ b/src/backend/jit/llvm/llvmjit_expr.c
@@ -1358,11 +1358,13 @@ llvm_compile_expr(ExprState *state)
 
 						v_params[0] = l_ptr_const(op->d.iocoerce.finfo_in,
 												  l_ptr(StructFmgrInfo));
-						v_params[1] = v_output;
+						v_params[1] = LLVMBuildIntToPtr(b, v_output,
+														l_ptr(LLVMInt8TypeInContext(lc)),
+														"");
 						v_params[2] = l_oid_const(lc, ioparam);
 						v_params[3] = l_int32_const(lc, -1);
 						v_params[4] = l_ptr_const(op->d.iocoerce.escontext,
-												  l_ptr(StructErrorSaveContext));
+												  l_ptr(StructNode));
 
 						/*
 						 * InputFunctionCallSafe() will write directly into
@@ -1378,6 +1380,7 @@ llvm_compile_expr(ExprState *state)
 						 * Return null if InputFunctionCallSafe() encountered
 						 * an error.
 						 */
+						v_success = LLVMBuildZExt(b, v_success, TypeStorageBool, "");
 						v_resnullp = LLVMBuildICmp(b, LLVMIntEQ, v_success,
 												   l_sbool_const(0), "");
 					}
diff --git a/src/backend/jit/llvm/llvmjit_types.c b/src/backend/jit/llvm/llvmjit_types.c
index e1e9625038..78f1f14ba0 100644
--- a/src/backend/jit/llvm/llvmjit_types.c
+++ b/src/backend/jit/llvm/llvmjit_types.c
@@ -67,7 +67,7 @@ TupleTableSlot StructTupleTableSlot;
 HeapTupleTableSlot StructHeapTupleTableSlot;
 MinimalTupleTableSlot StructMinimalTupleTableSlot;
 TupleDescData StructTupleDescData;
-ErrorSaveContext StructErrorSaveContext;
+Node		StructNode;
 
 
 /*
diff --git a/src/include/jit/llvmjit.h b/src/include/jit/llvmjit.h
index 5b7681eba9..e4ff3be566 100644
--- a/src/include/jit/llvmjit.h
+++ b/src/include/jit/llvmjit.h
@@ -83,7 +83,7 @@ extern PGDLLIMPORT LLVMTypeRef StructExprState;
 extern PGDLLIMPORT LLVMTypeRef StructAggState;
 extern PGDLLIMPORT LLVMTypeRef StructAggStatePerTransData;
 extern PGDLLIMPORT LLVMTypeRef StructAggStatePerGroupData;
-extern PGDLLIMPORT LLVMTypeRef StructErrorSaveContext;
+extern PGDLLIMPORT LLVMTypeRef StructNode;
 
 extern PGDLLIMPORT LLVMValueRef AttributeTemplate;
 
