diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | unwind.h | 6 |
2 files changed, 11 insertions, 3 deletions
@@ -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, @@ -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)) { \ |