Tomek Grabiec wrote: > It most likely an error to have multiple references to an expression > with side effects. > > Signed-off-by: Tomek Grabiec <tgrab...@gmail.com> > --- > jit/expression.c | 8 ++++++++ > 1 files changed, 8 insertions(+), 0 deletions(-) > > diff --git a/jit/expression.c b/jit/expression.c > index d46c2b7..fc67889 100644 > --- a/jit/expression.c > +++ b/jit/expression.c > @@ -146,10 +146,18 @@ void free_expression(struct expression *expr) > free(expr); > } > > +extern void print_trace(void); > + > struct expression *expr_get(struct expression *expr) > { > assert(expr->refcount > 0); > > + if (!expr_is_pure(expr)) { > + fprintf(stderr, "%s: expression is not pure\n", __func__); > + print_trace(); > + abort(); > + } > + > expr->refcount++; > > return expr;
I cleaned this up a little bit: http://github.com/penberg/jato/commit/c6cbf83e47804082042a8b975955ade2184c753c So lets use error(), warn(), and die() in the future and not open code them. Pekka ------------------------------------------------------------------------------ _______________________________________________ Jatovm-devel mailing list Jatovm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jatovm-devel