File tree 1 file changed +11
-1
lines changed
1 file changed +11
-1
lines changed Original file line number Diff line number Diff line change @@ -69,7 +69,7 @@ pub fn main() {
69
69
assert_eq ! ( size_of:: <E4 >( ) , 8 ) ;
70
70
assert_eq ! ( size_of:: <E5 >( ) , align_size( 10 , align_of:: <u32 >( ) ) ) ;
71
71
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>( ) ) ) ;
73
73
assert_eq ! ( size_of:: <p0f_api_query>( ) , 21 ) ;
74
74
}
75
75
@@ -80,3 +80,13 @@ fn align_size(size: usize, align: usize) -> usize {
80
80
size
81
81
}
82
82
}
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
+ }
You can’t perform that action at this time.
0 commit comments