From 5d396ad1b2d3d5524094a7612d5f20505156b07a Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Thu, 30 Jan 2025 16:59:18 +0900 Subject: [PATCH] Make node line macros inline functions To suppress -Waddress warning and for the debugging purpose. --- node.h | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/node.h b/node.h index bfc7493e50a800..d8ee7dbb649d25 100644 --- a/node.h +++ b/node.h @@ -74,10 +74,20 @@ RUBY_SYMBOL_EXPORT_END #define NODE_LSHIFT (NODE_TYPESHIFT+7) #define NODE_LMASK (((SIGNED_VALUE)1<<(sizeof(VALUE)*CHAR_BIT-NODE_LSHIFT))-1) -#define nd_line(n) (int)((n) ? ((SIGNED_VALUE)(n)->flags)>>NODE_LSHIFT : -1) -#define nd_set_line(n,l) \ - (n)->flags=(((n)->flags&~((VALUE)(-1)<flags; + return (int)(flags >> NODE_LSHIFT); +} +static inline void +nd_set_line(NODE *n, SIGNED_VALUE l) +{ + n->flags &= ~(~(VALUE)0 << NODE_LSHIFT); + n->flags |= ((VALUE)(l & NODE_LMASK) << NODE_LSHIFT); +} #define NODE_SPECIAL_REQUIRED_KEYWORD ((NODE *)-1) #define NODE_REQUIRED_KEYWORD_P(node) ((node) == NODE_SPECIAL_REQUIRED_KEYWORD)