diff options
author | wrog <wrog> | 2006-12-06 23:54:53 +0000 |
---|---|---|
committer | wrog <wrog> | 2006-12-06 23:54:53 +0000 |
commit | 0d13527d1f076fb37e7fbaa556c8d07a03fa0036 (patch) | |
tree | ac052b0b62c77f30cccecc78eedefdcbc15e393a /execute.c | |
parent | 58eb73b86fed01eaab4e9f8c2706a360054b9add (diff) | |
download | moo-0d13527d1f076fb37e7fbaa556c8d07a03fa0036.tar.gz moo-0d13527d1f076fb37e7fbaa556c8d07a03fa0036.tar.xz moo-0d13527d1f076fb37e7fbaa556c8d07a03fa0036.zip |
Fix compiler warnings about undefined behavior (bv assigned twice in JUMP(READ_BYTES(...))) and unused values
Diffstat (limited to 'execute.c')
-rw-r--r-- | execute.c | 22 |
1 files changed, 16 insertions, 6 deletions
@@ -732,7 +732,7 @@ run(char raise, enum error resumption_error, Var * result) + ((unsigned) bv[-2] << 8) \ + bv[-1])))) -#define SKIP_BYTES(bv, nb) (void)(bv += nb) +#define SKIP_BYTES(bv, nb) ((void)(bv += nb)) #define LOAD_STATE_VARIABLES() \ do { \ @@ -810,8 +810,10 @@ do { \ Var cond; cond = POP(); - if (!is_true(cond)) /* jump if false */ - JUMP(READ_BYTES(bv, bc.numbytes_label)); + if (!is_true(cond)) { /* jump if false */ + unsigned lab = READ_BYTES(bv, bc.numbytes_label); + JUMP(lab); + } else { SKIP_BYTES(bv, bc.numbytes_label); } @@ -820,7 +822,10 @@ do { \ break; case OP_JUMP: - JUMP(READ_BYTES(bv, bc.numbytes_label)); + { + unsigned lab = READ_BYTES(bv, bc.numbytes_label); + JUMP(lab); + } break; case OP_FOR_LIST: @@ -1825,6 +1830,7 @@ do { \ { Var v, marker; int i; + unsigned lab; if (eop == EOP_END_CATCH) v = POP(); @@ -1840,7 +1846,8 @@ do { \ if (eop == EOP_END_CATCH) PUSH(v); - JUMP(READ_BYTES(bv, bc.numbytes_label)); + lab = READ_BYTES(bv, bc.numbytes_label); + JUMP(lab); } break; @@ -1892,7 +1899,7 @@ do { \ goto do_test; case EOP_EXIT_ID: - READ_BYTES(bv, bc.numbytes_var_name); /* ignore id */ + SKIP_BYTES(bv, bc.numbytes_var_name); /* ignore id */ /* fall thru */ case EOP_EXIT: { @@ -2875,6 +2882,9 @@ char rcsid_execute[] = "$Id$"; /* * $Log$ + * Revision 1.19 2006/12/06 23:54:53 wrog + * Fix compiler warnings about undefined behavior (bv assigned twice in JUMP(READ_BYTES(...))) and unused values + * * Revision 1.18 2006/09/26 02:03:59 pschwan * b=1552816 * r=ben |