summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2014-07-26 08:42:21 -0700
committerKaz Kylheku <kaz@kylheku.com>2014-07-26 08:42:21 -0700
commit6afe9ab25e2cda942d8e67513081fbe25c217601 (patch)
treea93db6ff725e99f3ae1011cce7c3cbf92edb4515
parentd77c03faa5783b77b4973015f485086567ba09f3 (diff)
downloadtxr-6afe9ab25e2cda942d8e67513081fbe25c217601.tar.gz
txr-6afe9ab25e2cda942d8e67513081fbe25c217601.tar.bz2
txr-6afe9ab25e2cda942d8e67513081fbe25c217601.zip
* unwind.h (uw_block_begin): Get rid of the unused typedef trick,
replace with do { } while (0), since we don't have any instances of a uw_block_begin followed by declarations. (uw_catch_begin): Move SYMVAR and EXCVAR inside the do/while block, so that the expansion doesn't begin with a declaration.
-rw-r--r--ChangeLog8
-rw-r--r--unwind.h6
2 files changed, 11 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 5834db36..5678a8c7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2014-07-26 Kaz Kylheku <kaz@kylheku.com>
+
+ * unwind.h (uw_block_begin): Get rid of the unused typedef trick,
+ replace with do { } while (0), since we don't have any instances of a
+ uw_block_begin followed by declarations.
+ (uw_catch_begin): Move SYMVAR and EXCVAR inside the do/while block,
+ so that the expansion doesn't begin with a declaration.
+
2014-07-23 Kaz Kylheku <kaz@kylheku.com>
* Makefile, arith.c, arith.h, combi.c, combi.h, configure, debug.c,
diff --git a/unwind.h b/unwind.h
index 9f929827..a7ef572a 100644
--- a/unwind.h
+++ b/unwind.h
@@ -134,7 +134,7 @@ noreturn val type_mismatch(val, ...);
if (extended_setjmp(uw_blk.bl.jb)) { \
RESULTVAR = uw_blk.bl.result; \
} else { \
- typedef int uw_d_u_m_m_y
+ do { } while (0)
#define uw_block_end \
} \
@@ -159,9 +159,9 @@ noreturn val type_mismatch(val, ...);
#define uw_catch_begin(MATCHES, SYMVAR, \
EXCVAR) \
- obj_t *SYMVAR = nil; \
- obj_t *EXCVAR = nil; \
do { \
+ obj_t *SYMVAR = nil; \
+ obj_t *EXCVAR = nil; \
uw_frame_t uw_catch; \
uw_push_catch(&uw_catch, MATCHES); \
switch (extended_setjmp(uw_catch.ca.jb)) { \