summaryrefslogtreecommitdiffstats
path: root/unwind.h
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2017-02-09 11:07:18 -0800
committerKaz Kylheku <kaz@kylheku.com>2017-02-09 11:07:18 -0800
commit0afe5fe6a1a279792194b5ccff317ee131f88f92 (patch)
tree4eb040f2585f7a44720110bb98ca4ce8c607c8ec /unwind.h
parente2764d75a52f60ea37f4d7aaa5414cc663e7749f (diff)
downloadtxr-0afe5fe6a1a279792194b5ccff317ee131f88f92.tar.gz
txr-0afe5fe6a1a279792194b5ccff317ee131f88f92.tar.bz2
txr-0afe5fe6a1a279792194b5ccff317ee131f88f92.zip
Muffle only deferrable warnings in sys:expand.
The problem is that if some macrology is performing its own expansion with sys:expand, and if all warnings are muffled in sys:expand, it means that some warnings will never be seen. Expansion is the last chance to produce warnings issued by macros. Once they are expanded, a redundant expansion pass won't issue the warnings any more. * eval.c (no_warn_expand); Use the uw_muffle_deferrable_warning handler isntead of uw_muffle_warnings. * unwind.c (uw_muffle_deferrable_warning): New function. * unwind.h (uw_muffle_deferrable_warning): Declared.
Diffstat (limited to 'unwind.h')
-rw-r--r--unwind.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/unwind.h b/unwind.h
index 1301f2e7..30da0146 100644
--- a/unwind.h
+++ b/unwind.h
@@ -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));