summaryrefslogtreecommitdiff
path: root/py/nlr.h
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2014-04-30 05:35:18 +0300
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2014-04-30 05:35:18 +0300
commite908591baaf74db521c973369b15951184e2134b (patch)
tree5433adf55ee52e4f61111855bd764a9c66bd3913 /py/nlr.h
parentb1ce37d32e1b77373a86d27d1f1f925891a402d1 (diff)
py: Abstract no-return attribute for functions a bit.
Diffstat (limited to 'py/nlr.h')
-rw-r--r--py/nlr.h5
1 files changed, 3 insertions, 2 deletions
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 <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