__builtin_unreachable() seems not emit runtime error

This commit is contained in:
Yuichi Nishiwaki 2017-04-09 17:23:35 +09:00
parent d52dfad671
commit 339e8e8419
2 changed files with 5 additions and 5 deletions

View File

@ -104,7 +104,7 @@ pic_alloca_cont(pic_state *pic)
} }
static pic_value static pic_value
values(pic_state *pic, int argc, pic_value *argv) valuesk(pic_state *pic, int argc, pic_value *argv)
{ {
int i; int i;
@ -123,7 +123,7 @@ pic_callcc(pic_state *pic, pic_value proc)
volatile struct cont *cont = pic_alloca_cont(pic); volatile struct cont *cont = pic_alloca_cont(pic);
if (PIC_SETJMP(pic, jmp)) { if (PIC_SETJMP(pic, jmp)) {
return values(pic, cont->retc, cont->retv); return valuesk(pic, cont->retc, cont->retv);
} }
else { else {
pic_value val; pic_value val;
@ -159,7 +159,7 @@ pic_vvalues(pic_state *pic, int n, va_list ap)
for (i = 0; i < n; ++i) { for (i = 0; i < n; ++i) {
retv[i] = va_arg(ap, pic_value); retv[i] = va_arg(ap, pic_value);
} }
return values(pic, n, retv); return valuesk(pic, n, retv);
} }
int int
@ -196,7 +196,7 @@ pic_cont_values(pic_state *pic)
pic_get_args(pic, "*", &argc, &argv); pic_get_args(pic, "*", &argc, &argv);
return values(pic, argc, argv); return valuesk(pic, argc, argv);
} }
static pic_value static pic_value

View File

@ -173,7 +173,7 @@ typedef unsigned long uint32_t;
# define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) # define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
#endif #endif
#if GCC_VERSION >= 40500 || __clang__ #if GCC_VERSION >= 40500 || __clang__
# define PIC_UNREACHABLE() (__builtin_unreachable()) # define PIC_UNREACHABLE() (assert(false), __builtin_unreachable())
#else #else
# define PIC_UNREACHABLE() (assert(false)) # define PIC_UNREACHABLE() (assert(false))
#endif #endif