@@ -179,7 +179,7 @@ fn layout_of_simd_ty(
179
179
. size
180
180
. checked_mul ( e_len, dl)
181
181
. ok_or ( LayoutError :: BadCalc ( LayoutCalculatorError :: SizeOverflow ) ) ?;
182
- let align = dl. vector_align ( size) ;
182
+ let align = dl. llvmlike_vector_align ( size) ;
183
183
let size = size. align_to ( align. abi ) ;
184
184
185
185
// Compute the placement of the vector fields:
@@ -194,6 +194,7 @@ fn layout_of_simd_ty(
194
194
fields,
195
195
backend_repr : BackendRepr :: Vector { element : e_abi, count : e_len } ,
196
196
largest_niche : e_ly. largest_niche ,
197
+ uninhabited : false ,
197
198
size,
198
199
align,
199
200
max_repr_align : None ,
@@ -297,20 +298,17 @@ pub fn layout_of_ty_query(
297
298
. checked_mul ( count, dl)
298
299
. ok_or ( LayoutError :: BadCalc ( LayoutCalculatorError :: SizeOverflow ) ) ?;
299
300
300
- let backend_repr =
301
- if count != 0 && matches ! ( element. backend_repr, BackendRepr :: Uninhabited ) {
302
- BackendRepr :: Uninhabited
303
- } else {
304
- BackendRepr :: Memory { sized : true }
305
- } ;
301
+ let backend_repr = BackendRepr :: Memory { sized : true } ;
306
302
307
303
let largest_niche = if count != 0 { element. largest_niche } else { None } ;
304
+ let uninhabited = if count != 0 { element. uninhabited } else { false } ;
308
305
309
306
Layout {
310
307
variants : Variants :: Single { index : struct_variant_idx ( ) } ,
311
308
fields : FieldsShape :: Array { stride : element. size , count } ,
312
309
backend_repr,
313
310
largest_niche,
311
+ uninhabited,
314
312
align : element. align ,
315
313
size,
316
314
max_repr_align : None ,
@@ -325,6 +323,7 @@ pub fn layout_of_ty_query(
325
323
fields : FieldsShape :: Array { stride : element. size , count : 0 } ,
326
324
backend_repr : BackendRepr :: Memory { sized : false } ,
327
325
largest_niche : None ,
326
+ uninhabited : false ,
328
327
align : element. align ,
329
328
size : Size :: ZERO ,
330
329
max_repr_align : None ,
@@ -337,6 +336,7 @@ pub fn layout_of_ty_query(
337
336
fields : FieldsShape :: Array { stride : Size :: from_bytes ( 1 ) , count : 0 } ,
338
337
backend_repr : BackendRepr :: Memory { sized : false } ,
339
338
largest_niche : None ,
339
+ uninhabited : false ,
340
340
align : dl. i8_align ,
341
341
size : Size :: ZERO ,
342
342
max_repr_align : None ,
0 commit comments