From 32bee7b10d84c3ffb19b3e1d6d1e4289699e32bb Mon Sep 17 00:00:00 2001 From: Jameson Nash Date: Tue, 13 Sep 2016 16:51:47 -0400 Subject: [PATCH] add missing edges to invoke Expr --- base/inference.jl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/base/inference.jl b/base/inference.jl index 59651d25c0165..63487ea3ea367 100644 --- a/base/inference.jl +++ b/base/inference.jl @@ -2575,6 +2575,7 @@ function inlineable(f::ANY, ft::ANY, e::Expr, atypes::Vector{Any}, sv::Inference local sig = argtypes_to_type(atypes) local li = ccall(:jl_get_spec_lambda, Any, (Any, UInt), sig, sv.world) li === nothing && return false + add_backedge(li, sv) local stmt = [] push!(stmt, Expr(:(=), linfo_var, li)) spec_hit === nothing && (spec_hit = genlabel(sv)) @@ -2642,6 +2643,7 @@ function inlineable(f::ANY, ft::ANY, e::Expr, atypes::Vector{Any}, sv::Inference else local cache_linfo = ccall(:jl_get_spec_lambda, Any, (Any, UInt), atype_unlimited, sv.world) cache_linfo === nothing && return NF + add_backedge(cache_linfo, sv) e.head = :invoke unshift!(e.args, cache_linfo) return e