diff --git a/Cargo.toml b/Cargo.toml index 8479229..31ca78a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -24,7 +24,7 @@ targets = ["target-lexicon"] [dependencies] smallvec = "1.8" -target-lexicon = { version = "0.12.4", optional = true } +target-lexicon = { version = "0.12.5", optional = true } [dev-dependencies] similar-asserts = "1.1" diff --git a/src/expr.rs b/src/expr.rs index fcd66ff..41f2103 100644 --- a/src/expr.rs +++ b/src/expr.rs @@ -164,6 +164,7 @@ impl TargetMatcher for target_lexicon::Triple { | Environment::Androideabi | Environment::Eabi | Environment::Eabihf + | Environment::Sim ) } else { match env.0.parse::() { @@ -177,7 +178,8 @@ impl TargetMatcher for target_lexicon::Triple { | Environment::Gnuspe | Environment::Gnux32 | Environment::GnuIlp32 - | Environment::Gnueabihf => true, + | Environment::Gnueabihf + | Environment::GnuLlvm => true, // Rust 1.49.0 changed all android targets to have the // gnu environment Environment::Android | Environment::Androideabi @@ -221,7 +223,7 @@ impl TargetMatcher for target_lexicon::Triple { AmdHsa, Bitrig, Cloudabi, Cuda, Darwin, Dragonfly, Emscripten, Espidf, Freebsd, Fuchsia, Haiku, Hermit, Horizon, Illumos, Ios, L4re, Linux, MacOSX, Nebulet, Netbsd, None_, Openbsd, Redox, Solaris, Tvos, Uefi, Unknown, VxWorks, Wasi, - Windows, + Watchos, Windows, }; match self.operating_system { AmdHsa | Bitrig | Cloudabi | Cuda | Hermit | Nebulet | None_ | Uefi => false, @@ -241,7 +243,8 @@ impl TargetMatcher for target_lexicon::Triple { | Redox | Solaris | Tvos - | VxWorks => fam == &crate::targets::Family::unix, + | VxWorks + | Watchos => fam == &crate::targets::Family::unix, Emscripten => { match self.architecture { // asmjs, wasm32 and wasm64 are part of both the wasm and unix families diff --git a/src/expr/parser.rs b/src/expr/parser.rs index ba937b4..83715b5 100644 --- a/src/expr/parser.rs +++ b/src/expr/parser.rs @@ -312,6 +312,8 @@ impl Expression { let key = pred_key.take(); let val = pred_val.take(); + // In this context, the boolean to int conversion is confusing. + #[allow(clippy::bool_to_int_with_if)] let num_predicates = top.predicates.len() + if key.is_some() { 1 } else { 0 } + top.nest_level as usize; diff --git a/src/targets.rs b/src/targets.rs index 8d458b8..b6845f9 100644 --- a/src/targets.rs +++ b/src/targets.rs @@ -162,14 +162,14 @@ impl Families { impl Deref for Families { type Target = [Family]; fn deref(&self) -> &Self::Target { - &*self.0 + &self.0 } } impl AsRef<[Family]> for Families { #[inline] fn as_ref(&self) -> &[Family] { - &*self.0 + &self.0 } } @@ -222,14 +222,14 @@ impl HasAtomics { impl Deref for HasAtomics { type Target = [HasAtomic]; fn deref(&self) -> &Self::Target { - &*self.0 + &self.0 } } impl AsRef<[HasAtomic]> for HasAtomics { #[inline] fn as_ref(&self) -> &[HasAtomic] { - &*self.0 + &self.0 } } @@ -364,7 +364,7 @@ pub fn get_builtin_target_by_triple(triple: &str) -> Option<&'static TargetInfo> /// versions. /// /// ``` -/// assert_eq!("1.64.0", cfg_expr::targets::rustc_version()); +/// assert_eq!("1.65.0", cfg_expr::targets::rustc_version()); /// ``` pub fn rustc_version() -> &'static str { builtins::RUSTC_VERSION diff --git a/src/targets/builtins.rs b/src/targets/builtins.rs index 8a2d3c0..db0e141 100644 --- a/src/targets/builtins.rs +++ b/src/targets/builtins.rs @@ -10,7 +10,7 @@ use super::*; -pub(crate) const RUSTC_VERSION: &str = "1.64.0"; +pub(crate) const RUSTC_VERSION: &str = "1.65.0"; pub const ALL_BUILTINS: &[TargetInfo] = &[ TargetInfo { @@ -142,7 +142,7 @@ pub const ALL_BUILTINS: &[TargetInfo] = &[ families: Families::windows, pointer_width: 64, endian: Endian::little, - has_atomics: HasAtomics::atomic_8_16_32_64_ptr, + has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr, panic: Panic::unwind, }, TargetInfo { @@ -154,7 +154,7 @@ pub const ALL_BUILTINS: &[TargetInfo] = &[ families: Families::windows, pointer_width: 64, endian: Endian::little, - has_atomics: HasAtomics::atomic_8_16_32_64_ptr, + has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr, panic: Panic::unwind, }, TargetInfo { @@ -286,7 +286,7 @@ pub const ALL_BUILTINS: &[TargetInfo] = &[ families: Families::new_const(&[]), pointer_width: 64, endian: Endian::little, - has_atomics: HasAtomics::atomic_8_16_32_64_ptr, + has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr, panic: Panic::abort, }, TargetInfo { @@ -298,7 +298,7 @@ pub const ALL_BUILTINS: &[TargetInfo] = &[ families: Families::windows, pointer_width: 64, endian: Endian::little, - has_atomics: HasAtomics::atomic_8_16_32_64_ptr, + has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr, panic: Panic::unwind, }, TargetInfo { @@ -406,6 +406,18 @@ pub const ALL_BUILTINS: &[TargetInfo] = &[ families: Families::unix, pointer_width: 32, endian: Endian::little, + has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr, + panic: Panic::unwind, + }, + TargetInfo { + triple: Triple::new_const("armeb-unknown-linux-gnueabi"), + os: Some(Os::linux), + arch: Arch::arm, + env: Some(Env::gnu), + vendor: Some(Vendor::unknown), + families: Families::unix, + pointer_width: 32, + endian: Endian::big, has_atomics: HasAtomics::atomic_8_16_32_64_ptr, panic: Panic::unwind, }, @@ -433,6 +445,18 @@ pub const ALL_BUILTINS: &[TargetInfo] = &[ has_atomics: HasAtomics::atomic_8_16_32_ptr, panic: Panic::abort, }, + TargetInfo { + triple: Triple::new_const("armv4t-none-eabi"), + os: None, + arch: Arch::arm, + env: None, + vendor: Some(Vendor::unknown), + families: Families::new_const(&[]), + pointer_width: 32, + endian: Endian::little, + has_atomics: HasAtomics::new_const(&[]), + panic: Panic::abort, + }, TargetInfo { triple: Triple::new_const("armv4t-unknown-linux-gnueabi"), os: Some(Os::linux), @@ -1393,6 +1417,18 @@ pub const ALL_BUILTINS: &[TargetInfo] = &[ has_atomics: HasAtomics::atomic_8_16_32_64_ptr, panic: Panic::unwind, }, + TargetInfo { + triple: Triple::new_const("powerpc64-unknown-openbsd"), + os: Some(Os::openbsd), + arch: Arch::powerpc64, + env: None, + vendor: Some(Vendor::unknown), + families: Families::unix, + pointer_width: 64, + endian: Endian::big, + has_atomics: HasAtomics::atomic_8_16_32_64_ptr, + panic: Panic::unwind, + }, TargetInfo { triple: Triple::new_const("powerpc64-wrs-vxworks"), os: Some(Os::vxworks), @@ -1585,6 +1621,18 @@ pub const ALL_BUILTINS: &[TargetInfo] = &[ has_atomics: HasAtomics::atomic_8_16_32_64_ptr, panic: Panic::abort, }, + TargetInfo { + triple: Triple::new_const("riscv64gc-unknown-openbsd"), + os: Some(Os::openbsd), + arch: Arch::riscv64, + env: None, + vendor: Some(Vendor::unknown), + families: Families::unix, + pointer_width: 64, + endian: Endian::little, + has_atomics: HasAtomics::atomic_8_16_32_64_ptr, + panic: Panic::unwind, + }, TargetInfo { triple: Triple::new_const("riscv64imac-unknown-none-elf"), os: None, diff --git a/tests/eval.rs b/tests/eval.rs index b2a89de..f0c7c74 100644 --- a/tests/eval.rs +++ b/tests/eval.rs @@ -29,7 +29,7 @@ impl Target { environment: tl::Environment::Unknown, binary_format: tl::BinaryFormat::Unknown, }), - triple => match triple.parse() { + triple => match triple.parse::() { Ok(l) => Some(l), Err(e) => { // There are enough new weird architectures added in each version of