Ruby 4.1.0dev (2026-09-12 revision 35f46c051f9bccc03ea1fc8a27ee0243ec7a4fce)
assume.h
Go to the documentation of this file.
1
4#ifndef PRISM_COMPILER_ASSUME_H
5#define PRISM_COMPILER_ASSUME_H
6
13#if defined(__clang__)
14 #define PRISM_ASSUME(expr_) __builtin_assume(expr_)
15#elif defined(_MSC_VER)
16 #define PRISM_ASSUME(expr_) __assume(expr_)
17#elif defined(__GNUC__) && (__GNUC__ >= 13)
18 #define PRISM_ASSUME(expr_) __attribute__((assume(expr_)))
19#elif defined(__GNUC__)
20 #define PRISM_ASSUME(expr_) ((expr_) ? (void) 0 : __builtin_unreachable())
21#else
22 #define PRISM_ASSUME(expr_) ((void) 0)
23#endif
24
25#endif