diff options
| author | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2014-04-30 05:35:18 +0300 |
|---|---|---|
| committer | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2014-04-30 05:35:18 +0300 |
| commit | e908591baaf74db521c973369b15951184e2134b (patch) | |
| tree | 5433adf55ee52e4f61111855bd764a9c66bd3913 /py/nlr.h | |
| parent | b1ce37d32e1b77373a86d27d1f1f925891a402d1 (diff) | |
py: Abstract no-return attribute for functions a bit.
Diffstat (limited to 'py/nlr.h')
| -rw-r--r-- | py/nlr.h | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -3,6 +3,7 @@ #include <limits.h> #include <setjmp.h> +#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 |
