diff options
| author | Brian Anderson <banderson@mozilla.com> | 2013-01-11 18:32:46 -0800 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2013-02-06 14:27:34 -0800 |
| commit | e91040c704aa9ab46fb1c7a10e293fd5f6bfe079 (patch) | |
| tree | 48b2526c07bfbe119a995feb78781d653c67091f /src/test | |
| parent | a8c8bfc7b5525a83fab65f527345bb6ca46d4e25 (diff) | |
| download | rust-e91040c704aa9ab46fb1c7a10e293fd5f6bfe079.tar.gz rust-e91040c704aa9ab46fb1c7a10e293fd5f6bfe079.zip | |
Make foreign calls work outside of tasks. #4451
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/run-pass/foreign-call-no-runtime.rs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/test/run-pass/foreign-call-no-runtime.rs b/src/test/run-pass/foreign-call-no-runtime.rs new file mode 100644 index 00000000000..865aa775362 --- /dev/null +++ b/src/test/run-pass/foreign-call-no-runtime.rs @@ -0,0 +1,24 @@ +use core::private::run_in_bare_thread; + +extern { + pub fn rust_dbg_call(cb: *u8, + data: libc::uintptr_t) -> libc::uintptr_t; +} + +pub fn main() { + unsafe { + do run_in_bare_thread() { + unsafe { + let i = &100; + rust_dbg_call(callback, cast::transmute(i)); + } + } + } +} + +extern fn callback(data: libc::uintptr_t) { + unsafe { + let data: *int = cast::transmute(data); + assert *data == 100; + } +} \ No newline at end of file |
