summaryrefslogtreecommitdiffstatshomepage
path: root/py/nlr.h
diff options
context:
space:
mode:
Diffstat (limited to 'py/nlr.h')
-rw-r--r--py/nlr.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/py/nlr.h b/py/nlr.h
index b94ca7d3f8..ce62334fd4 100644
--- a/py/nlr.h
+++ b/py/nlr.h
@@ -26,3 +26,16 @@ struct _nlr_buf_t {
unsigned int nlr_push(nlr_buf_t *);
void nlr_pop(void);
void nlr_jump(void *val) __attribute__((noreturn));
+
+// use nlr_raise instead of nlr_jump so that debugging is easier
+#ifndef DEBUG
+#define nlr_raise(val) nlr_jump(val)
+#else
+#define nlr_raise(val) \
+ do { \
+ void *_val = val; \
+ assert(_val != NULL); \
+ assert(mp_obj_is_exception_instance(_val)); \
+ nlr_jump(_val); \
+ } while (0)
+#endif