* include/ruby/ruby.h: parenthesize macro arguments.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31256 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
akr 2011-04-10 13:24:26 +00:00
Родитель 2350bd9457
Коммит 4db93c3f41
2 изменённых файлов: 48 добавлений и 44 удалений

Просмотреть файл

@ -1,3 +1,7 @@
Sun Apr 10 22:23:45 2011 Tanaka Akira <akr@fsij.org>
* include/ruby/ruby.h: parenthesize macro arguments.
Sat Apr 9 23:31:47 2011 Shota Fukumori <sorah@tubusu.net> Sat Apr 9 23:31:47 2011 Shota Fukumori <sorah@tubusu.net>
* ext/stringio/stringio.c (strio_each, strio_readlines): * ext/stringio/stringio.c (strio_each, strio_readlines):

Просмотреть файл

@ -280,8 +280,8 @@ NORETURN(void rb_out_of_int(SIGNED_VALUE num));
#if SIZEOF_INT < SIZEOF_LONG #if SIZEOF_INT < SIZEOF_LONG
#define rb_long2int_internal(n, i) \ #define rb_long2int_internal(n, i) \
int i = (int)(n); \ int (i) = (int)(n); \
if ((long)i != (n)) rb_out_of_int(n) if ((long)(i) != (n)) rb_out_of_int(n)
#ifdef __GNUC__ #ifdef __GNUC__
#define rb_long2int(n) __extension__ ({long i2l_n = (n); rb_long2int_internal(i2l_n, i2l_i); i2l_i;}) #define rb_long2int(n) __extension__ ({long i2l_n = (n); rb_long2int_internal(i2l_n, i2l_i); i2l_i;})
#else #else
@ -440,7 +440,7 @@ static inline volatile VALUE *rb_gc_guarded_ptr(volatile VALUE *ptr) {return ptr
#define RB_GC_GUARD(v) (*RB_GC_GUARD_PTR(&(v))) #define RB_GC_GUARD(v) (*RB_GC_GUARD_PTR(&(v)))
void rb_check_type(VALUE,int); void rb_check_type(VALUE,int);
#define Check_Type(v,t) rb_check_type((VALUE)(v),t) #define Check_Type(v,t) rb_check_type((VALUE)(v),(t))
VALUE rb_str_to_str(VALUE); VALUE rb_str_to_str(VALUE);
VALUE rb_string_value(volatile VALUE*); VALUE rb_string_value(volatile VALUE*);
@ -496,11 +496,11 @@ NUM2LONG(VALUE x)
return NUM2LONG_internal(x); return NUM2LONG_internal(x);
} }
#endif #endif
#define NUM2ULONG(x) rb_num2ulong((VALUE)x) #define NUM2ULONG(x) rb_num2ulong((VALUE)(x))
#if SIZEOF_INT < SIZEOF_LONG #if SIZEOF_INT < SIZEOF_LONG
long rb_num2int(VALUE); long rb_num2int(VALUE);
long rb_fix2int(VALUE); long rb_fix2int(VALUE);
#define FIX2INT(x) ((int)rb_fix2int((VALUE)x)) #define FIX2INT(x) ((int)rb_fix2int((VALUE)(x)))
#define NUM2INT_internal(x) (FIXNUM_P(x) ? FIX2INT(x) : (int)rb_num2int(x)) #define NUM2INT_internal(x) (FIXNUM_P(x) ? FIX2INT(x) : (int)rb_num2int(x))
#ifdef __GNUC__ #ifdef __GNUC__
#define NUM2INT(x) \ #define NUM2INT(x) \
@ -537,7 +537,7 @@ NUM2LL(VALUE x)
return NUM2LL_internal(x); return NUM2LL_internal(x);
} }
# endif # endif
# define NUM2ULL(x) rb_num2ull((VALUE)x) # define NUM2ULL(x) rb_num2ull((VALUE)(x))
#endif #endif
#if defined(HAVE_LONG_LONG) && SIZEOF_OFF_T > SIZEOF_LONG #if defined(HAVE_LONG_LONG) && SIZEOF_OFF_T > SIZEOF_LONG
@ -561,20 +561,20 @@ VALUE rb_uint2big(VALUE);
VALUE rb_int2big(SIGNED_VALUE); VALUE rb_int2big(SIGNED_VALUE);
VALUE rb_newobj(void); VALUE rb_newobj(void);
#define NEWOBJ(obj,type) type *obj = (type*)rb_newobj() #define NEWOBJ(obj,type) type *(obj) = (type*)rb_newobj()
#define OBJSETUP(obj,c,t) do {\ #define OBJSETUP(obj,c,t) do {\
RBASIC(obj)->flags = (t);\ RBASIC(obj)->flags = (t);\
RBASIC(obj)->klass = (c);\ RBASIC(obj)->klass = (c);\
if (rb_safe_level() >= 3) FL_SET(obj, FL_TAINT | FL_UNTRUSTED);\ if (rb_safe_level() >= 3) FL_SET((obj), FL_TAINT | FL_UNTRUSTED);\
} while (0) } while (0)
#define CLONESETUP(clone,obj) do {\ #define CLONESETUP(clone,obj) do {\
OBJSETUP(clone,rb_singleton_class_clone((VALUE)obj),RBASIC(obj)->flags);\ OBJSETUP((clone),rb_singleton_class_clone((VALUE)(obj)),RBASIC(obj)->flags);\
rb_singleton_class_attached(RBASIC(clone)->klass, (VALUE)clone);\ rb_singleton_class_attached(RBASIC(clone)->klass, (VALUE)(clone));\
if (FL_TEST(obj, FL_EXIVAR)) rb_copy_generic_ivar((VALUE)clone,(VALUE)obj);\ if (FL_TEST((obj), FL_EXIVAR)) rb_copy_generic_ivar((VALUE)(clone),(VALUE)(obj));\
} while (0) } while (0)
#define DUPSETUP(dup,obj) do {\ #define DUPSETUP(dup,obj) do {\
OBJSETUP(dup,rb_obj_class(obj), (RBASIC(obj)->flags)&(T_MASK|FL_EXIVAR|FL_TAINT|FL_UNTRUSTED)); \ OBJSETUP((dup),rb_obj_class(obj), (RBASIC(obj)->flags)&(T_MASK|FL_EXIVAR|FL_TAINT|FL_UNTRUSTED)); \
if (FL_TEST(obj, FL_EXIVAR)) rb_copy_generic_ivar((VALUE)dup,(VALUE)obj);\ if (FL_TEST((obj), FL_EXIVAR)) rb_copy_generic_ivar((VALUE)(dup),(VALUE)(obj));\
} while (0) } while (0)
struct RBasic { struct RBasic {
@ -791,7 +791,7 @@ struct RTypedData {
#define RTYPEDDATA_DATA(v) (RTYPEDDATA(v)->data) #define RTYPEDDATA_DATA(v) (RTYPEDDATA(v)->data)
/* /*
#define RUBY_DATA_FUNC(func) ((void (*)(void*))func) #define RUBY_DATA_FUNC(func) ((void (*)(void*))(func))
*/ */
typedef void (*RUBY_DATA_FUNC)(void*); typedef void (*RUBY_DATA_FUNC)(void*);
@ -800,37 +800,37 @@ VALUE rb_data_typed_object_alloc(VALUE klass, void *datap, const rb_data_type_t
int rb_typeddata_inherited_p(const rb_data_type_t *child, const rb_data_type_t *parent); int rb_typeddata_inherited_p(const rb_data_type_t *child, const rb_data_type_t *parent);
int rb_typeddata_is_kind_of(VALUE, const rb_data_type_t *); int rb_typeddata_is_kind_of(VALUE, const rb_data_type_t *);
void *rb_check_typeddata(VALUE, const rb_data_type_t *); void *rb_check_typeddata(VALUE, const rb_data_type_t *);
#define Check_TypedStruct(v,t) rb_check_typeddata((VALUE)(v),t) #define Check_TypedStruct(v,t) rb_check_typeddata((VALUE)(v),(t))
#define RUBY_DEFAULT_FREE ((RUBY_DATA_FUNC)-1) #define RUBY_DEFAULT_FREE ((RUBY_DATA_FUNC)-1)
#define RUBY_NEVER_FREE ((RUBY_DATA_FUNC)0) #define RUBY_NEVER_FREE ((RUBY_DATA_FUNC)0)
#define RUBY_TYPED_DEFAULT_FREE RUBY_DEFAULT_FREE #define RUBY_TYPED_DEFAULT_FREE RUBY_DEFAULT_FREE
#define RUBY_TYPED_NEVER_FREE RUBY_NEVER_FREE #define RUBY_TYPED_NEVER_FREE RUBY_NEVER_FREE
#define Data_Wrap_Struct(klass,mark,free,sval)\ #define Data_Wrap_Struct(klass,mark,free,sval)\
rb_data_object_alloc(klass,sval,(RUBY_DATA_FUNC)mark,(RUBY_DATA_FUNC)free) rb_data_object_alloc((klass),(sval),(RUBY_DATA_FUNC)(mark),(RUBY_DATA_FUNC)(free))
#define Data_Make_Struct(klass,type,mark,free,sval) (\ #define Data_Make_Struct(klass,type,mark,free,sval) (\
sval = ALLOC(type),\ (sval) = ALLOC(type),\
memset(sval, 0, sizeof(type)),\ memset((sval), 0, sizeof(type)),\
Data_Wrap_Struct(klass,mark,free,sval)\ Data_Wrap_Struct((klass),(mark),(free),(sval))\
) )
#define TypedData_Wrap_Struct(klass,data_type,sval)\ #define TypedData_Wrap_Struct(klass,data_type,sval)\
rb_data_typed_object_alloc(klass,sval,data_type) rb_data_typed_object_alloc((klass),(sval),(data_type))
#define TypedData_Make_Struct(klass, type, data_type, sval) (\ #define TypedData_Make_Struct(klass, type, data_type, sval) (\
sval = ALLOC(type),\ (sval) = ALLOC(type),\
memset(sval, 0, sizeof(type)),\ memset((sval), 0, sizeof(type)),\
TypedData_Wrap_Struct(klass,data_type,sval)\ TypedData_Wrap_Struct((klass),(data_type),(sval))\
) )
#define Data_Get_Struct(obj,type,sval) do {\ #define Data_Get_Struct(obj,type,sval) do {\
Check_Type(obj, T_DATA); \ Check_Type((obj), T_DATA); \
sval = (type*)DATA_PTR(obj);\ (sval) = (type*)DATA_PTR(obj);\
} while (0) } while (0)
#define TypedData_Get_Struct(obj,type,data_type,sval) do {\ #define TypedData_Get_Struct(obj,type,data_type,sval) do {\
sval = (type*)rb_check_typeddata(obj, data_type); \ (sval) = (type*)rb_check_typeddata((obj), (data_type)); \
} while (0) } while (0)
#define RSTRUCT_EMBED_LEN_MAX 3 #define RSTRUCT_EMBED_LEN_MAX 3
@ -946,8 +946,8 @@ struct RBignum {
#define FL_ABLE(x) (!SPECIAL_CONST_P(x) && BUILTIN_TYPE(x) != T_NODE) #define FL_ABLE(x) (!SPECIAL_CONST_P(x) && BUILTIN_TYPE(x) != T_NODE)
#define FL_TEST(x,f) (FL_ABLE(x)?(RBASIC(x)->flags&(f)):0) #define FL_TEST(x,f) (FL_ABLE(x)?(RBASIC(x)->flags&(f)):0)
#define FL_ANY(x,f) FL_TEST(x,f) #define FL_ANY(x,f) FL_TEST((x),(f))
#define FL_ALL(x,f) (FL_TEST(x,f) == (f)) #define FL_ALL(x,f) (FL_TEST((x),(f)) == (f))
#define FL_SET(x,f) do {if (FL_ABLE(x)) RBASIC(x)->flags |= (f);} while (0) #define FL_SET(x,f) do {if (FL_ABLE(x)) RBASIC(x)->flags |= (f);} while (0)
#define FL_UNSET(x,f) do {if (FL_ABLE(x)) RBASIC(x)->flags &= ~(f);} while (0) #define FL_UNSET(x,f) do {if (FL_ABLE(x)) RBASIC(x)->flags &= ~(f);} while (0)
#define FL_REVERSE(x,f) do {if (FL_ABLE(x)) RBASIC(x)->flags ^= (f);} while (0) #define FL_REVERSE(x,f) do {if (FL_ABLE(x)) RBASIC(x)->flags ^= (f);} while (0)
@ -1023,11 +1023,11 @@ NUM2CHR(VALUE x)
#endif #endif
#define CHR2FIX(x) INT2FIX((long)((x)&0xff)) #define CHR2FIX(x) INT2FIX((long)((x)&0xff))
#define ALLOC_N(type,n) (type*)xmalloc2((n),sizeof(type)) #define ALLOC_N(type,n) ((type*)xmalloc2((n),sizeof(type)))
#define ALLOC(type) (type*)xmalloc(sizeof(type)) #define ALLOC(type) ((type*)xmalloc(sizeof(type)))
#define REALLOC_N(var,type,n) (var)=(type*)xrealloc2((char*)(var),(n),sizeof(type)) #define REALLOC_N(var,type,n) ((var)=(type*)xrealloc2((char*)(var),(n),sizeof(type)))
#define ALLOCA_N(type,n) (type*)alloca(sizeof(type)*(n)) #define ALLOCA_N(type,n) ((type*)alloca(sizeof(type)*(n)))
void *rb_alloc_tmp_buffer(volatile VALUE *store, long len); void *rb_alloc_tmp_buffer(volatile VALUE *store, long len);
void rb_free_tmp_buffer(volatile VALUE *store); void rb_free_tmp_buffer(volatile VALUE *store);
@ -1038,7 +1038,7 @@ void rb_free_tmp_buffer(volatile VALUE *store);
#else #else
# define ALLOCV(v, n) ((n) < 1024 ? (RB_GC_GUARD(v) = 0, alloca(n)) : rb_alloc_tmp_buffer(&(v), (n))) # define ALLOCV(v, n) ((n) < 1024 ? (RB_GC_GUARD(v) = 0, alloca(n)) : rb_alloc_tmp_buffer(&(v), (n)))
#endif #endif
#define ALLOCV_N(type, v, n) (type*)ALLOCV((v), sizeof(type)*(n)) #define ALLOCV_N(type, v, n) ((type*)ALLOCV((v), sizeof(type)*(n)))
#define ALLOCV_END(v) rb_free_tmp_buffer(&(v)) #define ALLOCV_END(v) rb_free_tmp_buffer(&(v))
#define MEMZERO(p,type,n) memset((p), 0, sizeof(type)*(n)) #define MEMZERO(p,type,n) memset((p), 0, sizeof(type)*(n))
@ -1088,7 +1088,7 @@ void rb_define_readonly_variable(const char*,VALUE*);
void rb_define_const(VALUE,const char*,VALUE); void rb_define_const(VALUE,const char*,VALUE);
void rb_define_global_const(const char*,VALUE); void rb_define_global_const(const char*,VALUE);
#define RUBY_METHOD_FUNC(func) ((VALUE (*)(ANYARGS))func) #define RUBY_METHOD_FUNC(func) ((VALUE (*)(ANYARGS))(func))
void rb_define_method(VALUE,const char*,VALUE(*)(ANYARGS),int); void rb_define_method(VALUE,const char*,VALUE(*)(ANYARGS),int);
void rb_define_module_function(VALUE,const char*,VALUE(*)(ANYARGS),int); void rb_define_module_function(VALUE,const char*,VALUE(*)(ANYARGS),int);
void rb_define_global_function(const char*,VALUE(*)(ANYARGS),int); void rb_define_global_function(const char*,VALUE(*)(ANYARGS),int);
@ -1113,24 +1113,24 @@ VALUE rb_id2str(ID);
{ \ { \
static ID rb_intern_id_cache; \ static ID rb_intern_id_cache; \
if (!rb_intern_id_cache) \ if (!rb_intern_id_cache) \
rb_intern_id_cache = rb_intern2(str, (long)strlen(str)); \ rb_intern_id_cache = rb_intern2((str), (long)strlen(str)); \
result rb_intern_id_cache; \ result rb_intern_id_cache; \
} }
#define CONST_ID(var, str) \ #define CONST_ID(var, str) \
do CONST_ID_CACHE(var =, str) while (0) do CONST_ID_CACHE((var) =, (str)) while (0)
#ifdef __GNUC__ #ifdef __GNUC__
/* __builtin_constant_p and statement expression is available /* __builtin_constant_p and statement expression is available
* since gcc-2.7.2.3 at least. */ * since gcc-2.7.2.3 at least. */
#define rb_intern(str) \ #define rb_intern(str) \
(__builtin_constant_p(str) ? \ (__builtin_constant_p(str) ? \
__extension__ (CONST_ID_CACHE((ID), str)) : \ __extension__ (CONST_ID_CACHE((ID), (str))) : \
rb_intern(str)) rb_intern(str))
#define rb_intern_const(str) \ #define rb_intern_const(str) \
(__builtin_constant_p(str) ? \ (__builtin_constant_p(str) ? \
__extension__ (rb_intern2(str, (long)strlen(str))) : \ __extension__ (rb_intern2((str), (long)strlen(str))) : \
(rb_intern)(str)) (rb_intern)(str))
#else #else
#define rb_intern_const(str) rb_intern2(str, (long)strlen(str)) #define rb_intern_const(str) rb_intern2((str), (long)strlen(str))
#endif #endif
const char *rb_class2name(VALUE); const char *rb_class2name(VALUE);
@ -1204,7 +1204,7 @@ VALUE rb_require(const char*);
#ifdef __ia64 #ifdef __ia64
void ruby_init_stack(volatile VALUE*, void*); void ruby_init_stack(volatile VALUE*, void*);
#define ruby_init_stack(addr) ruby_init_stack(addr, rb_ia64_bsp()) #define ruby_init_stack(addr) ruby_init_stack((addr), rb_ia64_bsp())
#else #else
void ruby_init_stack(volatile VALUE*); void ruby_init_stack(volatile VALUE*);
#endif #endif
@ -1347,7 +1347,7 @@ rb_type(VALUE obj)
#ifdef __GNUC__ #ifdef __GNUC__
#define rb_type_p(obj, type) \ #define rb_type_p(obj, type) \
__extension__ (__builtin_constant_p(type) ? RB_TYPE_P(obj, type) : \ __extension__ (__builtin_constant_p(type) ? RB_TYPE_P((obj), (type)) : \
rb_type(obj) == (type)) rb_type(obj) == (type))
#else #else
#define rb_type_p(obj, type) (rb_type(obj) == (type)) #define rb_type_p(obj, type) (rb_type(obj) == (type))
@ -1449,11 +1449,11 @@ int rb_toupper(int c);
int st_strcasecmp(const char *s1, const char *s2); int st_strcasecmp(const char *s1, const char *s2);
int st_strncasecmp(const char *s1, const char *s2, size_t n); int st_strncasecmp(const char *s1, const char *s2, size_t n);
#define STRCASECMP(s1, s2) (st_strcasecmp(s1, s2)) #define STRCASECMP(s1, s2) (st_strcasecmp((s1), (s2)))
#define STRNCASECMP(s1, s2, n) (st_strncasecmp(s1, s2, n)) #define STRNCASECMP(s1, s2, n) (st_strncasecmp((s1), (s2), (n)))
unsigned long ruby_strtoul(const char *str, char **endptr, int base); unsigned long ruby_strtoul(const char *str, char **endptr, int base);
#define STRTOUL(str, endptr, base) (ruby_strtoul(str, endptr, base)) #define STRTOUL(str, endptr, base) (ruby_strtoul((str), (endptr), (base)))
#define InitVM(ext) {void InitVM_##ext(void);InitVM_##ext();} #define InitVM(ext) {void InitVM_##ext(void);InitVM_##ext();}