summaryrefslogtreecommitdiffstats
path: root/unwind.h
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2017-01-15 20:19:02 -0800
committerKaz Kylheku <kaz@kylheku.com>2017-01-15 20:19:02 -0800
commite634982247b4e212b261a9ad31ca8568ebd1be36 (patch)
tree74771342d5729942db7a2048cd27f18394fb08b8 /unwind.h
parent7bcd35fa7204a8bf1a043a2587f2e0f252764364 (diff)
downloadtxr-e634982247b4e212b261a9ad31ca8568ebd1be36.tar.gz
txr-e634982247b4e212b261a9ad31ca8568ebd1be36.tar.bz2
txr-e634982247b4e212b261a9ad31ca8568ebd1be36.zip
Extend deferred warnings system with tentative defs.
Tentative defs record the fact that some definition has been seen at expansion time, even though that definition has not been put into effect. They suppress warnings. * unwind.c (tentative_defs): New static variable. (uw_defer_warning): Throw away the warning if it matches a tentative def. (uw_register_tentative_def, uw_tentative_def_exists): New functions. (uw_dump_deferred_warnings): Purge the tag from the list of deferred defs also. (uw_init): gc-protect tentative_defs. Register intrinsics register-tentative-def and tentative-def-exists. * unwind.h (uw_register_tentative_def, uw_tentative_def_exists): Declared.
Diffstat (limited to 'unwind.h')
-rw-r--r--unwind.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/unwind.h b/unwind.h
index 7131cbc7..08f595be 100644
--- a/unwind.h
+++ b/unwind.h
@@ -131,6 +131,8 @@ noreturn val uw_errorfv(val fmt, struct args *args);
val uw_defer_warning(val args);
val uw_dump_deferred_warnings(val stream);
val uw_purge_deferred_warning(val tag);
+val uw_register_tentative_def(val tag);
+val uw_tentative_def_exists(val tag);
val uw_register_subtype(val sub, val super);
val uw_exception_subtype_p(val sub, val sup);
void uw_continue(uw_frame_t *target);