From e908591baaf74db521c973369b15951184e2134b Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Wed, 30 Apr 2014 05:35:18 +0300 Subject: py: Abstract no-return attribute for functions a bit. --- py/nlr.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'py/nlr.h') diff --git a/py/nlr.h b/py/nlr.h index 662928545..c7b592843 100644 --- a/py/nlr.h +++ b/py/nlr.h @@ -3,6 +3,7 @@ #include #include +#include "mpconfig.h" typedef struct _nlr_buf_t nlr_buf_t; struct _nlr_buf_t { @@ -33,7 +34,7 @@ struct _nlr_buf_t { #if MICROPY_NLR_SETJMP extern nlr_buf_t *nlr_setjmp_top; -void nlr_setjmp_jump(void *val) __attribute__((noreturn)); +NORETURN void nlr_setjmp_jump(void *val); // nlr_push() must be defined as a macro, because "The stack context will be // invalidated if the function which called setjmp() returns." #define nlr_push(buf) ((buf)->prev = nlr_setjmp_top, nlr_setjmp_top = (buf), setjmp((buf)->jmpbuf)) @@ -42,7 +43,7 @@ void nlr_setjmp_jump(void *val) __attribute__((noreturn)); #else unsigned int nlr_push(nlr_buf_t *); void nlr_pop(void); -void nlr_jump(void *val) __attribute__((noreturn)); +NORETURN void nlr_jump(void *val); #endif // This must be implemented by a port. It's called by nlr_jump -- cgit v1.2.3