diff --git a/src/interpreter.c b/src/interpreter.c index 030fb4a709912..70beff9ba0b18 100644 --- a/src/interpreter.c +++ b/src/interpreter.c @@ -134,7 +134,7 @@ static void eval_abstracttype(jl_expr_t *ex, interpreter_state *s) jl_datatype_t *dt = NULL; jl_value_t *w = NULL; jl_module_t *modu = s->module; - JL_GC_PUSH4(¶, &super, &temp, &w); + JL_GC_PUSH5(¶, &super, &temp, &w, &dt); assert(jl_is_svec(para)); if (jl_is_globalref(name)) { modu = jl_globalref_mod(name); @@ -397,7 +397,9 @@ SECT_INTERP static jl_value_t *eval_value(jl_value_t *e, interpreter_state *s) if (jl_is_pinode(e)) { jl_value_t *val = eval_value(jl_fieldref_noalloc(e, 0), s); #ifndef JL_NDEBUG + JL_GC_PUSH1(&val); jl_typeassert(val, jl_fieldref_noalloc(e, 1)); + JL_GC_POP(); #endif return val; }