diff --git a/ChangeLog b/ChangeLog index 84a7cf7ef4..968980b8b2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Mon Jun 25 17:59:32 2007 NAKAMURA Usaku <usa@ruby-lang.org> + + * include/ruby/node.h (NODE_LMASK, nd_line): shouldn't use int and/or + long carelessly. + Mon Jun 25 11:36:35 2007 Koichi Sasada <ko1@atdot.net> * gc.h: add RUBY_ prefix to debug macros. diff --git a/include/ruby/node.h b/include/ruby/node.h index a477c9d555..e5920c5247 100644 --- a/include/ruby/node.h +++ b/include/ruby/node.h @@ -173,8 +173,8 @@ typedef struct RNode { RNODE(n)->flags=((RNODE(n)->flags&~NODE_TYPEMASK)|(((t)<<NODE_TYPESHIFT)&NODE_TYPEMASK)) #define NODE_LSHIFT (NODE_TYPESHIFT+7) -#define NODE_LMASK (((long)1<<(sizeof(NODE*)*CHAR_BIT-NODE_LSHIFT))-1) -#define nd_line(n) ((unsigned int)(((RNODE(n))->flags>>NODE_LSHIFT)&NODE_LMASK)) +#define NODE_LMASK (((SIGNED_VALUE)1<<(sizeof(NODE*)*CHAR_BIT-NODE_LSHIFT))-1) +#define nd_line(n) ((VALUE)(((RNODE(n))->flags>>NODE_LSHIFT)&NODE_LMASK)) #define nd_set_line(n,l) \ RNODE(n)->flags=((RNODE(n)->flags&~(-1<<NODE_LSHIFT))|(((l)&NODE_LMASK)<<NODE_LSHIFT))