@@ -9,6 +9,7 @@ use rustc_abi::{
99 HasDataLayout , Layout , LayoutCalculatorError , LayoutData , Niche , ReprOptions , Scalar , Size ,
1010 StructKind , TagEncoding , VariantIdx , Variants , WrappingRange ,
1111} ;
12+ use rustc_data_structures:: stable_hasher:: Hash64 ;
1213use rustc_index:: bit_set:: DenseBitSet ;
1314use rustc_index:: { IndexSlice , IndexVec } ;
1415use rustc_middle:: bug;
@@ -380,7 +381,7 @@ fn layout_of_uncached<'tcx>(
380381 size,
381382 max_repr_align : None ,
382383 unadjusted_abi_align : element. align . abi ,
383- randomization_seed : element. randomization_seed . wrapping_add ( count) ,
384+ randomization_seed : element. randomization_seed . wrapping_add ( Hash64 :: new ( count) ) ,
384385 } )
385386 }
386387 ty:: Slice ( element) => {
@@ -395,7 +396,9 @@ fn layout_of_uncached<'tcx>(
395396 max_repr_align : None ,
396397 unadjusted_abi_align : element. align . abi ,
397398 // adding a randomly chosen value to distinguish slices
398- randomization_seed : element. randomization_seed . wrapping_add ( 0x2dcba99c39784102 ) ,
399+ randomization_seed : element
400+ . randomization_seed
401+ . wrapping_add ( Hash64 :: new ( 0x2dcba99c39784102 ) ) ,
399402 } )
400403 }
401404 ty:: Str => tcx. mk_layout ( LayoutData {
@@ -408,7 +411,7 @@ fn layout_of_uncached<'tcx>(
408411 max_repr_align : None ,
409412 unadjusted_abi_align : dl. i8_align . abi ,
410413 // another random value
411- randomization_seed : 0xc1325f37d127be22 ,
414+ randomization_seed : Hash64 :: new ( 0xc1325f37d127be22 ) ,
412415 } ) ,
413416
414417 // Odd unit types.
@@ -585,7 +588,7 @@ fn layout_of_uncached<'tcx>(
585588 align,
586589 max_repr_align : None ,
587590 unadjusted_abi_align : align. abi ,
588- randomization_seed : e_ly. randomization_seed . wrapping_add ( e_len) ,
591+ randomization_seed : e_ly. randomization_seed . wrapping_add ( Hash64 :: new ( e_len) ) ,
589592 } )
590593 }
591594
@@ -1051,7 +1054,7 @@ fn coroutine_layout<'tcx>(
10511054 } ;
10521055
10531056 // this is similar to how ReprOptions populates its field_shuffle_seed
1054- let def_hash = tcx. def_path_hash ( def_id) . 0 . to_smaller_hash ( ) . as_u64 ( ) ;
1057+ let def_hash = tcx. def_path_hash ( def_id) . 0 . to_smaller_hash ( ) ;
10551058
10561059 let layout = tcx. mk_layout ( LayoutData {
10571060 variants : Variants :: Multiple {
0 commit comments