mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	Use RUBY_DEBUG instead of NDEBUG
Assertions in header files slows down an interpreter, so they should be turned off by default (simple `make`). To enable them, define a macro `RUBY_DEBUG=1` (e.g. `make cppflags=-DRUBY_DEBUG` or use `#define` at the very beggining of the file. Note that even if `NDEBUG=1` is defined, `RUBY_DEBUG=1` enables all assertions. [Feature #16837] related: https://github.com/ruby/ruby/pull/3120 `assert()` lines in MRI *.c is not disabled even if `RUBY_DEBUG=0` and it can be disabled with `NDEBUG=1`. So please consider to use `RUBY_ASSERT()` if you want to disable them when `RUBY_DEBUG=0`.
This commit is contained in:
		
							parent
							
								
									b10b37924a
								
							
						
					
					
						commit
						21991e6ca5
					
				
				
				Notes:
				
					git
				
				2020-05-26 03:21:52 +09:00 
				
			
			
			
		
		
					 19 changed files with 82 additions and 82 deletions
				
			
		|  | @ -31,6 +31,10 @@ | |||
| # define RUBY_DEBUG 0 | ||||
| #endif | ||||
| 
 | ||||
| #if RUBY_DEBUG > 0 && defined(NDEBUG) | ||||
| #warning NDEBUG is ignored because RUBY_DEBUG>0. | ||||
| #endif | ||||
| 
 | ||||
| /*
 | ||||
|  * Pro tip: `!!NDEBUG-1` expands to... | ||||
|  * | ||||
|  | @ -82,11 +86,12 @@ RBIMPL_SYMBOL_EXPORT_END() | |||
|         RUBY_ASSERT_MESG(!(cond) || (expr), mesg)) | ||||
| #endif /* RUBY_DEBUG */ | ||||
| 
 | ||||
| #define RUBY_ASSERT(expr) RUBY_ASSERT_MESG_WHEN((!RUBY_NDEBUG+0), expr, #expr) | ||||
| #define RUBY_ASSERT(expr)            RUBY_ASSERT_MESG_WHEN(FALSE, expr, #expr) | ||||
| #define RUBY_ASSERT_NDEBUG(expr)     RUBY_ASSERT_MESG_WHEN(RUBY_NDEBUG, expr, #expr) | ||||
| #define RUBY_ASSERT_WHEN(cond, expr) RUBY_ASSERT_MESG_WHEN(cond, expr, #expr) | ||||
| #define RUBY_ASSERT_ALWAYS(expr) RUBY_ASSERT_MESG_WHEN(TRUE, expr, #expr) | ||||
| #define RUBY_ASSERT_ALWAYS(expr)     RUBY_ASSERT_MESG_WHEN(TRUE, expr, #expr) | ||||
| 
 | ||||
| #if ! RUBY_NDEBUG | ||||
| #if RUBY_DEBUG | ||||
| # define RBIMPL_ASSERT_OR_ASSUME(_) RUBY_ASSERT(_) | ||||
| #elif defined(RBIMPL_HAVE___ASSUME) | ||||
| # define RBIMPL_ASSERT_OR_ASSUME(_) RBIMPL_ASSUME(_) | ||||
|  |  | |||
|  | @ -37,8 +37,8 @@ | |||
| #define RB_CHR2FIX RB_CHR2FIX | ||||
| /** @endcond */ | ||||
| 
 | ||||
| RBIMPL_ATTR_CONST_ON_NDEBUG() | ||||
| RBIMPL_ATTR_CONSTEXPR_ON_NDEBUG(CXX14) | ||||
| RBIMPL_ATTR_CONST_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(CXX14) | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| static inline VALUE | ||||
| RB_CHR2FIX(unsigned char c) | ||||
|  |  | |||
|  | @ -75,8 +75,8 @@ long rb_num2long(VALUE num); | |||
| unsigned long rb_num2ulong(VALUE num); | ||||
| RBIMPL_SYMBOL_EXPORT_END() | ||||
| 
 | ||||
| RBIMPL_ATTR_CONST_ON_NDEBUG() | ||||
| RBIMPL_ATTR_CONSTEXPR_ON_NDEBUG(CXX14) | ||||
| RBIMPL_ATTR_CONST_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(CXX14) | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| static inline VALUE | ||||
| RB_INT2FIX(long i) | ||||
|  | @ -110,8 +110,8 @@ rb_long2int_inline(long n) | |||
|     return i; | ||||
| } | ||||
| 
 | ||||
| RBIMPL_ATTR_CONST_ON_NDEBUG() | ||||
| RBIMPL_ATTR_CONSTEXPR_ON_NDEBUG(CXX14) | ||||
| RBIMPL_ATTR_CONST_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(CXX14) | ||||
| static inline long | ||||
| rbimpl_fix2long_by_idiv(VALUE x) | ||||
| { | ||||
|  | @ -128,8 +128,8 @@ rbimpl_fix2long_by_idiv(VALUE x) | |||
|     return w; | ||||
| } | ||||
| 
 | ||||
| RBIMPL_ATTR_CONST_ON_NDEBUG() | ||||
| RBIMPL_ATTR_CONSTEXPR_ON_NDEBUG(CXX14) | ||||
| RBIMPL_ATTR_CONST_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(CXX14) | ||||
| static inline long | ||||
| rbimpl_fix2long_by_shift(VALUE x) | ||||
| { | ||||
|  | @ -153,8 +153,8 @@ rbimpl_right_shift_is_arithmetic_p(void) | |||
|     return (-1 >> 1) == -1; | ||||
| } | ||||
| 
 | ||||
| RBIMPL_ATTR_CONST_ON_NDEBUG() | ||||
| RBIMPL_ATTR_CONSTEXPR_ON_NDEBUG(CXX14) | ||||
| RBIMPL_ATTR_CONST_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(CXX14) | ||||
| static inline long | ||||
| rb_fix2long(VALUE x) | ||||
| { | ||||
|  | @ -166,8 +166,8 @@ rb_fix2long(VALUE x) | |||
|     } | ||||
| } | ||||
| 
 | ||||
| RBIMPL_ATTR_CONST_ON_NDEBUG() | ||||
| RBIMPL_ATTR_CONSTEXPR_ON_NDEBUG(CXX14) | ||||
| RBIMPL_ATTR_CONST_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(CXX14) | ||||
| static inline unsigned long | ||||
| rb_fix2ulong(VALUE x) | ||||
| { | ||||
|  |  | |||
|  | @ -35,8 +35,8 @@ | |||
| #define RB_ST2FIX RB_ST2FIX | ||||
| /** @endcond */ | ||||
| 
 | ||||
| RBIMPL_ATTR_CONST_ON_NDEBUG() | ||||
| RBIMPL_ATTR_CONSTEXPR_ON_NDEBUG(CXX14) | ||||
| RBIMPL_ATTR_CONST_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(CXX14) | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| /* See also [ruby-core:84395] [Bug #14218] [ruby-core:82687] [Bug #13877] */ | ||||
| static inline VALUE | ||||
|  |  | |||
|  | @ -36,11 +36,11 @@ | |||
| # define RBIMPL_ATTR_CONST() /* void */ | ||||
| #endif | ||||
| 
 | ||||
| /** Enables #RBIMPL_ATTR_CONST iff. #RUBY_NDEBUG. */ | ||||
| #if RUBY_NDEBUG | ||||
| # define RBIMPL_ATTR_CONST_ON_NDEBUG() RBIMPL_ATTR_CONST() | ||||
| /** Enables #RBIMPL_ATTR_CONST iff. !RUBY_DEBUG. */ | ||||
| #if !RUBY_DEBUG | ||||
| # define RBIMPL_ATTR_CONST_UNLESS_DEBUG() RBIMPL_ATTR_CONST() | ||||
| #else | ||||
| # define RBIMPL_ATTR_CONST_ON_NDEBUG() /* void */ | ||||
| # define RBIMPL_ATTR_CONST_UNLESS_DEBUG() /* void */ | ||||
| #endif | ||||
| 
 | ||||
| #endif /* RBIMPL_ATTR_CONST_H */ | ||||
|  |  | |||
|  | @ -75,11 +75,11 @@ | |||
| # define RBIMPL_ATTR_CONSTEXPR(_) /* void */ | ||||
| #endif | ||||
| 
 | ||||
| /** Enables #RBIMPL_ATTR_CONSTEXPR iff. #RUBY_NDEBUG. */ | ||||
| #if RUBY_NDEBUG | ||||
| # define RBIMPL_ATTR_CONSTEXPR_ON_NDEBUG(_) RBIMPL_ATTR_CONSTEXPR(_) | ||||
| /** Enables #RBIMPL_ATTR_CONSTEXPR iff. !RUBY_DEBUG. */ | ||||
| #if !RUBY_DEBUG | ||||
| # define RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(_) RBIMPL_ATTR_CONSTEXPR(_) | ||||
| #else | ||||
| # define RBIMPL_ATTR_CONSTEXPR_ON_NDEBUG(_) /* void */ | ||||
| # define RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(_) /* void */ | ||||
| #endif | ||||
| 
 | ||||
| #endif /* RBIMPL_ATTR_CONSTEXPR_H */ | ||||
|  |  | |||
|  | @ -33,11 +33,11 @@ | |||
| # define RBIMPL_ATTR_PURE() /* void */ | ||||
| #endif | ||||
| 
 | ||||
| /** Enables #RBIMPL_ATTR_PURE iff. #RUBY_NDEBUG. */ | ||||
| #if RUBY_NDEBUG | ||||
| # define RBIMPL_ATTR_PURE_ON_NDEBUG() RBIMPL_ATTR_PURE() | ||||
| /** Enables #RBIMPL_ATTR_PURE iff. !RUBY_DEBUG. */ | ||||
| #if !RUBY_DEBUG | ||||
| # define RBIMPL_ATTR_PURE_UNLESS_DEBUG() RBIMPL_ATTR_PURE() | ||||
| #else | ||||
| # define RBIMPL_ATTR_PURE_ON_NDEBUG() /* void */ | ||||
| # define RBIMPL_ATTR_PURE_UNLESS_DEBUG() /* void */ | ||||
| #endif | ||||
| 
 | ||||
| #endif /* RBIMPL_ATTR_PURE_H */ | ||||
|  |  | |||
|  | @ -112,7 +112,7 @@ void rb_ary_detransient(VALUE a); | |||
| #endif | ||||
| RBIMPL_SYMBOL_EXPORT_END() | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| static inline long | ||||
| RARRAY_EMBED_LEN(VALUE ary) | ||||
|  | @ -126,7 +126,7 @@ RARRAY_EMBED_LEN(VALUE ary) | |||
|     return RBIMPL_CAST((long)f); | ||||
| } | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| static inline long | ||||
| rb_array_len(VALUE a) | ||||
| { | ||||
|  | @ -147,7 +147,7 @@ RARRAY_LENINT(VALUE ary) | |||
|     return rb_long2int(RARRAY_LEN(ary)); | ||||
| } | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| static inline bool | ||||
| RARRAY_TRANSIENT_P(VALUE ary) | ||||
|  | @ -161,7 +161,7 @@ RARRAY_TRANSIENT_P(VALUE ary) | |||
| #endif | ||||
| } | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| /* internal function. do not use this function */ | ||||
| static inline const VALUE * | ||||
| rb_array_const_ptr_transient(VALUE a) | ||||
|  | @ -177,7 +177,7 @@ rb_array_const_ptr_transient(VALUE a) | |||
| } | ||||
| 
 | ||||
| #if ! USE_TRANSIENT_HEAP | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| #endif | ||||
| /* internal function. do not use this function */ | ||||
| static inline const VALUE * | ||||
|  | @ -258,7 +258,7 @@ RARRAY_ASET(VALUE ary, long i, VALUE v) | |||
| 
 | ||||
| /* RARRAY_AREF is used as a lvalue.  Cannot be a function. */ | ||||
| #if 0 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| static inline VALUE | ||||
| RARRAY_AREF(VALUE ary, long i) | ||||
|  |  | |||
|  | @ -73,7 +73,7 @@ VALUE rb_obj_hide(VALUE obj); | |||
| VALUE rb_obj_reveal(VALUE obj, VALUE klass); /* do not use this API to change klass information */ | ||||
| RBIMPL_SYMBOL_EXPORT_END() | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| static inline VALUE | ||||
| RBASIC_CLASS(VALUE obj) | ||||
|  |  | |||
|  | @ -59,7 +59,7 @@ struct RMatch { | |||
|     VALUE regexp;  /* RRegexp */ | ||||
| }; | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_RETURNS_NONNULL() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| static inline struct re_registers * | ||||
|  |  | |||
|  | @ -57,7 +57,7 @@ struct RObject { | |||
|     } as; | ||||
| }; | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| static inline uint32_t | ||||
| ROBJECT_NUMIV(VALUE obj) | ||||
|  | @ -72,7 +72,7 @@ ROBJECT_NUMIV(VALUE obj) | |||
|     } | ||||
| } | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| static inline VALUE * | ||||
| ROBJECT_IVPTR(VALUE obj) | ||||
|  |  | |||
|  | @ -46,7 +46,7 @@ struct RRegexp { | |||
|     unsigned long usecnt; | ||||
| }; | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| static inline VALUE | ||||
| RREGEXP_SRC(VALUE rexp) | ||||
|  | @ -57,7 +57,7 @@ RREGEXP_SRC(VALUE rexp) | |||
|     return ret; | ||||
| } | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| static inline char * | ||||
| RREGEXP_SRC_PTR(VALUE rexp) | ||||
|  | @ -65,7 +65,7 @@ RREGEXP_SRC_PTR(VALUE rexp) | |||
|     return RSTRING_PTR(RREGEXP_SRC(rexp)); | ||||
| } | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| static inline long | ||||
| RREGEXP_SRC_LEN(VALUE rexp) | ||||
|  | @ -73,7 +73,7 @@ RREGEXP_SRC_LEN(VALUE rexp) | |||
|     return RSTRING_LEN(RREGEXP_SRC(rexp)); | ||||
| } | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| static inline char * | ||||
| RREGEXP_SRC_END(VALUE rexp) | ||||
|  |  | |||
|  | @ -98,7 +98,7 @@ void rb_check_safe_str(VALUE); | |||
| #define Check_SafeStr(v) rb_check_safe_str(RBIMPL_CAST((VALUE)(v))) | ||||
| RBIMPL_SYMBOL_EXPORT_END() | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| static inline long | ||||
| RSTRING_EMBED_LEN(VALUE str) | ||||
|  | @ -117,7 +117,7 @@ RBIMPL_WARNING_PUSH() | |||
| RBIMPL_WARNING_IGNORED(413) | ||||
| #endif | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| static inline struct RString | ||||
| rbimpl_rstring_getmem(VALUE str) | ||||
|  | @ -138,7 +138,7 @@ rbimpl_rstring_getmem(VALUE str) | |||
| 
 | ||||
| RBIMPL_WARNING_POP() | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| static inline long | ||||
| RSTRING_LEN(VALUE str) | ||||
|  |  | |||
|  | @ -136,12 +136,12 @@ rbimpl_rtypeddata_p(VALUE obj) | |||
|     return RTYPEDDATA(obj)->typed_flag == 1; | ||||
| } | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| static inline bool | ||||
| RTYPEDDATA_P(VALUE obj) | ||||
| { | ||||
| #if ! RUBY_NDEBUG | ||||
| #if RUBY_DEBUG | ||||
|     if (RB_UNLIKELY(! RB_TYPE_P(obj, RUBY_T_DATA))) { | ||||
|         Check_Type(obj, RUBY_T_DATA); | ||||
|         RBIMPL_UNREACHABLE_RETURN(false); | ||||
|  | @ -151,13 +151,13 @@ RTYPEDDATA_P(VALUE obj) | |||
|     return rbimpl_rtypeddata_p(obj); | ||||
| } | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| /* :TODO: can this function be __attribute__((returns_nonnull)) or not? */ | ||||
| static inline const struct rb_data_type_struct * | ||||
| RTYPEDDATA_TYPE(VALUE obj) | ||||
| { | ||||
| #if ! RUBY_NDEBUG | ||||
| #if RUBY_DEBUG | ||||
|     if (RB_UNLIKELY(! RTYPEDDATA_P(obj))) { | ||||
|         rb_unexpected_type(obj, RUBY_T_DATA); | ||||
|         RBIMPL_UNREACHABLE_RETURN(NULL); | ||||
|  |  | |||
|  | @ -209,7 +209,7 @@ void rb_obj_infect(VALUE victim, VALUE carrier); | |||
| void rb_freeze_singleton_class(VALUE klass); | ||||
| RBIMPL_SYMBOL_EXPORT_END() | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| RBIMPL_ATTR_FORCEINLINE() | ||||
| static bool | ||||
|  | @ -226,7 +226,7 @@ RB_FL_ABLE(VALUE obj) | |||
|     } | ||||
| } | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| static inline VALUE | ||||
| RB_FL_TEST_RAW(VALUE obj, VALUE flags) | ||||
|  | @ -235,7 +235,7 @@ RB_FL_TEST_RAW(VALUE obj, VALUE flags) | |||
|     return RBASIC(obj)->flags & flags; | ||||
| } | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| static inline VALUE | ||||
| RB_FL_TEST(VALUE obj, VALUE flags) | ||||
|  | @ -248,7 +248,7 @@ RB_FL_TEST(VALUE obj, VALUE flags) | |||
|     } | ||||
| } | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| static inline bool | ||||
| RB_FL_ANY_RAW(VALUE obj, VALUE flags) | ||||
|  | @ -256,7 +256,7 @@ RB_FL_ANY_RAW(VALUE obj, VALUE flags) | |||
|     return RB_FL_TEST_RAW(obj, flags); | ||||
| } | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| static inline bool | ||||
| RB_FL_ANY(VALUE obj, VALUE flags) | ||||
|  | @ -264,7 +264,7 @@ RB_FL_ANY(VALUE obj, VALUE flags) | |||
|     return RB_FL_TEST(obj, flags); | ||||
| } | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| static inline bool | ||||
| RB_FL_ALL_RAW(VALUE obj, VALUE flags) | ||||
|  | @ -272,7 +272,7 @@ RB_FL_ALL_RAW(VALUE obj, VALUE flags) | |||
|     return RB_FL_TEST_RAW(obj, flags) == flags; | ||||
| } | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| static inline bool | ||||
| RB_FL_ALL(VALUE obj, VALUE flags) | ||||
|  | @ -355,7 +355,7 @@ RB_FL_REVERSE(VALUE obj, VALUE flags) | |||
|     } | ||||
| } | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| static inline bool | ||||
| RB_OBJ_TAINTABLE(VALUE obj) | ||||
|  | @ -374,7 +374,7 @@ RB_OBJ_TAINTABLE(VALUE obj) | |||
|     } | ||||
| } | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| static inline VALUE | ||||
| RB_OBJ_TAINTED_RAW(VALUE obj) | ||||
|  | @ -382,7 +382,7 @@ RB_OBJ_TAINTED_RAW(VALUE obj) | |||
|     return RB_FL_TEST_RAW(obj, RUBY_FL_TAINT); | ||||
| } | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| static inline bool | ||||
| RB_OBJ_TAINTED(VALUE obj) | ||||
|  | @ -424,7 +424,7 @@ RB_OBJ_INFECT(VALUE dst, VALUE src) | |||
|     } | ||||
| } | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| /* It is  intentional not to return  bool here. There  is a place in  ruby core
 | ||||
|  * (namely class.c:singleton_class_of()) where return value of this function is | ||||
|  | @ -435,7 +435,7 @@ RB_OBJ_FROZEN_RAW(VALUE obj) | |||
|     return RB_FL_TEST_RAW(obj, RUBY_FL_FREEZE); | ||||
| } | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| static inline bool | ||||
| RB_OBJ_FROZEN(VALUE obj) | ||||
|  |  | |||
|  | @ -145,7 +145,7 @@ rb_class_of(VALUE obj) | |||
|         return rb_cFloat; | ||||
|     } | ||||
| 
 | ||||
| #if RUBY_NDEBUG | ||||
| #if !RUBY_DEBUG | ||||
|     RBIMPL_UNREACHABLE_RETURN(Qfalse); | ||||
| #else | ||||
|     RUBY_ASSERT_FAIL("unexpected type"); | ||||
|  |  | |||
|  | @ -137,7 +137,7 @@ void rb_gc_unprotect_logging(void *objptr, const char *filename, int line); | |||
| #endif | ||||
| RBIMPL_SYMBOL_EXPORT_END() | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| static inline bool | ||||
| RB_OBJ_PROMOTED_RAW(VALUE obj) | ||||
|  | @ -146,7 +146,7 @@ RB_OBJ_PROMOTED_RAW(VALUE obj) | |||
|     return RB_FL_ANY_RAW(obj,  RUBY_FL_PROMOTED); | ||||
| } | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| static inline bool | ||||
| RB_OBJ_PROMOTED(VALUE obj) | ||||
|  |  | |||
|  | @ -95,7 +95,7 @@ | |||
| #define RB_TYPE_P         RB_TYPE_P | ||||
| #define Check_Type        Check_Type | ||||
| 
 | ||||
| #if RUBY_NDEBUG | ||||
| #if !RUBY_DEBUG | ||||
| # define RBIMPL_ASSERT_TYPE(v, t) RBIMPL_ASSERT_OR_ASSUME(RB_TYPE_P((v), (t))) | ||||
| #else | ||||
| # define RBIMPL_ASSERT_TYPE Check_Type | ||||
|  | @ -147,7 +147,7 @@ RBIMPL_ATTR_COLD() | |||
| void rb_check_type(VALUE obj, int t); | ||||
| RBIMPL_SYMBOL_EXPORT_END() | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| static inline enum ruby_value_type | ||||
| RB_BUILTIN_TYPE(VALUE obj) | ||||
|  | @ -158,7 +158,7 @@ RB_BUILTIN_TYPE(VALUE obj) | |||
|     return RBIMPL_CAST((enum ruby_value_type)ret); | ||||
| } | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| static inline bool | ||||
| rb_integer_type_p(VALUE obj) | ||||
| { | ||||
|  | @ -173,7 +173,7 @@ rb_integer_type_p(VALUE obj) | |||
|     } | ||||
| } | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| static inline enum ruby_value_type | ||||
| rb_type(VALUE obj) | ||||
| { | ||||
|  | @ -204,7 +204,7 @@ rb_type(VALUE obj) | |||
|     } | ||||
| } | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| static inline bool | ||||
| RB_FLOAT_TYPE_P(VALUE obj) | ||||
|  | @ -220,7 +220,7 @@ RB_FLOAT_TYPE_P(VALUE obj) | |||
|     } | ||||
| } | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| static inline bool | ||||
| RB_DYNAMIC_SYM_P(VALUE obj) | ||||
|  | @ -233,7 +233,7 @@ RB_DYNAMIC_SYM_P(VALUE obj) | |||
|     } | ||||
| } | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| static inline bool | ||||
| RB_SYMBOL_P(VALUE obj) | ||||
|  | @ -241,7 +241,7 @@ RB_SYMBOL_P(VALUE obj) | |||
|     return RB_STATIC_SYM_P(obj) || RB_DYNAMIC_SYM_P(obj); | ||||
| } | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| RBIMPL_ATTR_FORCEINLINE() | ||||
| static bool | ||||
|  | @ -279,7 +279,7 @@ rbimpl_RB_TYPE_P_fastpath(VALUE obj, enum ruby_value_type t) | |||
|     } | ||||
| } | ||||
| 
 | ||||
| RBIMPL_ATTR_PURE_ON_NDEBUG() | ||||
| RBIMPL_ATTR_PURE_UNLESS_DEBUG() | ||||
| RBIMPL_ATTR_ARTIFICIAL() | ||||
| static inline bool | ||||
| RB_TYPE_P(VALUE obj, enum ruby_value_type t) | ||||
|  |  | |||
|  | @ -8,14 +8,9 @@ | |||
|  *             modify this file, provided that  the conditions mentioned in the | ||||
|  *             file COPYING are met.  Consult the file for details. | ||||
|  */ | ||||
| #include "ruby/assert.h" | ||||
| 
 | ||||
| #if !defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L) | ||||
| /* C89 compilers are required to support strings of only 509 chars. */ | ||||
| /* can't use RUBY_ASSERT for such compilers. */ | ||||
| #include <assert.h> | ||||
| #else | ||||
| #include "ruby/assert.h" | ||||
| #undef assert | ||||
| #define assert RUBY_ASSERT | ||||
| #endif | ||||
| #define assert RUBY_ASSERT_NDEBUG | ||||
| 
 | ||||
| #endif /* RUBY_TOPLEVEL_ASSERT_H */ | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Koichi Sasada
						Koichi Sasada