ruby/ruby.h: eliminate disabled function call
* include/ruby/ruby.h (RUBY_SAFE_LEVEL_CHECK): eliminate function call for warning/error if not match to get rid of unconditional warning/error by a certain compiler option. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47866 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
12088a7e95
commit
50b78ebb98
@ -568,7 +568,7 @@ int ruby_safe_level_4_warning(void) __attribute__((warning("$SAFE=4 is obsolete"
|
||||
__extension__(__builtin_constant_p(level) && \
|
||||
((level) < 0 || RUBY_SAFE_LEVEL_MAX < (level)))
|
||||
#define RUBY_SAFE_LEVEL_CHECK(level, type) \
|
||||
(RUBY_SAFE_LEVEL_INVALID_P(level) ? ruby_safe_level_4_##type() : (level))
|
||||
__extension__(__builtin_choose_expr(RUBY_SAFE_LEVEL_INVALID_P(level), ruby_safe_level_4_##type(), (level)))
|
||||
#define rb_secure(level) rb_secure(RUBY_SAFE_LEVEL_CHECK(level, warning))
|
||||
#define rb_set_safe_level(level) rb_set_safe_level(RUBY_SAFE_LEVEL_CHECK(level, error))
|
||||
#endif
|
||||
|
4
thread.c
4
thread.c
@ -145,7 +145,11 @@ static inline void blocking_region_end(rb_thread_t *th, struct rb_blocking_regio
|
||||
} while(0)
|
||||
|
||||
#ifdef __GNUC__
|
||||
#ifdef HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR
|
||||
#define only_if_constant(expr, notconst) __builtin_choose_expr(__builtin_constant_p(expr), (expr), (notconst))
|
||||
#else
|
||||
#define only_if_constant(expr, notconst) (__builtin_constant_p(expr) ? (expr) : (notconst))
|
||||
#endif
|
||||
#else
|
||||
#define only_if_constant(expr, notconst) notconst
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user