On 24.03.26 21:53, Nathan Bossart wrote:
LGTM.  To prevent this from happening in the future, I think we ought to
change SOFT_ERROR_OCCURRED to a static inline function.  I tried that, and
I got the following warnings:

     execExprInterp.c:4964:27: warning: incompatible pointer types passing 
'ErrorSaveContext *' (aka 'struct ErrorSaveContext *') to parameter of type 
'Node *' (aka 'struct Node *') [-Wincompatible-pointer-types]
      4964 |                 if (SOFT_ERROR_OCCURRED(&jsestate->escontext))
           |                                         ^~~~~~~~~~~~~~~~~~~~
     ../../../src/include/nodes/miscnodes.h:54:27: note: passing argument to 
parameter 'escontext' here
        54 | SOFT_ERROR_OCCURRED(Node *escontext)
           |                           ^
     execExprInterp.c:5200:26: warning: incompatible pointer types passing 
'ErrorSaveContext *' (aka 'struct ErrorSaveContext *') to parameter of type 
'Node *' (aka 'struct Node *') [-Wincompatible-pointer-types]
      5200 |         if (SOFT_ERROR_OCCURRED(&jsestate->escontext))
           |                                 ^~~~~~~~~~~~~~~~~~~~
     ../../../src/include/nodes/miscnodes.h:54:27: note: passing argument to 
parameter 'escontext' here
        54 | SOFT_ERROR_OCCURRED(Node *escontext)
           |                           ^

I think we just need to add casts to "Node *" for those.  AFAICT there
isn't an actual bug.

Or maybe we change the escontext field to be of type Node *?



Reply via email to