Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
9 changes: 6 additions & 3 deletions src/expr.rs
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,7 @@ impl TargetMatcher for target_lexicon::Triple {
| Environment::Androideabi
| Environment::Eabi
| Environment::Eabihf
| Environment::Sim
)
} else {
match env.0.parse::<Environment>() {
Expand All @@ -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
Expand Down Expand Up @@ -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,
Expand All @@ -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
Expand Down
2 changes: 2 additions & 0 deletions src/expr/parser.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
10 changes: 5 additions & 5 deletions src/targets.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
}

Expand Down Expand Up @@ -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
}
}

Expand Down Expand Up @@ -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
Expand Down
58 changes: 53 additions & 5 deletions src/targets/builtins.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -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 {
Expand All @@ -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 {
Expand Down Expand Up @@ -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 {
Expand All @@ -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 {
Expand Down Expand Up @@ -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,
},
Expand Down Expand Up @@ -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),
Expand Down Expand Up @@ -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),
Expand Down Expand Up @@ -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,
Expand Down
2 changes: 1 addition & 1 deletion tests/eval.rs
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ impl Target {
environment: tl::Environment::Unknown,
binary_format: tl::BinaryFormat::Unknown,
}),
triple => match triple.parse() {
triple => match triple.parse::<tl::Triple>() {
Ok(l) => Some(l),
Err(e) => {
// There are enough new weird architectures added in each version of
Expand Down