about summary refs log tree commit diff
path: root/src/libstd/libc.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2013-06-06 19:40:32 -0700
committerbors <bors@rust-lang.org>2013-06-06 19:40:32 -0700
commit74d9de7abdceb2cb11a5e8a79eaec6ea2c70ea35 (patch)
tree5a0897f86c7921289969d19a0fff597708acf947 /src/libstd/libc.rs
parent5d2cadbfea34ebbd0d83495833395b005380f2ec (diff)
parent8bcefef2f2747dc7b2f48ba7924101dc70492cf0 (diff)
downloadrust-74d9de7abdceb2cb11a5e8a79eaec6ea2c70ea35.tar.gz
rust-74d9de7abdceb2cb11a5e8a79eaec6ea2c70ea35.zip
auto merge of #6979 : thestinger/rust/libc, r=brson
LLVM provides these functions as intrinsics, and will generate calls to
libc when appropriate. They are exposed in the `ptr` module as
`copy_nonoverlapping_memory`, `copy_memory` and `set_memory`.

@graydon: r?
Diffstat (limited to 'src/libstd/libc.rs')
-rw-r--r--src/libstd/libc.rs17
1 files changed, 4 insertions, 13 deletions
diff --git a/src/libstd/libc.rs b/src/libstd/libc.rs
index 142b2f7d6af..26205c930f0 100644
--- a/src/libstd/libc.rs
+++ b/src/libstd/libc.rs
@@ -159,8 +159,8 @@ pub use libc::funcs::c95::stdlib::{free, getenv, labs, malloc, rand};
 pub use libc::funcs::c95::stdlib::{realloc, srand, strtod, strtol};
 pub use libc::funcs::c95::stdlib::{strtoul, system};
 
-pub use libc::funcs::c95::string::{memchr, memcmp, memcpy, memmove};
-pub use libc::funcs::c95::string::{memset, strcat, strchr, strcmp};
+pub use libc::funcs::c95::string::{memchr, memcmp};
+pub use libc::funcs::c95::string::{strcat, strchr, strcmp};
 pub use libc::funcs::c95::string::{strcoll, strcpy, strcspn, strerror};
 pub use libc::funcs::c95::string::{strlen, strncat, strncmp, strncpy};
 pub use libc::funcs::c95::string::{strpbrk, strrchr, strspn, strstr};
@@ -1452,26 +1452,17 @@ pub mod funcs {
                                -> size_t;
                 unsafe fn wcslen(buf: *wchar_t) -> size_t;
 
+                // Omitted: memcpy, memmove, memset (provided by LLVM)
+
                 // These are fine to execute on the Rust stack. They must be,
                 // in fact, because LLVM generates calls to them!
                 #[rust_stack]
                 #[inline(always)]
-                unsafe fn memcpy(s: *c_void, ct: *c_void, n: size_t)
-                              -> *c_void;
-                #[rust_stack]
-                #[inline(always)]
-                unsafe fn memmove(s: *c_void, ct: *c_void, n: size_t)
-                               -> *c_void;
-                #[rust_stack]
-                #[inline(always)]
                 unsafe fn memcmp(cx: *c_void, ct: *c_void, n: size_t)
                               -> c_int;
                 #[rust_stack]
                 #[inline(always)]
                 unsafe fn memchr(cx: *c_void, c: c_int, n: size_t) -> *c_void;
-                #[rust_stack]
-                #[inline(always)]
-                unsafe fn memset(s: *c_void, c: c_int, n: size_t) -> *c_void;
             }
         }
     }