diff --git a/compile.c b/compile.c index 7228defdf0..3eb23ea965 100644 --- a/compile.c +++ b/compile.c @@ -4227,7 +4227,7 @@ setup_args(rb_iseq_t *iseq, LINK_ANCHOR *const args, const NODE *argn, if (nsplat > 1) { int i; for (i=1; iflags & NODE_TYPEMASK)>>NODE_TYPESHIFT)) +#define nd_type(n) ((int) (((n)->flags & NODE_TYPEMASK)>>NODE_TYPESHIFT)) #define nd_set_type(n,t) \ - RNODE(n)->flags=((RNODE(n)->flags&~NODE_TYPEMASK)|((((unsigned long)(t))<flags=(((n)->flags&~NODE_TYPEMASK)|((((unsigned long)(t))<flags)>>NODE_LSHIFT) +#define nd_line(n) (int)(((SIGNED_VALUE)(n)->flags)>>NODE_LSHIFT) #define nd_set_line(n,l) \ - RNODE(n)->flags=((RNODE(n)->flags&~((VALUE)(-1)<nd_location & 0xffff) + (n)->flags=(((n)->flags&~((VALUE)(-1)<nd_location & 0xffff) #define nd_set_column(n, v) \ - RNODE(n)->nd_location = (RNODE(n)->nd_location & ~0xffff) | ((v) > 0xffff ? 0xffff : ((unsigned int)(v)) & 0xffff) + (n)->nd_location = ((n)->nd_location & ~0xffff) | ((v) > 0xffff ? 0xffff : ((unsigned int)(v)) & 0xffff) -#define nd_lineno(n) (int)((RNODE(n)->nd_location >> 16) & 0xffff) +#define nd_lineno(n) (int)(((n)->nd_location >> 16) & 0xffff) #define nd_set_lineno(n, v) \ - RNODE(n)->nd_location = (RNODE(n)->nd_location & ~0xffff0000) | (((v) > 0xffff ? 0xffff : ((unsigned int)(v)) & 0xffff) << 16) + (n)->nd_location = ((n)->nd_location & ~0xffff0000) | (((v) > 0xffff ? 0xffff : ((unsigned int)(v)) & 0xffff) << 16) #define nd_head u1.node #define nd_alen u2.argc