about summary refs log tree commit diff
path: root/src/libstd/rt/task.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2013-08-22 07:01:27 -0700
committerbors <bors@rust-lang.org>2013-08-22 07:01:27 -0700
commit4e3dbf959a5124481d1e3ec9b0b30f48ac6dd4f0 (patch)
tree300cc28c46b9d183c57f24936694c3d4fd849feb /src/libstd/rt/task.rs
parent3f6f79b789e8000ce4903857a210318e92724da8 (diff)
parentffb6404c5ade3af113738c3cb72fd853e82a379e (diff)
downloadrust-4e3dbf959a5124481d1e3ec9b0b30f48ac6dd4f0.tar.gz
rust-4e3dbf959a5124481d1e3ec9b0b30f48ac6dd4f0.zip
auto merge of #8666 : nikomatsakis/rust/issue-3678-extern-fn-types, r=pcwalton
Change the type of crust fns like this one:

    extern fn foo() { ... }

from `*u8` to `extern "C" fn()`.

r? @pcwalton (or whomever)

Diffstat (limited to 'src/libstd/rt/task.rs')
-rw-r--r--src/libstd/rt/task.rs11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/libstd/rt/task.rs b/src/libstd/rt/task.rs
index 3b8eb87f8af..12ba39a6dcd 100644
--- a/src/libstd/rt/task.rs
+++ b/src/libstd/rt/task.rs
@@ -445,8 +445,17 @@ impl Unwinder {
         }
 
         extern {
+            #[cfg(not(stage0))]
             #[rust_stack]
-            fn rust_try(f: *u8, code: *c_void, data: *c_void) -> uintptr_t;
+            fn rust_try(f: extern "C" fn(*c_void, *c_void),
+                        code: *c_void,
+                        data: *c_void) -> uintptr_t;
+
+            #[cfg(stage0)]
+            #[rust_stack]
+            fn rust_try(f: *u8,
+                        code: *c_void,
+                        data: *c_void) -> uintptr_t;
         }
     }