1#ifndef RBIMPL_SPECIAL_CONSTS_H
2#define RBIMPL_SPECIAL_CONSTS_H
34#if defined(USE_FLONUM)
36#elif SIZEOF_VALUE >= SIZEOF_DOUBLE
44#define FIXNUM_P RB_FIXNUM_P
45#define IMMEDIATE_P RB_IMMEDIATE_P
47#define SPECIAL_CONST_P RB_SPECIAL_CONST_P
48#define STATIC_SYM_P RB_STATIC_SYM_P
50#define Qfalse RUBY_Qfalse
52#define Qtrue RUBY_Qtrue
53#define Qundef RUBY_Qundef
56#define FIXNUM_FLAG RUBY_FIXNUM_FLAG
57#define FLONUM_FLAG RUBY_FLONUM_FLAG
58#define FLONUM_MASK RUBY_FLONUM_MASK
59#define FLONUM_P RB_FLONUM_P
60#define IMMEDIATE_MASK RUBY_IMMEDIATE_MASK
61#define SYMBOL_FLAG RUBY_SYMBOL_FLAG
63#define RB_FIXNUM_P RB_FIXNUM_P
64#define RB_FLONUM_P RB_FLONUM_P
65#define RB_IMMEDIATE_P RB_IMMEDIATE_P
66#define RB_NIL_P RB_NIL_P
67#define RB_SPECIAL_CONST_P RB_SPECIAL_CONST_P
68#define RB_STATIC_SYM_P RB_STATIC_SYM_P
69#define RB_TEST RB_TEST
121 return obj & ~RUBY_Qnil;
137RB_FIXNUM_P(
VALUE obj)
146RB_STATIC_SYM_P(
VALUE obj)
157RB_FLONUM_P(
VALUE obj)
170RB_IMMEDIATE_P(
VALUE obj)
179RB_SPECIAL_CONST_P(
VALUE obj)
181 return RB_IMMEDIATE_P(obj) || ! RB_TEST(obj);
189rb_special_const_p(
VALUE obj)
198#define RUBY_Qfalse RBIMPL_CAST((VALUE)RUBY_Qfalse)
199#define RUBY_Qtrue RBIMPL_CAST((VALUE)RUBY_Qtrue)
200#define RUBY_Qnil RBIMPL_CAST((VALUE)RUBY_Qnil)
201#define RUBY_Qundef RBIMPL_CAST((VALUE)RUBY_Qundef)
Defines RBIMPL_ATTR_ARTIFICIAL.
#define RBIMPL_ATTR_ARTIFICIAL()
Wraps (or simulates) __attribute__((artificial))
Defines RBIMPL_ATTR_CONST.
#define RBIMPL_ATTR_CONST()
Wraps (or simulates) __attribute__((const))
#define RBIMPL_ATTR_CONSTEXPR(_)
Wraps (or simulates) C++11 constexpr.
RBIMPL_ATTR_ENUM_EXTENSIBILITY.
#define RBIMPL_ATTR_ENUM_EXTENSIBILITY(_)
Wraps (or simulates) __attribute__((enum_extensibility))
ruby_special_consts
special constants - i.e.
#define RBIMPL_VALUE_FULL