anchor.diff:  		  {Code3,_Env3} = mk_debug_calltrace(MFA, Env1, Code2),
   		  {Code3,_Env3} = {Code2,Env1}),
     %% For stack optimization
  -  Leafness = leafness(Code3),
  +  IsClosure = get_closure_info(MFA, ClosureInfo) =/= not_a_closure,
  +  Leafness = leafness(Code3, IsClosure),
     IsLeaf = is_leaf_code(Leafness),
     Code4 =
       [FunLbl |
  
positive.code: 
  mk_redtest() -> hipe_icode:mk_primop([], redtest, []).
  
  leafness(Is) -> % -> true, selfrec, or false
    leafness(Is, true).
  
  leafness([], Leafness) ->
    Leafness;
  leafness([I|Is], Leafness) ->
    case I of
      #icode_comment{} ->
        %% BEAM self-tailcalls become gotos, but they leave
  
negative.code: 	    call_fun -> false;		% Calls closure
  	    enter_fun -> false;		% Calls closure
  	    #apply_N{} -> false;
  	    _ -> leafness(Is, IsClosure, Leafness) % Other primop calls are ok
  	  end;
  	T when T =:= 'local' orelse T =:= 'remote' ->
  	  {M,F,A} = hipe_icode:call_fun(I),
  	  case erlang:is_builtin(M, F, A) of
  	    true -> leafness(Is, IsClosure, Leafness);
  	    false -> false
  	  end
        end;
  