diff --git a/src/comp/middle/ast_map.rs b/src/comp/middle/ast_map.rs index 63b7131d15d7..0d0eb0869896 100644 --- a/src/comp/middle/ast_map.rs +++ b/src/comp/middle/ast_map.rs @@ -73,6 +73,7 @@ fn map_item(cx: ctx, i: @item) { } item_impl(_, _, ms) { for m in ms { cx.map.insert(m.node.id, node_method(m)); } + } item_res(_, dtor_id, _, ctor_id) { cx.map.insert(ctor_id, node_res_ctor(i)); cx.map.insert(dtor_id, node_item(i)); diff --git a/src/comp/middle/debuginfo.rs b/src/comp/middle/debuginfo.rs index 12b26410c88c..6478a1a1e675 100644 --- a/src/comp/middle/debuginfo.rs +++ b/src/comp/middle/debuginfo.rs @@ -1,8 +1,10 @@ -import std::{vec, str, option, unsafe, fs, sys, ctypes}; +import core::{vec, str, option, sys, ctypes, unsafe}; +import std::fs; import std::map::hashmap; import lib::llvm::llvm; import lib::llvm::llvm::ValueRef; import middle::trans_common::*; +import middle::trans_build::B; import middle::ty; import syntax::{ast, codemap}; import ast::ty; @@ -66,7 +68,7 @@ fn llunused() -> ValueRef { lli32(0x0) } fn llnull() -> ValueRef unsafe { - unsafe::reinterpret_cast(std::ptr::null::()) + unsafe::reinterpret_cast(ptr::null::()) } fn add_named_metadata(cx: @crate_ctxt, name: str, val: ValueRef) { @@ -621,7 +623,7 @@ fn create_local_var(bcx: @block_ctxt, local: @ast::local) } let name = alt local.node.pat.node { - ast::pat_bind(ident) { ident } + ast::pat_bind(ident, _) { ident /*XXX deal with optional node binding */ } }; let loc = codemap::lookup_char_pos(cx.sess.get_codemap(), local.span.lo); @@ -727,7 +729,7 @@ fn create_function(fcx: @fn_ctxt) -> @metadata { } ast_map::node_expr(expr) { alt expr.node { - ast::expr_fn(f) { + ast::expr_fn(f, _) { (dbg_cx.names.next("fn"), f.decl.output, expr.id) } } diff --git a/src/comp/middle/trans_closure.rs b/src/comp/middle/trans_closure.rs index 94e1cdc8ca34..43cb0c3f39d4 100644 --- a/src/comp/middle/trans_closure.rs +++ b/src/comp/middle/trans_closure.rs @@ -336,6 +336,7 @@ fn trans_expr_fn(bcx: @block_ctxt, f: ast::_fn, sp: span, let sub_cx = extend_path(bcx.fcx.lcx, ccx.names.next("anon")); let s = mangle_internal_name_by_path(ccx, sub_cx.path); let llfn = decl_internal_cdecl_fn(ccx.llmod, s, llfnty); + register_fn(ccx, sp, sub_cx.path, "anon fn", [], id); let trans_closure_env = lambda(ck: ty::closure_kind) -> ValueRef { let upvars = get_freevars(ccx.tcx, id); diff --git a/src/llvm b/src/llvm index 80c896f8ad46..a320b2aa41fb 160000 --- a/src/llvm +++ b/src/llvm @@ -1 +1 @@ -Subproject commit 80c896f8ad46f5c3fb777c32c0c71d58a4bdb1e7 +Subproject commit a320b2aa41fbe3f944bad33780626d65d1b11e6f