auto merge of #12096 : brson/rust/morestack-addr, r=thestinger
This commit is contained in:
commit
b60bed9791
@ -461,17 +461,6 @@ pub fn trans_intrinsic(ccx: @CrateContext,
|
||||
glue::call_visit_glue(bcx, visitor, td, None);
|
||||
RetVoid(bcx);
|
||||
}
|
||||
"morestack_addr" => {
|
||||
// FIXME This is a hack to grab the address of this particular
|
||||
// native function. There should be a general in-language
|
||||
// way to do this
|
||||
let llfty = type_of_rust_fn(bcx.ccx(), false, [], ty::mk_nil());
|
||||
let morestack_addr = decl_cdecl_fn(bcx.ccx().llmod, "__morestack",
|
||||
llfty, ty::mk_nil());
|
||||
let morestack_addr = PointerCast(bcx, morestack_addr,
|
||||
Type::nil().ptr_to());
|
||||
Ret(bcx, morestack_addr);
|
||||
}
|
||||
"offset" => {
|
||||
let ptr = get_param(decl, first_real_arg);
|
||||
let offset = get_param(decl, first_real_arg + 1);
|
||||
|
@ -4127,9 +4127,6 @@ pub fn check_intrinsic_type(ccx: @CrateCtxt, it: &ast::ForeignItem) {
|
||||
});
|
||||
(0, ~[ td_ptr, visitor_object_ty ], ty::mk_nil())
|
||||
}
|
||||
"morestack_addr" => {
|
||||
(0u, ~[], ty::mk_nil_ptr(ccx.tcx))
|
||||
}
|
||||
"offset" => {
|
||||
(1,
|
||||
~[
|
||||
|
@ -310,9 +310,6 @@ extern "rust-intrinsic" {
|
||||
|
||||
pub fn visit_tydesc(td: *TyDesc, tv: &mut TyVisitor);
|
||||
|
||||
/// Get the address of the `__morestack` stack growth function.
|
||||
pub fn morestack_addr() -> *();
|
||||
|
||||
/// Calculates the offset from a pointer. The offset *must* be in-bounds of
|
||||
/// the object, or one-byte-past-the-end. An arithmetic overflow is also
|
||||
/// undefined behaviour.
|
||||
|
@ -1,24 +0,0 @@
|
||||
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
mod rusti {
|
||||
#[nolink]
|
||||
extern "rust-intrinsic" {
|
||||
pub fn morestack_addr() -> *();
|
||||
}
|
||||
}
|
||||
|
||||
pub fn main() {
|
||||
unsafe {
|
||||
let addr = rusti::morestack_addr();
|
||||
assert!(addr.is_not_null());
|
||||
error!("{}", addr);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user