Ruby 3.1.3p185 (2022-11-24 revision 1a6b16756e0ba6b95ab71a441357ed5484e33498)
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"
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.