altos/lisp: have 'while' return the last body value
[fw/altos] / src / lisp / ao_lisp_make_const.c
index 60bb80f01e8059b01c534b7a306d933f59d3579d..495e48cd2e5f5656642ec8ba3a14e82b049b0c52 100644 (file)
@@ -136,6 +136,7 @@ ao_lisp_macro_push(ao_poly p)
        m->p = p;
        m->next = macro_stack;
        macro_stack = m;
+       return 0;
 }
 
 void
@@ -305,8 +306,8 @@ main(int argc, char **argv)
        ao_poly val;
        struct ao_lisp_atom     *a;
        struct ao_lisp_builtin  *b;
-       int     in_atom;
-       char    *out_name;
+       int     in_atom = 0;
+       char    *out_name = NULL;
        int     c;
 
        in = stdin;
@@ -397,7 +398,7 @@ main(int argc, char **argv)
                fprintf(out, "  0x%04x\n", ao_lisp_atom_poly(a));
        }
        fprintf(out, "#ifdef AO_LISP_CONST_BITS\n");
-       fprintf(out, "const uint8_t ao_lisp_const[] = {");
+       fprintf(out, "const uint8_t ao_lisp_const[AO_LISP_POOL_CONST] __attribute((aligned(4))) = {");
        for (o = 0; o < ao_lisp_top; o++) {
                uint8_t c;
                if ((o & 0xf) == 0)