Ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c52d4d35cc6a173c89eda98ceffa2dcf)
error.h
Go to the documentation of this file.
1#ifndef RBIMPL_ERROR_H /*-*-C++-*-vi:se ft=cpp:*/
2#define RBIMPL_ERROR_H
24#include "ruby/internal/value.h"
26
28
29VALUE rb_errinfo(void);
31
32typedef enum {
36 RB_WARN_CATEGORY_ALL_BITS = 0x6 /* no RB_WARN_CATEGORY_NONE bit */
38
39/* for rb_readwrite_sys_fail first argument */
41#define RB_IO_WAIT_READABLE RB_IO_WAIT_READABLE
42#define RB_IO_WAIT_WRITABLE RB_IO_WAIT_WRITABLE
43
44PRINTF_ARGS(NORETURN(void rb_raise(VALUE, const char*, ...)), 2, 3);
45PRINTF_ARGS(NORETURN(void rb_fatal(const char*, ...)), 1, 2);
46COLDFUNC PRINTF_ARGS(NORETURN(void rb_bug(const char*, ...)), 1, 2);
47NORETURN(void rb_bug_errno(const char*, int));
48NORETURN(void rb_sys_fail(const char*));
50NORETURN(void rb_mod_sys_fail(VALUE, const char*));
53NORETURN(void rb_iter_break(void));
55NORETURN(void rb_exit(int));
56NORETURN(void rb_notimplement(void));
57VALUE rb_syserr_new(int, const char *);
58VALUE rb_syserr_new_str(int n, VALUE arg);
59NORETURN(void rb_syserr_fail(int, const char*));
61NORETURN(void rb_mod_syserr_fail(VALUE, int, const char*));
63NORETURN(void rb_readwrite_syserr_fail(enum rb_io_wait_readwrite, int, const char*));
65
68#define ruby_verbose (*rb_ruby_verbose_ptr())
69#define ruby_debug (*rb_ruby_debug_ptr())
70
71/* reports if `-W' specified */
72PRINTF_ARGS(void rb_warning(const char*, ...), 1, 2);
73PRINTF_ARGS(void rb_category_warning(rb_warning_category_t, const char*, ...), 2, 3);
74PRINTF_ARGS(void rb_compile_warning(const char *, int, const char*, ...), 3, 4);
75PRINTF_ARGS(void rb_category_compile_warn(rb_warning_category_t, const char *, int, const char*, ...), 4, 5);
76PRINTF_ARGS(void rb_sys_warning(const char*, ...), 1, 2);
77/* reports always */
78COLDFUNC PRINTF_ARGS(void rb_warn(const char*, ...), 1, 2);
79COLDFUNC PRINTF_ARGS(void rb_category_warn(rb_warning_category_t, const char*, ...), 2, 3);
80PRINTF_ARGS(void rb_compile_warn(const char *, int, const char*, ...), 3, 4);
81
83
84#endif /* RBIMPL_ERROR_H */
Various attribute-related macros.
#define COLDFUNC
Definition: attributes.h:110
#define NORETURN(x)
Definition: attributes.h:152
#define PRINTF_ARGS(decl, string_index, first_to_check)
Definition: attributes.h:112
#define rb_category_warn(category,...)
Definition: bigdecimal.h:163
Tewaking visibility of C variables/functions.
#define RBIMPL_SYMBOL_EXPORT_END()
Counterpart of RBIMPL_SYMBOL_EXPORT_BEGIN.
Definition: dllexport.h:86
#define RBIMPL_SYMBOL_EXPORT_BEGIN()
Shortcut macro equivalent to RUBY_SYMBOL_EXPORT_BEGIN extern "C" {.
Definition: dllexport.h:77
void rb_notimplement(void)
Definition: error.c:2960
void rb_syserr_fail(int, const char *)
Definition: error.c:3029
void rb_raise(VALUE, const char *,...)
Definition: error.c:2917
void rb_mod_sys_fail_str(VALUE, VALUE)
Definition: error.c:3095
void rb_compile_warn(const char *, int, const char *,...)
Definition: error.c:351
void rb_category_compile_warn(rb_warning_category_t, const char *, int, const char *,...)
Definition: error.c:380
void rb_mod_sys_fail(VALUE, const char *)
Definition: error.c:3087
void rb_bug(const char *,...)
Definition: error.c:768
void rb_sys_warning(const char *,...)
Definition: error.c:3173
VALUE rb_syserr_new(int, const char *)
Definition: error.c:3015
VALUE rb_syserr_new_str(int n, VALUE arg)
Definition: error.c:3023
void rb_set_errinfo(VALUE)
Sets the current exception ($!) to the given value.
Definition: eval.c:1925
void rb_syserr_fail_str(int, VALUE)
Definition: error.c:3035
void rb_sys_fail_str(VALUE)
Definition: error.c:3047
void rb_fatal(const char *,...)
Definition: error.c:2968
void rb_unexpected_type(VALUE, int)
Definition: error.c:987
void rb_category_warning(rb_warning_category_t, const char *,...)
Definition: error.c:450
void rb_bug_errno(const char *, int)
Definition: error.c:796
void rb_warn(const char *,...)
Definition: error.c:408
void rb_compile_warning(const char *, int, const char *,...)
Definition: error.c:366
void rb_mod_syserr_fail(VALUE, int, const char *)
Definition: error.c:3103
VALUE rb_errinfo(void)
The current exception in the current thread.
Definition: eval.c:1911
void rb_sys_fail(const char *)
Definition: error.c:3041
void rb_mod_syserr_fail_str(VALUE, int, VALUE)
Definition: error.c:3111
void rb_warning(const char *,...)
Definition: error.c:439
rb_warning_category_t
Definition: error.h:32
@ RB_WARN_CATEGORY_DEPRECATED
Definition: error.h:34
@ RB_WARN_CATEGORY_ALL_BITS
Definition: error.h:36
@ RB_WARN_CATEGORY_EXPERIMENTAL
Definition: error.h:35
@ RB_WARN_CATEGORY_NONE
Definition: error.h:33
void rb_readwrite_syserr_fail(enum rb_io_wait_readwrite, int, const char *)
Definition: io.c:13122
void rb_iter_break(void)
Definition: vm.c:1786
void rb_readwrite_sys_fail(enum rb_io_wait_readwrite, const char *)
Definition: io.c:13116
void rb_exit(int)
Definition: process.c:4416
rb_io_wait_readwrite
Definition: error.h:40
VALUE * rb_ruby_verbose_ptr(void)
Definition: vm.c:3768
void rb_iter_break_value(VALUE)
Definition: vm.c:1792
#define RB_IO_WAIT_WRITABLE
Definition: error.h:42
VALUE * rb_ruby_debug_ptr(void)
Definition: vm.c:3775
#define RB_IO_WAIT_READABLE
Definition: error.h:41
Defines VALUE and ID.
unsigned long VALUE
Definition: value.h:38