@@ -43,10 +43,24 @@ fn bindgen_test_layout_rte_ipv4_tuple__bindgen_ty_1__bindgen_ty_1() {
43
43
)
44
44
) ;
45
45
assert_eq ! (
46
- unsafe {
47
- & ( * ( :: std:: ptr:: null:: <rte_ipv4_tuple__bindgen_ty_1__bindgen_ty_1>(
48
- ) ) )
49
- . dport as * const _ as usize
46
+ {
47
+ const STRUCT_SIZE : usize = std:: mem:: size_of:: <
48
+ rte_ipv4_tuple__bindgen_ty_1__bindgen_ty_1,
49
+ >( ) ;
50
+ let buffer = [ 0u8 ; STRUCT_SIZE ] ;
51
+ let struct_instance = unsafe {
52
+ std:: mem:: transmute:: <
53
+ [ u8 ; STRUCT_SIZE ] ,
54
+ rte_ipv4_tuple__bindgen_ty_1__bindgen_ty_1,
55
+ >( buffer)
56
+ } ;
57
+ let struct_ptr = & struct_instance
58
+ as * const rte_ipv4_tuple__bindgen_ty_1__bindgen_ty_1;
59
+ let field_ptr = std:: ptr:: addr_of!( struct_instance. dport) ;
60
+ let struct_address = struct_ptr as usize ;
61
+ let field_address = field_ptr as usize ;
62
+ std:: mem:: forget( struct_instance) ;
63
+ field_address. checked_sub( struct_address) . unwrap( )
50
64
} ,
51
65
0usize ,
52
66
concat!(
@@ -57,10 +71,24 @@ fn bindgen_test_layout_rte_ipv4_tuple__bindgen_ty_1__bindgen_ty_1() {
57
71
)
58
72
) ;
59
73
assert_eq ! (
60
- unsafe {
61
- & ( * ( :: std:: ptr:: null:: <rte_ipv4_tuple__bindgen_ty_1__bindgen_ty_1>(
62
- ) ) )
63
- . sport as * const _ as usize
74
+ {
75
+ const STRUCT_SIZE : usize = std:: mem:: size_of:: <
76
+ rte_ipv4_tuple__bindgen_ty_1__bindgen_ty_1,
77
+ >( ) ;
78
+ let buffer = [ 0u8 ; STRUCT_SIZE ] ;
79
+ let struct_instance = unsafe {
80
+ std:: mem:: transmute:: <
81
+ [ u8 ; STRUCT_SIZE ] ,
82
+ rte_ipv4_tuple__bindgen_ty_1__bindgen_ty_1,
83
+ >( buffer)
84
+ } ;
85
+ let struct_ptr = & struct_instance
86
+ as * const rte_ipv4_tuple__bindgen_ty_1__bindgen_ty_1;
87
+ let field_ptr = std:: ptr:: addr_of!( struct_instance. sport) ;
88
+ let struct_address = struct_ptr as usize ;
89
+ let field_address = field_ptr as usize ;
90
+ std:: mem:: forget( struct_instance) ;
91
+ field_address. checked_sub( struct_address) . unwrap( )
64
92
} ,
65
93
2usize ,
66
94
concat!(
@@ -83,19 +111,6 @@ fn bindgen_test_layout_rte_ipv4_tuple__bindgen_ty_1() {
83
111
4usize ,
84
112
concat!( "Alignment of " , stringify!( rte_ipv4_tuple__bindgen_ty_1) )
85
113
) ;
86
- assert_eq ! (
87
- unsafe {
88
- & ( * ( :: std:: ptr:: null:: <rte_ipv4_tuple__bindgen_ty_1>( ) ) ) . sctp_tag
89
- as * const _ as usize
90
- } ,
91
- 0usize ,
92
- concat!(
93
- "Offset of field: " ,
94
- stringify!( rte_ipv4_tuple__bindgen_ty_1) ,
95
- "::" ,
96
- stringify!( sctp_tag)
97
- )
98
- ) ;
99
114
}
100
115
impl Default for rte_ipv4_tuple__bindgen_ty_1 {
101
116
fn default ( ) -> Self {
@@ -119,9 +134,18 @@ fn bindgen_test_layout_rte_ipv4_tuple() {
119
134
concat!( "Alignment of " , stringify!( rte_ipv4_tuple) )
120
135
) ;
121
136
assert_eq ! (
122
- unsafe {
123
- & ( * ( :: std:: ptr:: null:: <rte_ipv4_tuple>( ) ) ) . src_addr as * const _
124
- as usize
137
+ {
138
+ const STRUCT_SIZE : usize = std:: mem:: size_of:: <rte_ipv4_tuple>( ) ;
139
+ let buffer = [ 0u8 ; STRUCT_SIZE ] ;
140
+ let struct_instance = unsafe {
141
+ std:: mem:: transmute:: <[ u8 ; STRUCT_SIZE ] , rte_ipv4_tuple>( buffer)
142
+ } ;
143
+ let struct_ptr = & struct_instance as * const rte_ipv4_tuple;
144
+ let field_ptr = std:: ptr:: addr_of!( struct_instance. src_addr) ;
145
+ let struct_address = struct_ptr as usize ;
146
+ let field_address = field_ptr as usize ;
147
+ std:: mem:: forget( struct_instance) ;
148
+ field_address. checked_sub( struct_address) . unwrap( )
125
149
} ,
126
150
0usize ,
127
151
concat!(
@@ -132,9 +156,18 @@ fn bindgen_test_layout_rte_ipv4_tuple() {
132
156
)
133
157
) ;
134
158
assert_eq ! (
135
- unsafe {
136
- & ( * ( :: std:: ptr:: null:: <rte_ipv4_tuple>( ) ) ) . dst_addr as * const _
137
- as usize
159
+ {
160
+ const STRUCT_SIZE : usize = std:: mem:: size_of:: <rte_ipv4_tuple>( ) ;
161
+ let buffer = [ 0u8 ; STRUCT_SIZE ] ;
162
+ let struct_instance = unsafe {
163
+ std:: mem:: transmute:: <[ u8 ; STRUCT_SIZE ] , rte_ipv4_tuple>( buffer)
164
+ } ;
165
+ let struct_ptr = & struct_instance as * const rte_ipv4_tuple;
166
+ let field_ptr = std:: ptr:: addr_of!( struct_instance. dst_addr) ;
167
+ let struct_address = struct_ptr as usize ;
168
+ let field_address = field_ptr as usize ;
169
+ std:: mem:: forget( struct_instance) ;
170
+ field_address. checked_sub( struct_address) . unwrap( )
138
171
} ,
139
172
4usize ,
140
173
concat!(
@@ -192,10 +225,24 @@ fn bindgen_test_layout_rte_ipv6_tuple__bindgen_ty_1__bindgen_ty_1() {
192
225
)
193
226
) ;
194
227
assert_eq ! (
195
- unsafe {
196
- & ( * ( :: std:: ptr:: null:: <rte_ipv6_tuple__bindgen_ty_1__bindgen_ty_1>(
197
- ) ) )
198
- . dport as * const _ as usize
228
+ {
229
+ const STRUCT_SIZE : usize = std:: mem:: size_of:: <
230
+ rte_ipv6_tuple__bindgen_ty_1__bindgen_ty_1,
231
+ >( ) ;
232
+ let buffer = [ 0u8 ; STRUCT_SIZE ] ;
233
+ let struct_instance = unsafe {
234
+ std:: mem:: transmute:: <
235
+ [ u8 ; STRUCT_SIZE ] ,
236
+ rte_ipv6_tuple__bindgen_ty_1__bindgen_ty_1,
237
+ >( buffer)
238
+ } ;
239
+ let struct_ptr = & struct_instance
240
+ as * const rte_ipv6_tuple__bindgen_ty_1__bindgen_ty_1;
241
+ let field_ptr = std:: ptr:: addr_of!( struct_instance. dport) ;
242
+ let struct_address = struct_ptr as usize ;
243
+ let field_address = field_ptr as usize ;
244
+ std:: mem:: forget( struct_instance) ;
245
+ field_address. checked_sub( struct_address) . unwrap( )
199
246
} ,
200
247
0usize ,
201
248
concat!(
@@ -206,10 +253,24 @@ fn bindgen_test_layout_rte_ipv6_tuple__bindgen_ty_1__bindgen_ty_1() {
206
253
)
207
254
) ;
208
255
assert_eq ! (
209
- unsafe {
210
- & ( * ( :: std:: ptr:: null:: <rte_ipv6_tuple__bindgen_ty_1__bindgen_ty_1>(
211
- ) ) )
212
- . sport as * const _ as usize
256
+ {
257
+ const STRUCT_SIZE : usize = std:: mem:: size_of:: <
258
+ rte_ipv6_tuple__bindgen_ty_1__bindgen_ty_1,
259
+ >( ) ;
260
+ let buffer = [ 0u8 ; STRUCT_SIZE ] ;
261
+ let struct_instance = unsafe {
262
+ std:: mem:: transmute:: <
263
+ [ u8 ; STRUCT_SIZE ] ,
264
+ rte_ipv6_tuple__bindgen_ty_1__bindgen_ty_1,
265
+ >( buffer)
266
+ } ;
267
+ let struct_ptr = & struct_instance
268
+ as * const rte_ipv6_tuple__bindgen_ty_1__bindgen_ty_1;
269
+ let field_ptr = std:: ptr:: addr_of!( struct_instance. sport) ;
270
+ let struct_address = struct_ptr as usize ;
271
+ let field_address = field_ptr as usize ;
272
+ std:: mem:: forget( struct_instance) ;
273
+ field_address. checked_sub( struct_address) . unwrap( )
213
274
} ,
214
275
2usize ,
215
276
concat!(
@@ -232,19 +293,6 @@ fn bindgen_test_layout_rte_ipv6_tuple__bindgen_ty_1() {
232
293
4usize ,
233
294
concat!( "Alignment of " , stringify!( rte_ipv6_tuple__bindgen_ty_1) )
234
295
) ;
235
- assert_eq ! (
236
- unsafe {
237
- & ( * ( :: std:: ptr:: null:: <rte_ipv6_tuple__bindgen_ty_1>( ) ) ) . sctp_tag
238
- as * const _ as usize
239
- } ,
240
- 0usize ,
241
- concat!(
242
- "Offset of field: " ,
243
- stringify!( rte_ipv6_tuple__bindgen_ty_1) ,
244
- "::" ,
245
- stringify!( sctp_tag)
246
- )
247
- ) ;
248
296
}
249
297
impl Default for rte_ipv6_tuple__bindgen_ty_1 {
250
298
fn default ( ) -> Self {
@@ -268,9 +316,18 @@ fn bindgen_test_layout_rte_ipv6_tuple() {
268
316
concat!( "Alignment of " , stringify!( rte_ipv6_tuple) )
269
317
) ;
270
318
assert_eq ! (
271
- unsafe {
272
- & ( * ( :: std:: ptr:: null:: <rte_ipv6_tuple>( ) ) ) . src_addr as * const _
273
- as usize
319
+ {
320
+ const STRUCT_SIZE : usize = std:: mem:: size_of:: <rte_ipv6_tuple>( ) ;
321
+ let buffer = [ 0u8 ; STRUCT_SIZE ] ;
322
+ let struct_instance = unsafe {
323
+ std:: mem:: transmute:: <[ u8 ; STRUCT_SIZE ] , rte_ipv6_tuple>( buffer)
324
+ } ;
325
+ let struct_ptr = & struct_instance as * const rte_ipv6_tuple;
326
+ let field_ptr = std:: ptr:: addr_of!( struct_instance. src_addr) ;
327
+ let struct_address = struct_ptr as usize ;
328
+ let field_address = field_ptr as usize ;
329
+ std:: mem:: forget( struct_instance) ;
330
+ field_address. checked_sub( struct_address) . unwrap( )
274
331
} ,
275
332
0usize ,
276
333
concat!(
@@ -281,9 +338,18 @@ fn bindgen_test_layout_rte_ipv6_tuple() {
281
338
)
282
339
) ;
283
340
assert_eq ! (
284
- unsafe {
285
- & ( * ( :: std:: ptr:: null:: <rte_ipv6_tuple>( ) ) ) . dst_addr as * const _
286
- as usize
341
+ {
342
+ const STRUCT_SIZE : usize = std:: mem:: size_of:: <rte_ipv6_tuple>( ) ;
343
+ let buffer = [ 0u8 ; STRUCT_SIZE ] ;
344
+ let struct_instance = unsafe {
345
+ std:: mem:: transmute:: <[ u8 ; STRUCT_SIZE ] , rte_ipv6_tuple>( buffer)
346
+ } ;
347
+ let struct_ptr = & struct_instance as * const rte_ipv6_tuple;
348
+ let field_ptr = std:: ptr:: addr_of!( struct_instance. dst_addr) ;
349
+ let struct_address = struct_ptr as usize ;
350
+ let field_address = field_ptr as usize ;
351
+ std:: mem:: forget( struct_instance) ;
352
+ field_address. checked_sub( struct_address) . unwrap( )
287
353
} ,
288
354
16usize ,
289
355
concat!(
@@ -322,30 +388,6 @@ fn bindgen_test_layout_rte_thash_tuple() {
322
388
16usize ,
323
389
concat!( "Alignment of " , stringify!( rte_thash_tuple) )
324
390
) ;
325
- assert_eq ! (
326
- unsafe {
327
- & ( * ( :: std:: ptr:: null:: <rte_thash_tuple>( ) ) ) . v4 as * const _ as usize
328
- } ,
329
- 0usize ,
330
- concat!(
331
- "Offset of field: " ,
332
- stringify!( rte_thash_tuple) ,
333
- "::" ,
334
- stringify!( v4)
335
- )
336
- ) ;
337
- assert_eq ! (
338
- unsafe {
339
- & ( * ( :: std:: ptr:: null:: <rte_thash_tuple>( ) ) ) . v6 as * const _ as usize
340
- } ,
341
- 0usize ,
342
- concat!(
343
- "Offset of field: " ,
344
- stringify!( rte_thash_tuple) ,
345
- "::" ,
346
- stringify!( v6)
347
- )
348
- ) ;
349
391
}
350
392
impl Default for rte_thash_tuple {
351
393
fn default ( ) -> Self {
0 commit comments