--- rustc-1.47.0-src.orig/src/librustc_errors/lib.rs 2020-10-07 09:53:22.000000000 +0200 +++ rustc-1.47.0-src/src/librustc_errors/lib.rs 2020-10-30 13:52:39.921952637 +0100 @@ -45,7 +45,7 @@ // `PResult` is used a lot. Make sure it doesn't unintentionally get bigger. // (See also the comment on `DiagnosticBuilderInner`.) -#[cfg(target_arch = "x86_64")] +#[cfg(all(target_arch = "x86_64", target_pointer_size = "64"))] rustc_data_structures::static_assert_size!(PResult<'_, bool>, 16); /// Indicates the confidence in the correctness of a suggestion. --- rustc-1.47.0-src.orig/src/librustc_ast/ast.rs 2020-10-07 09:53:22.000000000 +0200 +++ rustc-1.47.0-src/src/librustc_ast/ast.rs 2020-10-30 13:53:59.025035237 +0100 @@ -1056,7 +1056,7 @@ } // `Expr` is used a lot. Make sure it doesn't unintentionally get bigger. -#[cfg(target_arch = "x86_64")] +#[cfg(all(target_arch = "x86_64", target_pointer_size = "64"))] rustc_data_structures::static_assert_size!(Expr, 104); impl Expr { --- rustc-1.47.0-src.orig/src/librustc_ast/token.rs 2020-10-07 09:53:22.000000000 +0200 +++ rustc-1.47.0-src/src/librustc_ast/token.rs 2020-10-30 13:52:39.925285960 +0100 @@ -710,7 +710,7 @@ } // `Nonterminal` is used a lot. Make sure it doesn't unintentionally get bigger. -#[cfg(target_arch = "x86_64")] +#[cfg(all(target_arch = "x86_64", target_pointer_size = "64"))] rustc_data_structures::static_assert_size!(Nonterminal, 40); #[derive(Debug, Copy, Clone, PartialEq, Encodable, Decodable)] --- rustc-1.47.0-src.orig/src/librustc_ast/tokenstream.rs 2020-10-07 09:53:22.000000000 +0200 +++ rustc-1.47.0-src/src/librustc_ast/tokenstream.rs 2020-10-30 13:52:39.925285960 +0100 @@ -130,7 +130,7 @@ pub type TreeAndJoint = (TokenTree, IsJoint); // `TokenStream` is used a lot. Make sure it doesn't unintentionally get bigger. -#[cfg(target_arch = "x86_64")] +#[cfg(all(target_arch = "x86_64", target_pointer_size = "64"))] rustc_data_structures::static_assert_size!(TokenStream, 8); #[derive(Clone, Copy, Debug, PartialEq, Encodable, Decodable)] --- rustc-1.47.0-src.orig/src/librustc_middle/mir/mod.rs 2020-10-07 09:53:22.000000000 +0200 +++ rustc-1.47.0-src/src/librustc_middle/mir/mod.rs 2020-10-30 13:52:39.925285960 +0100 @@ -1353,7 +1353,7 @@ } // `Statement` is used a lot. Make sure it doesn't unintentionally get bigger. -#[cfg(target_arch = "x86_64")] +#[cfg(all(target_arch = "x86_64", target_pointer_size = "64"))] static_assert_size!(Statement<'_>, 32); impl Statement<'_> { @@ -1615,7 +1615,7 @@ pub type PlaceElem<'tcx> = ProjectionElem>; // At least on 64 bit systems, `PlaceElem` should not be larger than two pointers. -#[cfg(target_arch = "x86_64")] +#[cfg(all(target_arch = "x86_64", target_pointer_size = "64"))] static_assert_size!(PlaceElem<'_>, 16); /// Alias for projections as they appear in `UserTypeProjection`, where we --- rustc-1.47.0-src.orig/src/librustc_middle/mir/tcx.rs 2020-10-07 09:53:22.000000000 +0200 +++ rustc-1.47.0-src/src/librustc_middle/mir/tcx.rs 2020-10-30 13:52:39.925285960 +0100 @@ -17,7 +17,7 @@ } // At least on 64 bit systems, `PlaceTy` should not be larger than two or three pointers. -#[cfg(target_arch = "x86_64")] +#[cfg(all(target_arch = "x86_64", target_pointer_size = "64"))] static_assert_size!(PlaceTy<'_>, 16); impl<'tcx> PlaceTy<'tcx> { --- rustc-1.47.0-src.orig/src/librustc_middle/traits/mod.rs 2020-10-07 09:53:22.000000000 +0200 +++ rustc-1.47.0-src/src/librustc_middle/traits/mod.rs 2020-10-30 13:52:39.925285960 +0100 @@ -339,7 +339,7 @@ } // `ObligationCauseCode` is used a lot. Make sure it doesn't unintentionally get bigger. -#[cfg(target_arch = "x86_64")] +#[cfg(all(target_arch = "x86_64", target_pointer_size = "64"))] static_assert_size!(ObligationCauseCode<'_>, 32); #[derive(Clone, Debug, PartialEq, Eq, Hash, Lift)] --- rustc-1.47.0-src.orig/src/librustc_middle/ty/mod.rs 2020-10-07 09:53:22.000000000 +0200 +++ rustc-1.47.0-src/src/librustc_middle/ty/mod.rs 2020-10-30 13:52:39.925285960 +0100 @@ -604,7 +604,7 @@ } // `TyS` is used a lot. Make sure it doesn't unintentionally get bigger. -#[cfg(target_arch = "x86_64")] +#[cfg(all(target_arch = "x86_64", target_pointer_size = "64"))] static_assert_size!(TyS<'_>, 32); impl<'tcx> Ord for TyS<'tcx> { --- rustc-1.47.0-src.orig/src/librustc_middle/ty/sty.rs 2020-10-07 09:53:22.000000000 +0200 +++ rustc-1.47.0-src/src/librustc_middle/ty/sty.rs 2020-10-30 13:52:39.925285960 +0100 @@ -213,7 +213,7 @@ } // `TyKind` is used a lot. Make sure it doesn't unintentionally get bigger. -#[cfg(target_arch = "x86_64")] +#[cfg(all(target_arch = "x86_64", target_pointer_size = "64"))] static_assert_size!(TyKind<'_>, 24); /// A closure can be modeled as a struct that looks like: --- rustc-1.47.0-src.orig/src/librustc_infer/traits/mod.rs 2020-10-07 09:53:22.000000000 +0200 +++ rustc-1.47.0-src/src/librustc_infer/traits/mod.rs 2020-10-30 13:53:29.548462138 +0100 @@ -56,7 +56,7 @@ pub type TraitObligation<'tcx> = Obligation<'tcx, ty::PolyTraitPredicate<'tcx>>; // `PredicateObligation` is used a lot. Make sure it doesn't unintentionally get bigger. -#[cfg(target_arch = "x86_64")] +#[cfg(all(target_arch = "x86_64", target_pointer_size = "64"))] static_assert_size!(PredicateObligation<'_>, 40); pub type Obligations<'tcx, O> = Vec>; --- rustc-1.47.0-src.orig/src/librustc_trait_selection/traits/fulfill.rs 2020-10-07 09:53:22.000000000 +0200 +++ rustc-1.47.0-src/src/librustc_trait_selection/traits/fulfill.rs 2020-10-30 13:53:12.381849892 +0100 @@ -85,7 +85,7 @@ } // `PendingPredicateObligation` is used a lot. Make sure it doesn't unintentionally get bigger. -#[cfg(target_arch = "x86_64")] +#[cfg(all(target_arch = "x86_64", target_pointer_size = "64"))] static_assert_size!(PendingPredicateObligation<'_>, 64); impl<'a, 'tcx> FulfillmentContext<'tcx> { --- rustc-1.47.0-src.orig/src/librustc_trait_selection/lib.rs 2020-10-07 09:53:22.000000000 +0200 +++ rustc-1.47.0-src/src/librustc_trait_selection/lib.rs 2020-10-30 13:52:39.925285960 +0100 @@ -20,7 +20,7 @@ #[macro_use] extern crate rustc_macros; -#[cfg(target_arch = "x86_64")] +#[cfg(all(target_arch = "x86_64", target_pointer_size = "64"))] #[macro_use] extern crate rustc_data_structures; #[macro_use]