diff options
-rw-r--r-- | eval.c | 2 | ||||
-rw-r--r-- | unwind.c | 8 | ||||
-rw-r--r-- | unwind.h | 1 |
3 files changed, 10 insertions, 1 deletions
@@ -4260,7 +4260,7 @@ static val no_warn_expand(val form, val menv) val ret; uw_frame_t uw_handler; uw_push_handler(&uw_handler, cons(warning_s, nil), - func_n1v(uw_muffle_warning)); + func_n1v(uw_muffle_deferrable_warning)); ret = expand(form, menv); uw_pop_frame(&uw_handler); return ret; @@ -428,6 +428,14 @@ val uw_muffle_warning(val exc, struct args *args) uw_throw(continue_s, nil); } +val uw_muffle_deferrable_warning(val exc, struct args *args) +{ + (void) exc; + if (args_count(args) == 2) + uw_throw(continue_s, nil); + return nil; +} + void uw_push_cont_copy(uw_frame_t *fr, mem_t *ptr, void (*copy)(mem_t *ptr, int parent)) { @@ -150,6 +150,7 @@ val uw_find_frame(val extype, val frtype); val uw_find_frames(val extype, val frtype); val uw_invoke_catch(val catch_frame, val sym, struct args *); val uw_muffle_warning(val exc, struct args *); +val uw_muffle_deferrable_warning(val exc, struct args *); val uw_capture_cont(val tag, val fun, val ctx_form); void uw_push_cont_copy(uw_frame_t *, mem_t *ptr, void (*copy)(mem_t *ptr, int parent)); |