Skip to content

Commit f27dfa0

Browse files
committed
auto merge of #10040 : thestinger/rust/frame_address, r=alexcrichton
Closes #10001
2 parents e2428b7 + ce54c34 commit f27dfa0

File tree

2 files changed

+2
-48
lines changed

2 files changed

+2
-48
lines changed

src/librustc/middle/trans/intrinsic.rs

+2-33
Original file line numberDiff line numberDiff line change
@@ -10,27 +10,23 @@
1010

1111
#[allow(non_uppercase_pattern_statics)];
1212

13-
use back::{abi};
13+
use back::abi;
1414
use lib::llvm::{SequentiallyConsistent, Acquire, Release, Xchg};
1515
use lib::llvm::{ValueRef, Pointer, Array, Struct};
1616
use lib;
1717
use middle::trans::base::*;
1818
use middle::trans::build::*;
19-
use middle::trans::callee::*;
2019
use middle::trans::common::*;
2120
use middle::trans::datum::*;
2221
use middle::trans::type_of::*;
2322
use middle::trans::type_of;
24-
use middle::trans::expr::Ignore;
2523
use middle::trans::machine;
2624
use middle::trans::glue;
27-
use middle::ty::FnSig;
2825
use middle::ty;
2926
use syntax::ast;
3027
use syntax::ast_map;
3128
use syntax::attr;
32-
use syntax::opt_vec;
33-
use util::ppaux::{ty_to_str};
29+
use util::ppaux::ty_to_str;
3430
use middle::trans::machine::llsize_of;
3531
use middle::trans::type_::Type;
3632

@@ -387,33 +383,6 @@ pub fn trans_intrinsic(ccx: @mut CrateContext,
387383
abi::tydesc_field_visit_glue, None);
388384
RetVoid(bcx);
389385
}
390-
"frame_address" => {
391-
let frameaddress = ccx.intrinsics.get_copy(& &"llvm.frameaddress");
392-
let frameaddress_val = Call(bcx, frameaddress, [C_i32(0i32)], []);
393-
let star_u8 = ty::mk_imm_ptr(
394-
bcx.tcx(),
395-
ty::mk_mach_uint(ast::ty_u8));
396-
let fty = ty::mk_closure(bcx.tcx(), ty::ClosureTy {
397-
purity: ast::impure_fn,
398-
sigil: ast::BorrowedSigil,
399-
onceness: ast::Many,
400-
region: ty::re_bound(ty::br_anon(0)),
401-
bounds: ty::EmptyBuiltinBounds(),
402-
sig: FnSig {
403-
bound_lifetime_names: opt_vec::Empty,
404-
inputs: ~[ star_u8 ],
405-
output: ty::mk_nil()
406-
}
407-
});
408-
let datum = Datum {val: get_param(decl, first_real_arg),
409-
mode: ByRef(ZeroMem), ty: fty};
410-
let arg_vals = ~[frameaddress_val];
411-
bcx = trans_call_inner(
412-
bcx, None, fty, ty::mk_nil(),
413-
|bcx| Callee {bcx: bcx, data: Closure(datum)},
414-
ArgVals(arg_vals), Some(Ignore), DontAutorefArg).bcx;
415-
RetVoid(bcx);
416-
}
417386
"morestack_addr" => {
418387
// XXX This is a hack to grab the address of this particular
419388
// native function. There should be a general in-language

src/librustc/middle/typeck/check/mod.rs

-15
Original file line numberDiff line numberDiff line change
@@ -3645,21 +3645,6 @@ pub fn check_intrinsic_type(ccx: @mut CrateCtxt, it: @ast::foreign_item) {
36453645
});
36463646
(0, ~[ td_ptr, visitor_object_ty ], ty::mk_nil())
36473647
}
3648-
"frame_address" => {
3649-
let fty = ty::mk_closure(ccx.tcx, ty::ClosureTy {
3650-
purity: ast::impure_fn,
3651-
sigil: ast::BorrowedSigil,
3652-
onceness: ast::Many,
3653-
region: ty::re_bound(ty::br_anon(0)),
3654-
bounds: ty::EmptyBuiltinBounds(),
3655-
sig: ty::FnSig {
3656-
bound_lifetime_names: opt_vec::Empty,
3657-
inputs: ~[ty::mk_imm_ptr(ccx.tcx, ty::mk_mach_uint(ast::ty_u8))],
3658-
output: ty::mk_nil()
3659-
}
3660-
});
3661-
(0u, ~[fty], ty::mk_nil())
3662-
}
36633648
"morestack_addr" => {
36643649
(0u, ~[], ty::mk_nil_ptr(ccx.tcx))
36653650
}

0 commit comments

Comments
 (0)