turn pointer width into an integer in target.json

This commit is contained in:
Waffle Lapkin
2025-07-25 11:28:37 +02:00
parent c7e1885075
commit 1f7efabdc6
12 changed files with 14 additions and 17 deletions

View File

@@ -315,7 +315,7 @@ pub enum TargetDataLayoutErrors<'a> {
MissingAlignment { cause: &'a str },
InvalidAlignment { cause: &'a str, err: AlignFromBytesError },
InconsistentTargetArchitecture { dl: &'a str, target: &'a str },
InconsistentTargetPointerWidth { pointer_size: u64, target: u32 },
InconsistentTargetPointerWidth { pointer_size: u64, target: u16 },
InvalidBitsSize { err: String },
UnknownPointerSpecification { err: String },
}

View File

@@ -69,7 +69,7 @@ impl IntTy {
})
}
pub fn normalize(&self, target_width: u32) -> Self {
pub fn normalize(&self, target_width: u16) -> Self {
match self {
IntTy::Isize => match target_width {
16 => IntTy::I16,
@@ -148,7 +148,7 @@ impl UintTy {
})
}
pub fn normalize(&self, target_width: u32) -> Self {
pub fn normalize(&self, target_width: u16) -> Self {
match self {
UintTy::Usize => match target_width {
16 => UintTy::U16,

View File

@@ -25,10 +25,7 @@ impl Target {
let mut base = Target {
llvm_target: json.llvm_target,
metadata: Default::default(),
pointer_width: json
.target_pointer_width
.parse()
.map_err(|err| format!("invalid target-pointer-width: {err}"))?,
pointer_width: json.target_pointer_width,
data_layout: json.data_layout,
arch: json.arch,
options: Default::default(),
@@ -461,7 +458,7 @@ struct TargetSpecJsonMetadata {
#[serde(deny_unknown_fields)]
struct TargetSpecJson {
llvm_target: StaticCow<str>,
target_pointer_width: String,
target_pointer_width: u16,
data_layout: StaticCow<str>,
arch: StaticCow<str>,

View File

@@ -2327,7 +2327,7 @@ pub struct Target {
/// Used for generating target documentation.
pub metadata: TargetMetadata,
/// Number of bits in a pointer. Influences the `target_pointer_width` `cfg` variable.
pub pointer_width: u32,
pub pointer_width: u16,
/// Architecture to use for ABI considerations. Valid options include: "x86",
/// "x86_64", "arm", "aarch64", "mips", "powerpc", "powerpc64", and others.
pub arch: StaticCow<str>,

View File

@@ -53,5 +53,5 @@
"target-family": [
"unix"
],
"target-pointer-width": "64"
"target-pointer-width": 64
}

View File

@@ -33,5 +33,5 @@
"thread"
],
"target-family": "unix",
"target-pointer-width": "64"
"target-pointer-width": 64
}

View File

@@ -4,7 +4,7 @@
"linker-flavor": "gcc",
"llvm-target": "x86_64-unknown-linux-gnu",
"target-endian": "big",
"target-pointer-width": "64",
"target-pointer-width": 64,
"arch": "x86_64",
"os": "linux"
}

View File

@@ -2,5 +2,5 @@
"arch": "x86_64",
"data-layout": "e-m:e-i64:16:32:64",
"llvm-target": "x86_64-unknown-unknown-gnu",
"target-pointer-width": "64"
"target-pointer-width": 64
}

View File

@@ -3,7 +3,7 @@
"linker-flavor": "gcc",
"llvm-target": "i686-unknown-linux-gnu",
"target-endian": "little",
"target-pointer-width": "32",
"target-pointer-width": 32,
"arch": "x86",
"os": "linux"
}

View File

@@ -2,7 +2,7 @@
"data-layout": "e-p:32:32-f64:32:64-i64:32:64-f80:32:32-n8:16:32",
"linker-flavor": "gcc",
"target-endian": "little",
"target-pointer-width": "32",
"target-pointer-width": 32,
"arch": "x86",
"os": "foo"
}

View File

@@ -4,7 +4,7 @@
"linker-flavor": "gcc",
"llvm-target": "x86_64-unknown-linux-gnu",
"target-endian": "little",
"target-pointer-width": "64",
"target-pointer-width": 64,
"arch": "x86_64",
"os": "linux"
}

View File

@@ -3,7 +3,7 @@
"linker-flavor": "gcc",
"llvm-target": "i686-unknown-linux-gnu",
"target-endian": "little",
"target-pointer-width": "32",
"target-pointer-width": 32,
"arch": "x86",
"os": "linux",
"need-explicit-cpu": true