Ruby  3.1.4p223 (2023-03-30 revision HEAD)
assume.h
Go to the documentation of this file.
1 #ifndef RUBY_BACKWARD2_ASSUME_H /*-*-C++-*-vi:se ft=cpp:*/
2 #define RUBY_BACKWARD2_ASSUME_H
23 #include "ruby/internal/config.h"
24 #include "ruby/internal/assume.h"
26 
27 #undef ASSUME /* Kill config.h definition */
28 #undef UNREACHABLE /* Kill config.h definition */
29 #define ASSUME RBIMPL_ASSUME
30 #define UNREACHABLE RBIMPL_UNREACHABLE()
31 #define UNREACHABLE_RETURN RBIMPL_UNREACHABLE_RETURN
33 /* likely */
34 #if RBIMPL_HAS_BUILTIN(__builtin_expect)
45 # define RB_LIKELY(x) (__builtin_expect(!!(x), 1))
46 
52 # define RB_UNLIKELY(x) (__builtin_expect(!!(x), 0))
53 #else
54 # define RB_LIKELY(x) (x)
55 # define RB_UNLIKELY(x) (x)
56 #endif
57 
58 #endif /* RUBY_BACKWARD2_ASSUME_H */
Defines RBIMPL_HAS_BUILTIN.
Defines RBIMPL_ASSUME / RBIMPL_UNREACHABLE.