Skip to content

Commit 4b13dfd

Browse files
authored
Rollup merge of rust-lang#135778 - ferrocene:ja-gh135777, r=workingjubilee
account for `c_enum_min_bits` in `multiple-reprs` UI test fixes rust-lang#135777
2 parents d88ffcd + a710e1f commit 4b13dfd

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

tests/ui/structs-enums/multiple-reprs.rs

+11-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ pub fn main() {
6969
assert_eq!(size_of::<E4>(), 8);
7070
assert_eq!(size_of::<E5>(), align_size(10, align_of::<u32>()));
7171
assert_eq!(size_of::<E6>(), align_size(14, align_of::<u64>()));
72-
assert_eq!(size_of::<E7>(), align_size(6 + size_of::<c_int>(), align_of::<c_int>()));
72+
assert_eq!(size_of::<E7>(), align_size(6 + c_enum_min_size(), align_of::<c_int>()));
7373
assert_eq!(size_of::<p0f_api_query>(), 21);
7474
}
7575

@@ -80,3 +80,13 @@ fn align_size(size: usize, align: usize) -> usize {
8080
size
8181
}
8282
}
83+
84+
// this is `TargetOptions.c_enum_min_bits` which is not available as a `cfg` value so we retrieve
85+
// the value at runtime. On most targets this is `sizeof(c_int)` but on `thumb*-none` is 1 byte
86+
fn c_enum_min_size() -> usize {
87+
#[repr(C)]
88+
enum E {
89+
A,
90+
}
91+
size_of::<E>()
92+
}

0 commit comments

Comments
 (0)