From 2daacf5af965090b885287f1d40e13ff5db724cf Mon Sep 17 00:00:00 2001 From: Erik Desjardins Date: Fri, 14 Jul 2023 17:48:13 -0400 Subject: [PATCH] i686-windows: make requested alignment > 4 special case apply transitively --- compiler/rustc_abi/src/layout.rs | 40 +++++++++---------- compiler/rustc_abi/src/lib.rs | 14 +++---- compiler/rustc_middle/src/ty/layout.rs | 2 +- compiler/rustc_target/src/abi/call/x86.rs | 8 ++-- compiler/rustc_ty_utils/src/layout.rs | 10 ++--- tests/codegen/align-byval.rs | 6 ++- tests/ui/layout/debug.stderr | 36 ++++++++--------- tests/ui/layout/hexagon-enum.stderr | 20 +++++----- ...-scalarpair-payload-might-be-uninit.stderr | 34 ++++++++-------- .../issue-96185-overaligned-enum.stderr | 12 +++--- tests/ui/layout/thumb-enum.stderr | 20 +++++----- .../layout/zero-sized-array-enum-niche.stderr | 26 ++++++------ 12 files changed, 113 insertions(+), 115 deletions(-) diff --git a/compiler/rustc_abi/src/layout.rs b/compiler/rustc_abi/src/layout.rs index 75c64aabfbb..aea88641f82 100644 --- a/compiler/rustc_abi/src/layout.rs +++ b/compiler/rustc_abi/src/layout.rs @@ -40,7 +40,7 @@ pub trait LayoutCalculator { largest_niche, align, size, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: align.abi, } } @@ -124,7 +124,7 @@ pub trait LayoutCalculator { largest_niche: None, align: dl.i8_align, size: Size::ZERO, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: dl.i8_align.abi, } } @@ -293,6 +293,7 @@ pub trait LayoutCalculator { } let mut align = dl.aggregate_align; + let mut max_repr_align = repr.align; let mut unadjusted_abi_align = align.abi; let mut variant_layouts = variants @@ -302,6 +303,7 @@ pub trait LayoutCalculator { st.variants = Variants::Single { index: j }; align = align.max(st.align); + max_repr_align = max_repr_align.max(st.max_repr_align); unadjusted_abi_align = unadjusted_abi_align.max(st.unadjusted_abi_align); Some(st) @@ -429,7 +431,7 @@ pub trait LayoutCalculator { largest_niche, size, align, - repr_align: repr.align, + max_repr_align, unadjusted_abi_align, }; @@ -465,6 +467,7 @@ pub trait LayoutCalculator { let (min_ity, signed) = discr_range_of_repr(min, max); //Integer::repr_discr(tcx, ty, &repr, min, max); let mut align = dl.aggregate_align; + let mut max_repr_align = repr.align; let mut unadjusted_abi_align = align.abi; let mut size = Size::ZERO; @@ -509,6 +512,7 @@ pub trait LayoutCalculator { } size = cmp::max(size, st.size); align = align.max(st.align); + max_repr_align = max_repr_align.max(st.max_repr_align); unadjusted_abi_align = unadjusted_abi_align.max(st.unadjusted_abi_align); Some(st) }) @@ -703,7 +707,7 @@ pub trait LayoutCalculator { abi, align, size, - repr_align: repr.align, + max_repr_align, unadjusted_abi_align, }; @@ -744,6 +748,7 @@ pub trait LayoutCalculator { let dl = self.current_data_layout(); let dl = dl.borrow(); let mut align = if repr.pack.is_some() { dl.i8_align } else { dl.aggregate_align }; + let mut max_repr_align = repr.align; // If all the non-ZST fields have the same ABI and union ABI optimizations aren't // disabled, we can use that common ABI for the union as a whole. @@ -761,6 +766,7 @@ pub trait LayoutCalculator { assert!(field.0.is_sized()); align = align.max(field.align()); + max_repr_align = max_repr_align.max(field.max_repr_align()); size = cmp::max(size, field.size()); if field.0.is_zst() { @@ -827,7 +833,7 @@ pub trait LayoutCalculator { largest_niche: None, align, size: size.align_to(align.abi), - repr_align: repr.align, + max_repr_align, unadjusted_abi_align, }) } @@ -849,6 +855,7 @@ fn univariant( ) -> Option { let pack = repr.pack; let mut align = if pack.is_some() { dl.i8_align } else { dl.aggregate_align }; + let mut max_repr_align = repr.align; let mut inverse_memory_index: IndexVec = fields.indices().collect(); let optimize = !repr.inhibit_struct_field_reordering_opt(); if optimize && fields.len() > 1 { @@ -1017,6 +1024,7 @@ fn univariant( }; offset = offset.align_to(field_align.abi); align = align.max(field_align); + max_repr_align = max_repr_align.max(field.max_repr_align()); debug!("univariant offset: {:?} field: {:#?}", offset, field); offsets[i] = offset; @@ -1133,28 +1141,16 @@ fn univariant( abi = Abi::Uninhabited; } - let (repr_align, unadjusted_abi_align) = if repr.transparent() { + let unadjusted_abi_align = if repr.transparent() { match layout_of_single_non_zst_field { - Some(l) => (l.repr_align(), l.unadjusted_abi_align()), + Some(l) => l.unadjusted_abi_align(), None => { // `repr(transparent)` with all ZST fields. - // - // Using `None` for `repr_align` here is technically incorrect, since one of - // the ZSTs could have `repr(align(1))`. It's an interesting question, if you have - // `#{repr(transparent)] struct Foo((), ZstWithReprAlign1)`, which of those ZSTs' - // ABIs is forwarded by `repr(transparent)`? The answer to that question determines - // whether we should use `None` or `Some(align 1)` here. Thanksfully, two things - // together mean this doesn't matter: - // - You're not allowed to have a `repr(transparent)` struct that contains - // `repr(align)` > 1 ZSTs. See error E0691. - // - MSVC never treats requested align 1 differently from natural align 1. - // (And the `repr_align` field is only used on i686-windows, see `LayoutS` docs.) - // So just use `None` for now. - (None, align.abi) + align.abi } } } else { - (repr.align, unadjusted_abi_align) + unadjusted_abi_align }; Some(LayoutS { @@ -1164,7 +1160,7 @@ fn univariant( largest_niche, align, size, - repr_align, + max_repr_align, unadjusted_abi_align, }) } diff --git a/compiler/rustc_abi/src/lib.rs b/compiler/rustc_abi/src/lib.rs index b2138dcefae..ef0c763ac20 100644 --- a/compiler/rustc_abi/src/lib.rs +++ b/compiler/rustc_abi/src/lib.rs @@ -1532,10 +1532,10 @@ pub struct LayoutS { pub align: AbiAndPrefAlign, pub size: Size, - /// The alignment explicitly requested with `repr(align)`. + /// The largest alignment explicitly requested with `repr(align)` on this type or any field. /// Only used on i686-windows, where the argument passing ABI is different when alignment is /// requested, even if the requested alignment is equal to the natural alignment. - pub repr_align: Option, + pub max_repr_align: Option, /// The alignment the type would have, ignoring any `repr(align)` but including `repr(packed)`. /// Only used on aarch64-linux, where the argument passing ABI ignores the requested alignment @@ -1555,7 +1555,7 @@ impl LayoutS { largest_niche, size, align, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: align.abi, } } @@ -1573,7 +1573,7 @@ impl fmt::Debug for LayoutS { fields, largest_niche, variants, - repr_align, + max_repr_align, unadjusted_abi_align, } = self; f.debug_struct("Layout") @@ -1583,7 +1583,7 @@ impl fmt::Debug for LayoutS { .field("fields", fields) .field("largest_niche", largest_niche) .field("variants", variants) - .field("repr_align", repr_align) + .field("max_repr_align", max_repr_align) .field("unadjusted_abi_align", unadjusted_abi_align) .finish() } @@ -1625,8 +1625,8 @@ impl<'a> Layout<'a> { self.0.0.size } - pub fn repr_align(self) -> Option { - self.0.0.repr_align + pub fn max_repr_align(self) -> Option { + self.0.0.max_repr_align } pub fn unadjusted_abi_align(self) -> Align { diff --git a/compiler/rustc_middle/src/ty/layout.rs b/compiler/rustc_middle/src/ty/layout.rs index 843ea64fc29..f8c56e5abb8 100644 --- a/compiler/rustc_middle/src/ty/layout.rs +++ b/compiler/rustc_middle/src/ty/layout.rs @@ -755,7 +755,7 @@ where largest_niche: None, align: tcx.data_layout.i8_align, size: Size::ZERO, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: tcx.data_layout.i8_align.abi, }) } diff --git a/compiler/rustc_target/src/abi/call/x86.rs b/compiler/rustc_target/src/abi/call/x86.rs index e4292151065..b738c3133d9 100644 --- a/compiler/rustc_target/src/abi/call/x86.rs +++ b/compiler/rustc_target/src/abi/call/x86.rs @@ -63,8 +63,8 @@ where if t.is_like_msvc && arg.layout.is_adt() - && let Some(repr_align) = arg.layout.repr_align - && repr_align > align_4 + && let Some(max_repr_align) = arg.layout.max_repr_align + && max_repr_align > align_4 { // MSVC has special rules for overaligned arguments: https://reviews.llvm.org/D72114. // Summarized here: @@ -72,8 +72,8 @@ where // - For backwards compatibility, arguments with natural alignment > 4 are still passed // on stack (via `byval`). For example, this includes `double`, `int64_t`, // and structs containing them, provided they lack an explicit alignment attribute. - assert!(arg.layout.align.abi >= repr_align, - "abi alignment {:?} less than requested alignment {repr_align:?}", + assert!(arg.layout.align.abi >= max_repr_align, + "abi alignment {:?} less than requested alignment {max_repr_align:?}", arg.layout.align.abi, ); arg.make_indirect(); diff --git a/compiler/rustc_ty_utils/src/layout.rs b/compiler/rustc_ty_utils/src/layout.rs index b8ab8baeedd..74b484bd85a 100644 --- a/compiler/rustc_ty_utils/src/layout.rs +++ b/compiler/rustc_ty_utils/src/layout.rs @@ -258,7 +258,7 @@ fn layout_of_uncached<'tcx>( largest_niche, align: element.align, size, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: element.align.abi, }) } @@ -271,7 +271,7 @@ fn layout_of_uncached<'tcx>( largest_niche: None, align: element.align, size: Size::ZERO, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: element.align.abi, }) } @@ -282,7 +282,7 @@ fn layout_of_uncached<'tcx>( largest_niche: None, align: dl.i8_align, size: Size::ZERO, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: dl.i8_align.abi, }), @@ -437,7 +437,7 @@ fn layout_of_uncached<'tcx>( largest_niche: e_ly.largest_niche, size, align, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: align.abi, }) } @@ -887,7 +887,7 @@ fn generator_layout<'tcx>( largest_niche: prefix.largest_niche, size, align, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: align.abi, }); debug!("generator layout ({:?}): {:#?}", ty, layout); diff --git a/tests/codegen/align-byval.rs b/tests/codegen/align-byval.rs index fc5f795bf67..e2446e02ef4 100644 --- a/tests/codegen/align-byval.rs +++ b/tests/codegen/align-byval.rs @@ -80,7 +80,7 @@ pub struct LowerFA8 { c: i64 } -// On i686-windows, this is passed on stack, because the wrapper struct does not have +// On i686-windows, this is passed by reference, because it contains a field with // requested/forced alignment. #[repr(C)] pub struct WrappedFA8 { @@ -301,7 +301,9 @@ extern "C" { // i686-linux: declare void @wrapped_fa8({{.*}}byval(%WrappedFA8) align 4{{.*}}) - // i686-windows: declare void @wrapped_fa8({{.*}}byval(%WrappedFA8) align 4{{.*}}) + // i686-windows: declare void @wrapped_fa8( + // i686-windows-NOT: byval + // i686-windows-SAME: align 8{{.*}}) fn wrapped_fa8(x: WrappedFA8); // m68k: declare void @transparent_fa8({{.*}}byval(%TransparentFA8) align 8{{.*}}) diff --git a/tests/ui/layout/debug.stderr b/tests/ui/layout/debug.stderr index 1bf89d0dcb3..eeffb3c5f64 100644 --- a/tests/ui/layout/debug.stderr +++ b/tests/ui/layout/debug.stderr @@ -53,7 +53,7 @@ error: layout_of(E) = Layout { variants: Single { index: 0, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), }, Layout { @@ -79,12 +79,12 @@ error: layout_of(E) = Layout { variants: Single { index: 1, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(4 bytes), }, ], }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(4 bytes), } --> $DIR/debug.rs:7:1 @@ -130,7 +130,7 @@ error: layout_of(S) = Layout { variants: Single { index: 0, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(4 bytes), } --> $DIR/debug.rs:10:1 @@ -154,7 +154,7 @@ error: layout_of(U) = Layout { variants: Single { index: 0, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(4 bytes), } --> $DIR/debug.rs:13:1 @@ -247,7 +247,7 @@ error: layout_of(std::result::Result) = Layout { variants: Single { index: 0, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(4 bytes), }, Layout { @@ -284,12 +284,12 @@ error: layout_of(std::result::Result) = Layout { variants: Single { index: 1, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(4 bytes), }, ], }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(4 bytes), } --> $DIR/debug.rs:16:1 @@ -317,7 +317,7 @@ error: layout_of(i32) = Layout { variants: Single { index: 0, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(4 bytes), } --> $DIR/debug.rs:19:1 @@ -341,7 +341,7 @@ error: layout_of(V) = Layout { variants: Single { index: 0, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(2 bytes), } --> $DIR/debug.rs:22:1 @@ -365,7 +365,7 @@ error: layout_of(W) = Layout { variants: Single { index: 0, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(2 bytes), } --> $DIR/debug.rs:28:1 @@ -389,7 +389,7 @@ error: layout_of(Y) = Layout { variants: Single { index: 0, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(2 bytes), } --> $DIR/debug.rs:34:1 @@ -413,7 +413,7 @@ error: layout_of(P1) = Layout { variants: Single { index: 0, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), } --> $DIR/debug.rs:41:1 @@ -437,7 +437,7 @@ error: layout_of(P2) = Layout { variants: Single { index: 0, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), } --> $DIR/debug.rs:45:1 @@ -461,7 +461,7 @@ error: layout_of(P3) = Layout { variants: Single { index: 0, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), } --> $DIR/debug.rs:53:1 @@ -485,7 +485,7 @@ error: layout_of(P4) = Layout { variants: Single { index: 0, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), } --> $DIR/debug.rs:57:1 @@ -514,7 +514,7 @@ error: layout_of(P5) = Layout { variants: Single { index: 0, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), } --> $DIR/debug.rs:61:1 @@ -543,7 +543,7 @@ error: layout_of(std::mem::MaybeUninit) = Layout { variants: Single { index: 0, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), } --> $DIR/debug.rs:64:1 diff --git a/tests/ui/layout/hexagon-enum.stderr b/tests/ui/layout/hexagon-enum.stderr index acc97672d3c..a2ad4a1ab58 100644 --- a/tests/ui/layout/hexagon-enum.stderr +++ b/tests/ui/layout/hexagon-enum.stderr @@ -59,12 +59,12 @@ error: layout_of(A) = Layout { variants: Single { index: 0, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), }, ], }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), } --> $DIR/hexagon-enum.rs:16:1 @@ -133,12 +133,12 @@ error: layout_of(B) = Layout { variants: Single { index: 0, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), }, ], }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), } --> $DIR/hexagon-enum.rs:20:1 @@ -207,12 +207,12 @@ error: layout_of(C) = Layout { variants: Single { index: 0, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(2 bytes), }, ], }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(2 bytes), } --> $DIR/hexagon-enum.rs:24:1 @@ -281,12 +281,12 @@ error: layout_of(P) = Layout { variants: Single { index: 0, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(4 bytes), }, ], }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(4 bytes), } --> $DIR/hexagon-enum.rs:28:1 @@ -355,12 +355,12 @@ error: layout_of(T) = Layout { variants: Single { index: 0, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(4 bytes), }, ], }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(4 bytes), } --> $DIR/hexagon-enum.rs:34:1 diff --git a/tests/ui/layout/issue-96158-scalarpair-payload-might-be-uninit.stderr b/tests/ui/layout/issue-96158-scalarpair-payload-might-be-uninit.stderr index 6e013af199d..d3ba1a295b1 100644 --- a/tests/ui/layout/issue-96158-scalarpair-payload-might-be-uninit.stderr +++ b/tests/ui/layout/issue-96158-scalarpair-payload-might-be-uninit.stderr @@ -81,7 +81,7 @@ error: layout_of(MissingPayloadField) = Layout { variants: Single { index: 0, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), }, Layout { @@ -101,12 +101,12 @@ error: layout_of(MissingPayloadField) = Layout { variants: Single { index: 1, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), }, ], }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), } --> $DIR/issue-96158-scalarpair-payload-might-be-uninit.rs:16:1 @@ -199,7 +199,7 @@ error: layout_of(CommonPayloadField) = Layout { variants: Single { index: 0, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), }, Layout { @@ -236,12 +236,12 @@ error: layout_of(CommonPayloadField) = Layout { variants: Single { index: 1, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), }, ], }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), } --> $DIR/issue-96158-scalarpair-payload-might-be-uninit.rs:25:1 @@ -332,7 +332,7 @@ error: layout_of(CommonPayloadFieldIsMaybeUninit) = Layout { variants: Single { index: 0, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), }, Layout { @@ -368,12 +368,12 @@ error: layout_of(CommonPayloadFieldIsMaybeUninit) = Layout { variants: Single { index: 1, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), }, ], }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), } --> $DIR/issue-96158-scalarpair-payload-might-be-uninit.rs:33:1 @@ -480,7 +480,7 @@ error: layout_of(NicheFirst) = Layout { variants: Single { index: 0, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), }, Layout { @@ -500,7 +500,7 @@ error: layout_of(NicheFirst) = Layout { variants: Single { index: 1, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), }, Layout { @@ -520,12 +520,12 @@ error: layout_of(NicheFirst) = Layout { variants: Single { index: 2, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), }, ], }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), } --> $DIR/issue-96158-scalarpair-payload-might-be-uninit.rs:41:1 @@ -632,7 +632,7 @@ error: layout_of(NicheSecond) = Layout { variants: Single { index: 0, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), }, Layout { @@ -652,7 +652,7 @@ error: layout_of(NicheSecond) = Layout { variants: Single { index: 1, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), }, Layout { @@ -672,12 +672,12 @@ error: layout_of(NicheSecond) = Layout { variants: Single { index: 2, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), }, ], }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), } --> $DIR/issue-96158-scalarpair-payload-might-be-uninit.rs:50:1 diff --git a/tests/ui/layout/issue-96185-overaligned-enum.stderr b/tests/ui/layout/issue-96185-overaligned-enum.stderr index ef6cc79eedb..c539eb453d9 100644 --- a/tests/ui/layout/issue-96185-overaligned-enum.stderr +++ b/tests/ui/layout/issue-96185-overaligned-enum.stderr @@ -53,7 +53,7 @@ error: layout_of(Aligned1) = Layout { variants: Single { index: 0, }, - repr_align: Some( + max_repr_align: Some( Align(8 bytes), ), unadjusted_abi_align: Align(1 bytes), @@ -75,14 +75,14 @@ error: layout_of(Aligned1) = Layout { variants: Single { index: 1, }, - repr_align: Some( + max_repr_align: Some( Align(8 bytes), ), unadjusted_abi_align: Align(1 bytes), }, ], }, - repr_align: Some( + max_repr_align: Some( Align(8 bytes), ), unadjusted_abi_align: Align(1 bytes), @@ -153,7 +153,7 @@ error: layout_of(Aligned2) = Layout { variants: Single { index: 0, }, - repr_align: Some( + max_repr_align: Some( Align(1 bytes), ), unadjusted_abi_align: Align(1 bytes), @@ -175,14 +175,14 @@ error: layout_of(Aligned2) = Layout { variants: Single { index: 1, }, - repr_align: Some( + max_repr_align: Some( Align(1 bytes), ), unadjusted_abi_align: Align(1 bytes), }, ], }, - repr_align: Some( + max_repr_align: Some( Align(1 bytes), ), unadjusted_abi_align: Align(1 bytes), diff --git a/tests/ui/layout/thumb-enum.stderr b/tests/ui/layout/thumb-enum.stderr index c1837b0e47e..6f6ab498206 100644 --- a/tests/ui/layout/thumb-enum.stderr +++ b/tests/ui/layout/thumb-enum.stderr @@ -59,12 +59,12 @@ error: layout_of(A) = Layout { variants: Single { index: 0, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), }, ], }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), } --> $DIR/thumb-enum.rs:16:1 @@ -133,12 +133,12 @@ error: layout_of(B) = Layout { variants: Single { index: 0, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), }, ], }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), } --> $DIR/thumb-enum.rs:20:1 @@ -207,12 +207,12 @@ error: layout_of(C) = Layout { variants: Single { index: 0, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(2 bytes), }, ], }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(2 bytes), } --> $DIR/thumb-enum.rs:24:1 @@ -281,12 +281,12 @@ error: layout_of(P) = Layout { variants: Single { index: 0, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(4 bytes), }, ], }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(4 bytes), } --> $DIR/thumb-enum.rs:28:1 @@ -355,12 +355,12 @@ error: layout_of(T) = Layout { variants: Single { index: 0, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(4 bytes), }, ], }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(4 bytes), } --> $DIR/thumb-enum.rs:34:1 diff --git a/tests/ui/layout/zero-sized-array-enum-niche.stderr b/tests/ui/layout/zero-sized-array-enum-niche.stderr index 02bf9d496bc..df9f1cc8d10 100644 --- a/tests/ui/layout/zero-sized-array-enum-niche.stderr +++ b/tests/ui/layout/zero-sized-array-enum-niche.stderr @@ -57,7 +57,7 @@ error: layout_of(std::result::Result<[u32; 0], bool>) = Layout { variants: Single { index: 0, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(4 bytes), }, Layout { @@ -90,12 +90,12 @@ error: layout_of(std::result::Result<[u32; 0], bool>) = Layout { variants: Single { index: 1, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), }, ], }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(4 bytes), } --> $DIR/zero-sized-array-enum-niche.rs:13:1 @@ -162,7 +162,7 @@ error: layout_of(MultipleAlignments) = Layout { variants: Single { index: 0, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(2 bytes), }, Layout { @@ -186,7 +186,7 @@ error: layout_of(MultipleAlignments) = Layout { variants: Single { index: 1, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(4 bytes), }, Layout { @@ -219,12 +219,12 @@ error: layout_of(MultipleAlignments) = Layout { variants: Single { index: 2, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), }, ], }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(4 bytes), } --> $DIR/zero-sized-array-enum-niche.rs:21:1 @@ -291,7 +291,7 @@ error: layout_of(std::result::Result<[u32; 0], Packed>) = variants: Single { index: 0, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(4 bytes), }, Layout { @@ -324,12 +324,12 @@ error: layout_of(std::result::Result<[u32; 0], Packed>) = variants: Single { index: 1, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), }, ], }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(4 bytes), } --> $DIR/zero-sized-array-enum-niche.rs:37:1 @@ -400,7 +400,7 @@ error: layout_of(std::result::Result<[u32; 0], Packed>) = Layout { variants: Single { index: 0, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(4 bytes), }, Layout { @@ -433,12 +433,12 @@ error: layout_of(std::result::Result<[u32; 0], Packed>) = Layout { variants: Single { index: 1, }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(1 bytes), }, ], }, - repr_align: None, + max_repr_align: None, unadjusted_abi_align: Align(4 bytes), } --> $DIR/zero-sized-array-enum-niche.rs:44:1