rust/src/test/run-pass/c-stack-returning-int64.rs

24 lines
470 B
Rust
Raw Normal View History

extern mod std;
2011-10-24 19:03:18 -05:00
#[abi = "cdecl"]
#[nolink]
extern mod libc {
#[legacy_exports];
fn atol(x: *u8) -> int;
fn atoll(x: *u8) -> i64;
2011-10-24 19:03:18 -05:00
}
fn atol(s: ~str) -> int {
2012-08-01 19:30:05 -05:00
return str::as_buf(s, { |x, _len| libc::atol(x) });
2011-10-24 19:03:18 -05:00
}
fn atoll(s: ~str) -> i64 {
2012-08-01 19:30:05 -05:00
return str::as_buf(s, { |x, _len| libc::atoll(x) });
2011-10-24 19:03:18 -05:00
}
fn main() {
assert atol(~"1024") * 10 == atol(~"10240");
assert (atoll(~"11111111111111111") * 10i64)
== atoll(~"111111111111111110");
2011-10-24 19:03:18 -05:00
}