diff --git a/src/backend/executor/execExprInterp.c b/src/backend/executor/execExprInterp.c
index d8735286c4..387311fdfb 100644
--- a/src/backend/executor/execExprInterp.c
+++ b/src/backend/executor/execExprInterp.c
@@ -4381,6 +4381,7 @@ ExecEvalJsonExprPath(ExprState *state, ExprEvalStep *op,
 	if (!*op->resnull && jsexpr->use_io_coercion)
 	{
 		FunctionCallInfo fcinfo;
+		Node	   *node;
 
 		Assert(jump_eval_coercion == -1);
 		fcinfo = jsestate->input_fcinfo;
@@ -4396,7 +4397,8 @@ ExecEvalJsonExprPath(ExprState *state, ExprEvalStep *op,
 
 		fcinfo->isnull = false;
 		*op->resvalue = FunctionCallInvoke(fcinfo);
-		if (SOFT_ERROR_OCCURRED(&jsestate->escontext))
+		node = (Node *) &jsestate->escontext;
+		if (SOFT_ERROR_OCCURRED(node))
 			error = true;
 	}
 
@@ -4552,8 +4554,9 @@ void
 ExecEvalJsonCoercionFinish(ExprState *state, ExprEvalStep *op)
 {
 	JsonExprState *jsestate = op->d.jsonexpr.jsestate;
+	Node	   *node = (Node *) &jsestate->escontext;
 
-	if (SOFT_ERROR_OCCURRED(&jsestate->escontext))
+	if (SOFT_ERROR_OCCURRED(node))
 	{
 		*op->resvalue = (Datum) 0;
 		*op->resnull = true;
