From bc77bae13827be22ecb4f35029f7268a08b92146 Mon Sep 17 00:00:00 2001 From: nobu Date: Wed, 22 Jul 2015 11:27:46 +0000 Subject: ruby.h: ASSUME * include/ruby/ruby.h (ASSUME): hint for optimization, the expression is assumed to be true always. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51342 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- include/ruby/ruby.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'include/ruby') diff --git a/include/ruby/ruby.h b/include/ruby/ruby.h index a27fc5d637..bad0b3f1cc 100644 --- a/include/ruby/ruby.h +++ b/include/ruby/ruby.h @@ -41,8 +41,15 @@ extern "C" { #ifndef NOINLINE # define NOINLINE(x) x #endif +#ifndef ASSUME +# ifdef UNREACHABLE +# define ASSUME(x) (LIKELY(!!(x)) ? (void)0 : UNREACHABLE) +# else +# define ASSUME(x) ((void)0) +# endif +#endif #ifndef UNREACHABLE -# define UNREACHABLE /* unreachable */ +# define UNREACHABLE ((void)0) /* unreachable */ #endif #ifdef __GNUC__ -- cgit v1.2.3