From cb1290ee3c80115cd1774d2d9e5bce1bf25a33bc Mon Sep 17 00:00:00 2001 From: Isaiah Norton Date: Mon, 29 Dec 2014 22:26:19 -0500 Subject: [PATCH] Handle undef refs in jl_copy_ast, fixes #9475 [ci skip] checked on branch fix9475 passed osx passed linux except for some network issue cloning package. --- src/ast.c | 5 ++++- test/core.jl | 6 ++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/ast.c b/src/ast.c index e1ae91e7e0a68..767d9bd71151e 100644 --- a/src/ast.c +++ b/src/ast.c @@ -769,7 +769,10 @@ static jl_value_t *copy_ast(jl_value_t *expr, jl_tuple_t *sp, int do_sp) DLLEXPORT jl_value_t *jl_copy_ast(jl_value_t *expr) { - if (jl_is_expr(expr)) { + if (expr == NULL) { + return NULL; + } + else if (jl_is_expr(expr)) { jl_expr_t *e = (jl_expr_t*)expr; size_t i, l = jl_array_len(e->args); jl_expr_t *ne = NULL; diff --git a/test/core.jl b/test/core.jl index 9350e0d2635ba..e2a1aca0cf2dd 100644 --- a/test/core.jl +++ b/test/core.jl @@ -1976,3 +1976,9 @@ function f9134() end end @test_throws UndefVarError f9134() + +# issue #9475 +module I9475 + arr = Array(Any, 1) + @eval @eval $arr[1] = 1 +end