aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-07-22 11:27:46 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-07-22 11:27:46 +0000
commitbc77bae13827be22ecb4f35029f7268a08b92146 (patch)
tree585f4d19c3a2e31384d17dfd9bf388c1855f9d48 /include
parentbb7ac59921a5988758db3cb170a3c79ee8cef829 (diff)
downloadruby-bc77bae13827be22ecb4f35029f7268a08b92146.tar.gz
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
Diffstat (limited to 'include')
-rw-r--r--include/ruby/ruby.h9
1 files changed, 8 insertions, 1 deletions
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__