From 3e00684faaeadb83bad6512ece109e84f8dd7f95 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Wed, 16 Apr 2014 15:18:52 +0900 Subject: resolve conflict --- include/mruby.h | 20 +++++++++++++++----- src/error.c | 10 +++++----- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/include/mruby.h b/include/mruby.h index 0ab2d8037..af1fc9894 100644 --- a/include/mruby.h +++ b/include/mruby.h @@ -171,6 +171,16 @@ typedef struct mrb_state { void *ud; /* auxiliary data */ } mrb_state; +#if __STDC_VERSION__ >= 201112L +# define mrb_noreturn _Noreturn +#elif defined __GNUC__ && !defined __STRICT_ANSI__ +# define mrb_noreturn __attribute__((noreturn)) +#elif defined _MSC_VER +# define mrb_noreturn __declspec(noreturn) +#else +# define mrb_noreturn +#endif + typedef mrb_value (*mrb_func_t)(mrb_state *mrb, mrb_value); struct RClass *mrb_define_class(mrb_state *, const char*, struct RClass*); struct RClass *mrb_define_module(mrb_state *, const char*); @@ -333,13 +343,13 @@ mrb_value mrb_obj_clone(mrb_state *mrb, mrb_value self); #endif mrb_value mrb_exc_new(mrb_state *mrb, struct RClass *c, const char *ptr, long len); -void mrb_exc_raise(mrb_state *mrb, mrb_value exc); +mrb_noreturn void mrb_exc_raise(mrb_state *mrb, mrb_value exc); -void mrb_raise(mrb_state *mrb, struct RClass *c, const char *msg); -void mrb_raisef(mrb_state *mrb, struct RClass *c, const char *fmt, ...); -void mrb_name_error(mrb_state *mrb, mrb_sym id, const char *fmt, ...); +mrb_noreturn void mrb_raise(mrb_state *mrb, struct RClass *c, const char *msg); +mrb_noreturn void mrb_raisef(mrb_state *mrb, struct RClass *c, const char *fmt, ...); +mrb_noreturn void mrb_name_error(mrb_state *mrb, mrb_sym id, const char *fmt, ...); void mrb_warn(mrb_state *mrb, const char *fmt, ...); -void mrb_bug(mrb_state *mrb, const char *fmt, ...); +mrb_noreturn void mrb_bug(mrb_state *mrb, const char *fmt, ...); void mrb_print_backtrace(mrb_state *mrb); void mrb_print_error(mrb_state *mrb); diff --git a/src/error.c b/src/error.c index 64851bb56..feec9dbc5 100644 --- a/src/error.c +++ b/src/error.c @@ -215,7 +215,7 @@ exc_debug_info(mrb_state *mrb, struct RObject *exc) } } -void +mrb_noreturn void mrb_exc_raise(mrb_state *mrb, mrb_value exc) { mrb->exc = mrb_obj_ptr(exc); @@ -227,7 +227,7 @@ mrb_exc_raise(mrb_state *mrb, mrb_value exc) MRB_THROW(mrb->jmp); } -void +mrb_noreturn void mrb_raise(mrb_state *mrb, struct RClass *c, const char *msg) { mrb_value mesg; @@ -289,7 +289,7 @@ mrb_format(mrb_state *mrb, const char *format, ...) return str; } -void +mrb_noreturn void mrb_raisef(mrb_state *mrb, struct RClass *c, const char *fmt, ...) { va_list args; @@ -301,7 +301,7 @@ mrb_raisef(mrb_state *mrb, struct RClass *c, const char *fmt, ...) mrb_exc_raise(mrb, mrb_exc_new_str(mrb, c, mesg)); } -void +mrb_noreturn void mrb_name_error(mrb_state *mrb, mrb_sym id, const char *fmt, ...) { mrb_value exc; @@ -332,7 +332,7 @@ mrb_warn(mrb_state *mrb, const char *fmt, ...) #endif } -void +mrb_noreturn void mrb_bug(mrb_state *mrb, const char *fmt, ...) { #ifdef ENABLE_STDIO -- cgit v1.2.3