during neovim compilation failure with not a struct nor a union
.../neovim/src/mpack/lmpack.c:325: memcpy(unpacker->string_buffer + MPACK_PARENT_NODE(node)->pos,
^ parse.c: in struct_ref : not a struct nor a union
It happens when we have a macro with one of the return value in a condition is NULL like :
during neovim compilation failure with not a struct nor a union .../neovim/src/mpack/lmpack.c:325: memcpy(unpacker->string_buffer + MPACK_PARENT_NODE(node)->pos,
^ parse.c: in struct_ref : not a struct nor a union
It happens when we have a macro with one of the return value in a condition is NULL like :
define MPACK_PARENT_NODE(n) (((n) - 1)->pos == (size_t)-1 ? NULL : (n) - 1)
in this case it takes the first type as the expected type instead of returning the second type.