turn pointer width into an integer in target.json
This commit is contained in:
@@ -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 },
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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>,
|
||||
|
||||
|
||||
@@ -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>,
|
||||
|
||||
@@ -53,5 +53,5 @@
|
||||
"target-family": [
|
||||
"unix"
|
||||
],
|
||||
"target-pointer-width": "64"
|
||||
"target-pointer-width": 64
|
||||
}
|
||||
|
||||
@@ -33,5 +33,5 @@
|
||||
"thread"
|
||||
],
|
||||
"target-family": "unix",
|
||||
"target-pointer-width": "64"
|
||||
"target-pointer-width": 64
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user