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

Reply via email to