@@ -847,7 +847,6 @@ pub struct LayoutDetails {
847
847
pub fields : FieldPlacement ,
848
848
pub abi : Abi ,
849
849
pub align : Align ,
850
- pub primitive_align : Align ,
851
850
pub size : Size
852
851
}
853
852
@@ -861,7 +860,6 @@ impl LayoutDetails {
861
860
abi : Abi :: Scalar ( scalar) ,
862
861
size,
863
862
align,
864
- primitive_align : align
865
863
}
866
864
}
867
865
@@ -872,7 +870,6 @@ impl LayoutDetails {
872
870
fields : FieldPlacement :: Union ( field_count) ,
873
871
abi : Abi :: Uninhabited ,
874
872
align,
875
- primitive_align : align,
876
873
size : Size :: from_bytes ( 0 )
877
874
}
878
875
}
@@ -935,7 +932,6 @@ impl<'a, 'tcx> LayoutDetails {
935
932
} ,
936
933
abi : Abi :: ScalarPair ( a, b) ,
937
934
align,
938
- primitive_align : align,
939
935
size
940
936
}
941
937
} ;
@@ -955,14 +951,12 @@ impl<'a, 'tcx> LayoutDetails {
955
951
bug ! ( "struct cannot be packed and aligned" ) ;
956
952
}
957
953
958
- let base_align = if packed {
954
+ let mut align = if packed {
959
955
dl. i8_align
960
956
} else {
961
957
dl. aggregate_align
962
958
} ;
963
959
964
- let mut align = base_align;
965
- let mut primitive_align = base_align;
966
960
let mut sized = true ;
967
961
let mut offsets = vec ! [ Size :: from_bytes( 0 ) ; fields. len( ) ] ;
968
962
let mut inverse_memory_index: Vec < u32 > = ( 0 ..fields. len ( ) as u32 ) . collect ( ) ;
@@ -1012,7 +1006,6 @@ impl<'a, 'tcx> LayoutDetails {
1012
1006
if !packed {
1013
1007
let discr_align = discr. align ( dl) ;
1014
1008
align = align. max ( discr_align) ;
1015
- primitive_align = primitive_align. max ( discr_align) ;
1016
1009
}
1017
1010
}
1018
1011
@@ -1035,7 +1028,6 @@ impl<'a, 'tcx> LayoutDetails {
1035
1028
if !packed {
1036
1029
offset = offset. abi_align ( field. align ) ;
1037
1030
align = align. max ( field. align ) ;
1038
- primitive_align = primitive_align. max ( field. primitive_align ) ;
1039
1031
}
1040
1032
1041
1033
debug ! ( "univariant offset: {:?} field: {:#?}" , offset, field) ;
@@ -1134,7 +1126,6 @@ impl<'a, 'tcx> LayoutDetails {
1134
1126
if offsets[ i] == pair_offsets[ 0 ] &&
1135
1127
offsets[ j] == pair_offsets[ 1 ] &&
1136
1128
align == pair. align &&
1137
- primitive_align == pair. primitive_align &&
1138
1129
size == pair. size {
1139
1130
// We can use `ScalarPair` only when it matches our
1140
1131
// already computed layout (including `#[repr(C)]`).
@@ -1155,7 +1146,6 @@ impl<'a, 'tcx> LayoutDetails {
1155
1146
} ,
1156
1147
abi,
1157
1148
align,
1158
- primitive_align,
1159
1149
size
1160
1150
} )
1161
1151
} ;
@@ -1255,7 +1245,6 @@ impl<'a, 'tcx> LayoutDetails {
1255
1245
packed : false
1256
1246
} ,
1257
1247
align : element. align ,
1258
- primitive_align : element. primitive_align ,
1259
1248
size
1260
1249
} )
1261
1250
}
@@ -1272,7 +1261,6 @@ impl<'a, 'tcx> LayoutDetails {
1272
1261
packed : false
1273
1262
} ,
1274
1263
align : element. align ,
1275
- primitive_align : element. primitive_align ,
1276
1264
size : Size :: from_bytes ( 0 )
1277
1265
} )
1278
1266
}
@@ -1288,7 +1276,6 @@ impl<'a, 'tcx> LayoutDetails {
1288
1276
packed : false
1289
1277
} ,
1290
1278
align : dl. i8_align ,
1291
- primitive_align : dl. i8_align ,
1292
1279
size : Size :: from_bytes ( 0 )
1293
1280
} )
1294
1281
}
@@ -1359,7 +1346,6 @@ impl<'a, 'tcx> LayoutDetails {
1359
1346
abi : Abi :: Vector ,
1360
1347
size,
1361
1348
align,
1362
- primitive_align : align
1363
1349
} )
1364
1350
}
1365
1351
@@ -1389,27 +1375,24 @@ impl<'a, 'tcx> LayoutDetails {
1389
1375
bug ! ( "Union cannot be packed and aligned" ) ;
1390
1376
}
1391
1377
1392
- let mut primitive_align = if def. repr . packed ( ) {
1378
+ let mut align = if def. repr . packed ( ) {
1393
1379
dl. i8_align
1394
1380
} else {
1395
1381
dl. aggregate_align
1396
1382
} ;
1397
1383
1398
- let mut align = if def. repr . align > 0 {
1384
+ if def. repr . align > 0 {
1399
1385
let repr_align = def. repr . align as u64 ;
1400
- primitive_align. max (
1401
- Align :: from_bytes ( repr_align, repr_align) . unwrap ( ) )
1402
- } else {
1403
- primitive_align
1404
- } ;
1386
+ align = align. max (
1387
+ Align :: from_bytes ( repr_align, repr_align) . unwrap ( ) ) ;
1388
+ }
1405
1389
1406
1390
let mut size = Size :: from_bytes ( 0 ) ;
1407
1391
for field in & variants[ 0 ] {
1408
1392
assert ! ( !field. is_unsized( ) ) ;
1409
1393
1410
1394
if !packed {
1411
1395
align = align. max ( field. align ) ;
1412
- primitive_align = primitive_align. max ( field. primitive_align ) ;
1413
1396
}
1414
1397
size = cmp:: max ( size, field. size ) ;
1415
1398
}
@@ -1422,7 +1405,6 @@ impl<'a, 'tcx> LayoutDetails {
1422
1405
packed
1423
1406
} ,
1424
1407
align,
1425
- primitive_align,
1426
1408
size : size. abi_align ( align)
1427
1409
} ) ) ;
1428
1410
}
@@ -1519,12 +1501,7 @@ impl<'a, 'tcx> LayoutDetails {
1519
1501
} ) . collect :: < Result < Vec < _ > , _ > > ( ) ?;
1520
1502
1521
1503
let offset = st[ i] . fields . offset ( field_index) + offset;
1522
- let LayoutDetails {
1523
- size,
1524
- mut align,
1525
- mut primitive_align,
1526
- ..
1527
- } = st[ i] ;
1504
+ let LayoutDetails { size, mut align, .. } = st[ i] ;
1528
1505
1529
1506
let mut niche_align = niche. value . align ( dl) ;
1530
1507
let abi = if offset. bytes ( ) == 0 && niche. value . size ( dl) == size {
@@ -1541,7 +1518,6 @@ impl<'a, 'tcx> LayoutDetails {
1541
1518
}
1542
1519
} ;
1543
1520
align = align. max ( niche_align) ;
1544
- primitive_align = primitive_align. max ( niche_align) ;
1545
1521
1546
1522
return Ok ( tcx. intern_layout ( LayoutDetails {
1547
1523
variants : Variants :: NicheFilling {
@@ -1558,7 +1534,6 @@ impl<'a, 'tcx> LayoutDetails {
1558
1534
abi,
1559
1535
size,
1560
1536
align,
1561
- primitive_align
1562
1537
} ) ) ;
1563
1538
}
1564
1539
}
@@ -1577,7 +1552,6 @@ impl<'a, 'tcx> LayoutDetails {
1577
1552
let ( min_ity, signed) = Integer :: repr_discr ( tcx, ty, & def. repr , min, max) ;
1578
1553
1579
1554
let mut align = dl. aggregate_align ;
1580
- let mut primitive_align = dl. aggregate_align ;
1581
1555
let mut size = Size :: from_bytes ( 0 ) ;
1582
1556
1583
1557
// We're interested in the smallest alignment, so start large.
@@ -1599,7 +1573,6 @@ impl<'a, 'tcx> LayoutDetails {
1599
1573
}
1600
1574
size = cmp:: max ( size, st. size ) ;
1601
1575
align = align. max ( st. align ) ;
1602
- primitive_align = primitive_align. max ( st. primitive_align ) ;
1603
1576
Ok ( st)
1604
1577
} ) . collect :: < Result < Vec < _ > , _ > > ( ) ?;
1605
1578
@@ -1692,7 +1665,6 @@ impl<'a, 'tcx> LayoutDetails {
1692
1665
fields : FieldPlacement :: Union ( 1 ) ,
1693
1666
abi,
1694
1667
align,
1695
- primitive_align,
1696
1668
size
1697
1669
} )
1698
1670
}
@@ -2465,8 +2437,7 @@ impl_stable_hash_for!(struct ::ty::layout::LayoutDetails {
2465
2437
fields,
2466
2438
abi,
2467
2439
size,
2468
- align,
2469
- primitive_align
2440
+ align
2470
2441
} ) ;
2471
2442
2472
2443
impl_stable_hash_for ! ( enum :: ty:: layout:: Integer {
0 commit comments