diff options
| author | Franklin Wei <git@fwei.tk> | 2015-11-21 17:53:37 -0500 |
|---|---|---|
| committer | Franklin Wei <git@fwei.tk> | 2015-11-21 17:53:37 -0500 |
| commit | 03a7066353fad59b7c29b57baa94f84bcc5cfcda (patch) | |
| tree | 46720390cd011714698d3daedfc03ce7128d9979 | |
| parent | df27295ce6e79f409f677da884d32bd9675733be (diff) | |
| download | ducky-03a7066353fad59b7c29b57baa94f84bcc5cfcda.zip ducky-03a7066353fad59b7c29b57baa94f84bcc5cfcda.tar.gz ducky-03a7066353fad59b7c29b57baa94f84bcc5cfcda.tar.bz2 ducky-03a7066353fad59b7c29b57baa94f84bcc5cfcda.tar.xz | |
some stuff
| -rwxr-xr-x | examples/primecount.ds | 2 | ||||
| -rw-r--r-- | src/emitc.c | 12 |
2 files changed, 9 insertions, 5 deletions
diff --git a/examples/primecount.ds b/examples/primecount.ds index 8bb4fc8..91c8d13 100755 --- a/examples/primecount.ds +++ b/examples/primecount.ds @@ -10,7 +10,7 @@ LBL test_number LBL test_loop IF !(n % iter); GOTO composite INC iter - IF iter < stop; GOTO test_loop + IF iter <= stop; GOTO test_loop INC primes LBL composite INC n diff --git a/src/emitc.c b/src/emitc.c index afa8fe7..bf79a47 100644 --- a/src/emitc.c +++ b/src/emitc.c @@ -873,13 +873,17 @@ void ducky_to_c(int fd, int out) write_src("int main()\n"); write_src("{\n"); - write_src("/* this uses labels as values */\n"); - write_src("void *jump_table[%d];\n\n", num_lines + 1); - write_src("/* initialize the jump table */\n"); + write_src("/* this uses labels as values, a GCC extension */\n"); + + + write_src("const void *jump_table[%d] = ", num_lines + 1); + write_src("{\n"); + write_src("NULL,\n"); for(int i = 1; i <= num_lines; ++i) { - write_src("jump_table[%d] = &&label_%d;\n", i, i); + write_src("&&label_%d,\n", i); } + write_src("};\n"); write_src_noindent("\n"); /* and... compile! */ |