diff options
| author | Taiki Endo <te316e89@gmail.com> | 2024-09-15 17:22:18 +0900 |
|---|---|---|
| committer | Amanieu d'Antras <amanieu@gmail.com> | 2024-09-18 05:58:40 -0400 |
| commit | 24b5e3c99e7d97be8e077712f1bb52f7fbc3bd45 (patch) | |
| tree | abf837795e4eb8c72a9eab3dedfb9cd0552d23a2 | |
| parent | 9e5b3f5c8cfe267573761b86d0f917a0c25503a1 (diff) | |
| download | rust-24b5e3c99e7d97be8e077712f1bb52f7fbc3bd45.tar.gz rust-24b5e3c99e7d97be8e077712f1bb52f7fbc3bd45.zip | |
Use C string literal
4 files changed, 39 insertions, 40 deletions
diff --git a/library/stdarch/crates/std_detect/src/detect/cache.rs b/library/stdarch/crates/std_detect/src/detect/cache.rs index 182513d883b..643e4da1948 100644 --- a/library/stdarch/crates/std_detect/src/detect/cache.rs +++ b/library/stdarch/crates/std_detect/src/detect/cache.rs @@ -134,7 +134,8 @@ cfg_if::cfg_if! { #[inline] fn initialize(mut value: Initializer) -> Initializer { - const RUST_STD_DETECT_UNSTABLE: &[u8] = b"RUST_STD_DETECT_UNSTABLE\0"; + use core::ffi::CStr; + const RUST_STD_DETECT_UNSTABLE: &CStr = c"RUST_STD_DETECT_UNSTABLE"; cfg_if::cfg_if! { if #[cfg(windows)] { use alloc::vec; @@ -142,18 +143,18 @@ cfg_if::cfg_if! { extern "system" { fn GetEnvironmentVariableA(name: *const u8, buffer: *mut u8, size: u32) -> u32; } - let len = unsafe { GetEnvironmentVariableA(RUST_STD_DETECT_UNSTABLE.as_ptr(), core::ptr::null_mut(), 0) }; + let len = unsafe { GetEnvironmentVariableA(RUST_STD_DETECT_UNSTABLE.as_ptr().cast::<u8>(), core::ptr::null_mut(), 0) }; if len > 0 { // +1 to include the null terminator. let mut env = vec![0; len as usize + 1]; - let len = unsafe { GetEnvironmentVariableA(RUST_STD_DETECT_UNSTABLE.as_ptr(), env.as_mut_ptr(), len + 1) }; + let len = unsafe { GetEnvironmentVariableA(RUST_STD_DETECT_UNSTABLE.as_ptr().cast::<u8>(), env.as_mut_ptr(), len + 1) }; if len > 0 { disable_features(&env[..len as usize], &mut value); } } } else { let env = unsafe { - libc::getenv(RUST_STD_DETECT_UNSTABLE.as_ptr() as *const libc::c_char) + libc::getenv(RUST_STD_DETECT_UNSTABLE.as_ptr()) }; if !env.is_null() { let len = unsafe { libc::strlen(env) }; diff --git a/library/stdarch/crates/std_detect/src/detect/os/darwin/aarch64.rs b/library/stdarch/crates/std_detect/src/detect/os/darwin/aarch64.rs index 3f292c1b1b1..0a822353ca6 100644 --- a/library/stdarch/crates/std_detect/src/detect/os/darwin/aarch64.rs +++ b/library/stdarch/crates/std_detect/src/detect/os/darwin/aarch64.rs @@ -3,9 +3,10 @@ //! <https://developer.apple.com/documentation/kernel/1387446-sysctlbyname/determining_instruction_set_characteristics> use crate::detect::{cache, Feature}; +use core::ffi::CStr; #[inline] -fn _sysctlbyname(name: &str) -> bool { +fn _sysctlbyname(name: &CStr) -> bool { use libc; let mut enabled: i32 = 0; @@ -14,7 +15,7 @@ fn _sysctlbyname(name: &str) -> bool { let ret = unsafe { libc::sysctlbyname( - name.as_ptr() as *const i8, + name.as_ptr(), enabled_ptr, &mut enabled_len, core::ptr::null_mut(), @@ -38,35 +39,35 @@ pub(crate) fn detect_features() -> cache::Initializer { } }; - let asimd = _sysctlbyname("hw.optional.AdvSIMD\0"); - let pmull = _sysctlbyname("hw.optional.arm.FEAT_PMULL\0"); - let fp = _sysctlbyname("hw.optional.floatingpoint\0"); - let fp16 = _sysctlbyname("hw.optional.arm.FEAT_FP16\0"); - let crc = _sysctlbyname("hw.optional.armv8_crc32\0"); - let lse = _sysctlbyname("hw.optional.arm.FEAT_LSE\0"); - let lse2 = _sysctlbyname("hw.optional.arm.FEAT_LSE2\0"); - let rdm = _sysctlbyname("hw.optional.arm.FEAT_RDM\0"); - let rcpc = _sysctlbyname("hw.optional.arm.FEAT_LRCPC\0"); - let rcpc2 = _sysctlbyname("hw.optional.arm.FEAT_LRCPC2\0"); - let dotprod = _sysctlbyname("hw.optional.arm.FEAT_DotProd\0"); - let fhm = _sysctlbyname("hw.optional.arm.FEAT_FHM\0"); - let flagm = _sysctlbyname("hw.optional.arm.FEAT_FlagM\0"); - let ssbs = _sysctlbyname("hw.optional.arm.FEAT_SSBS\0"); - let sb = _sysctlbyname("hw.optional.arm.FEAT_SB\0"); - let paca = _sysctlbyname("hw.optional.arm.FEAT_PAuth\0"); - let dpb = _sysctlbyname("hw.optional.arm.FEAT_DPB\0"); - let dpb2 = _sysctlbyname("hw.optional.arm.FEAT_DPB2\0"); - let frintts = _sysctlbyname("hw.optional.arm.FEAT_FRINTTS\0"); - let i8mm = _sysctlbyname("hw.optional.arm.FEAT_I8MM\0"); - let bf16 = _sysctlbyname("hw.optional.arm.FEAT_BF16\0"); - let bti = _sysctlbyname("hw.optional.arm.FEAT_BTI\0"); - let fcma = _sysctlbyname("hw.optional.arm.FEAT_FCMA\0"); - let aes = _sysctlbyname("hw.optional.arm.FEAT_AES\0"); - let sha1 = _sysctlbyname("hw.optional.arm.FEAT_SHA1\0"); - let sha2 = _sysctlbyname("hw.optional.arm.FEAT_SHA256\0"); - let sha3 = _sysctlbyname("hw.optional.arm.FEAT_SHA3\0"); - let sha512 = _sysctlbyname("hw.optional.arm.FEAT_SHA512\0"); - let jsconv = _sysctlbyname("hw.optional.arm.FEAT_JSCVT\0"); + let asimd = _sysctlbyname(c"hw.optional.AdvSIMD"); + let pmull = _sysctlbyname(c"hw.optional.arm.FEAT_PMULL"); + let fp = _sysctlbyname(c"hw.optional.floatingpoint"); + let fp16 = _sysctlbyname(c"hw.optional.arm.FEAT_FP16"); + let crc = _sysctlbyname(c"hw.optional.armv8_crc32"); + let lse = _sysctlbyname(c"hw.optional.arm.FEAT_LSE"); + let lse2 = _sysctlbyname(c"hw.optional.arm.FEAT_LSE2"); + let rdm = _sysctlbyname(c"hw.optional.arm.FEAT_RDM"); + let rcpc = _sysctlbyname(c"hw.optional.arm.FEAT_LRCPC"); + let rcpc2 = _sysctlbyname(c"hw.optional.arm.FEAT_LRCPC2"); + let dotprod = _sysctlbyname(c"hw.optional.arm.FEAT_DotProd"); + let fhm = _sysctlbyname(c"hw.optional.arm.FEAT_FHM"); + let flagm = _sysctlbyname(c"hw.optional.arm.FEAT_FlagM"); + let ssbs = _sysctlbyname(c"hw.optional.arm.FEAT_SSBS"); + let sb = _sysctlbyname(c"hw.optional.arm.FEAT_SB"); + let paca = _sysctlbyname(c"hw.optional.arm.FEAT_PAuth"); + let dpb = _sysctlbyname(c"hw.optional.arm.FEAT_DPB"); + let dpb2 = _sysctlbyname(c"hw.optional.arm.FEAT_DPB2"); + let frintts = _sysctlbyname(c"hw.optional.arm.FEAT_FRINTTS"); + let i8mm = _sysctlbyname(c"hw.optional.arm.FEAT_I8MM"); + let bf16 = _sysctlbyname(c"hw.optional.arm.FEAT_BF16"); + let bti = _sysctlbyname(c"hw.optional.arm.FEAT_BTI"); + let fcma = _sysctlbyname(c"hw.optional.arm.FEAT_FCMA"); + let aes = _sysctlbyname(c"hw.optional.arm.FEAT_AES"); + let sha1 = _sysctlbyname(c"hw.optional.arm.FEAT_SHA1"); + let sha2 = _sysctlbyname(c"hw.optional.arm.FEAT_SHA256"); + let sha3 = _sysctlbyname(c"hw.optional.arm.FEAT_SHA3"); + let sha512 = _sysctlbyname(c"hw.optional.arm.FEAT_SHA512"); + let jsconv = _sysctlbyname(c"hw.optional.arm.FEAT_JSCVT"); enable_feature(Feature::asimd, asimd); enable_feature(Feature::pmull, pmull); diff --git a/library/stdarch/crates/std_detect/src/detect/os/linux/aarch64.rs b/library/stdarch/crates/std_detect/src/detect/os/linux/aarch64.rs index 9ebd98dad81..e2de39ba0f2 100644 --- a/library/stdarch/crates/std_detect/src/detect/os/linux/aarch64.rs +++ b/library/stdarch/crates/std_detect/src/detect/os/linux/aarch64.rs @@ -14,10 +14,7 @@ pub(crate) fn detect_features() -> cache::Initializer { // https://reviews.llvm.org/D114523 let mut arch = [0_u8; libc::PROP_VALUE_MAX as usize]; let len = unsafe { - libc::__system_property_get( - b"ro.arch\0".as_ptr() as *const libc::c_char, - arch.as_mut_ptr() as *mut libc::c_char, - ) + libc::__system_property_get(c"ro.arch".as_ptr(), arch.as_mut_ptr() as *mut libc::c_char) }; // On Exynos, ro.arch is not available on Android 12+, but it is fine // because Android 9+ includes the fix. diff --git a/library/stdarch/crates/std_detect/src/detect/os/linux/auxvec.rs b/library/stdarch/crates/std_detect/src/detect/os/linux/auxvec.rs index a04ea7b147e..61b6e2df1ac 100644 --- a/library/stdarch/crates/std_detect/src/detect/os/linux/auxvec.rs +++ b/library/stdarch/crates/std_detect/src/detect/os/linux/auxvec.rs @@ -187,7 +187,7 @@ fn getauxval(key: usize) -> Result<usize, ()> { use libc; pub type F = unsafe extern "C" fn(usize) -> usize; unsafe { - let ptr = libc::dlsym(libc::RTLD_DEFAULT, "getauxval\0".as_ptr() as *const _); + let ptr = libc::dlsym(libc::RTLD_DEFAULT, c"getauxval".as_ptr()); if ptr.is_null() { return Err(()); } |
