#[non_exhaustive]pub struct TargetInfo {
pub triple: Triple,
pub pointer_width: u32,
pub little_endian: bool,
pub char_is_signed: bool,
pub long_width: u32,
pub long_double_width: u32,
pub object_format: ObjectFormat,
}Expand description
The facts about a target that the compiler reads instead of hard-coding.
This is the whole of what a pass is allowed to know about where its output will run.
It grows, and every field added here is one fewer #[cfg] somewhere it should not be.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.triple: TripleThe triple this describes.
pointer_width: u32Width of a pointer in bits.
little_endian: boolWhether bytes are ordered little end first.
char_is_signed: boolWhether a bare char is signed.
Signed on x86-64 and unsigned on AArch64 Linux, which is the classic source of code that works on one and not the other, so it is data rather than an assumption.
long_width: u32Width of long in bits. This is the field that separates the LP64 world from
Windows LLP64.
long_double_width: u32Width of long double in bits: 80 bits of x87 stored in 128 on SysV x86-64,
64 on Apple platforms, 64 on Windows.
object_format: ObjectFormatThe object format to emit.
Implementations§
Trait Implementations§
Source§impl Clone for TargetInfo
impl Clone for TargetInfo
Source§fn clone(&self) -> TargetInfo
fn clone(&self) -> TargetInfo
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more