r = add_opcode(reg, OP_CALL);
if (r) return r;
node->call_addr = BBUF_GET_OFFSET_POS(reg) + SIZE_ABSADDR + SIZE_OP_JUMP;
- NODE_STATUS_SET((Node* )node, NST_ADDR_FIXED);
+ NODE_STATUS_SET(node, NST_ADDR_FIXED);
r = add_abs_addr(reg, (int )node->call_addr);
if (r) return r;
len = compile_length_tree(NODE_ENCLOSE_BODY(node), reg);
#define NST_BY_NUMBER (1<<14) /* {n,m} */
#define NODE_STATUS(node) (((Node* )node)->u.base.status)
-#define NODE_STATUS_SET(node,f) ((node)->u.base.status |= (f))
-#define NODE_STATUS_CLEAR(node,f) ((node)->u.base.status &= ~(f))
+#define NODE_STATUS_SET(node,f) (NODE_STATUS(node) |= (f))
+#define NODE_STATUS_CLEAR(node,f) (NODE_STATUS(node) &= ~(f))
#define NODE_IS_BY_NUMBER(node) ((NODE_STATUS(node) & NST_BY_NUMBER) != 0)
#define NODE_IS_IN_REPEAT(node) ((NODE_STATUS(node) & NST_IN_REPEAT) != 0)