Skip to content

repr(transparent): never consider arrays trivial for the ABI#156114

Draft
RalfJung wants to merge 2 commits intorust-lang:mainfrom
RalfJung:array-nontrivial
Draft

repr(transparent): never consider arrays trivial for the ABI#156114
RalfJung wants to merge 2 commits intorust-lang:mainfrom
RalfJung:array-nontrivial

Conversation

@RalfJung
Copy link
Copy Markdown
Member

@RalfJung RalfJung commented May 3, 2026

This is a simplified version of #155984 for cratering purposes. It's not meant to be landed as-is (at the very least, tons of tests would have to be adjusted to not involve arrays any more).

@rustbot rustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels May 3, 2026
@RalfJung RalfJung changed the title Array nontrivial never consider arrays trivial for the ABI May 3, 2026
@RalfJung RalfJung changed the title never consider arrays trivial for the ABI repr(transparent): never consider arrays trivial for the ABI May 3, 2026
@RalfJung
Copy link
Copy Markdown
Member Author

RalfJung commented May 3, 2026

@bors try

@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request May 3, 2026
repr(transparent): never consider arrays trivial for the ABI
@rust-log-analyzer
Copy link
Copy Markdown
Collaborator

The job aarch64-gnu-llvm-21-1 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
Executing "/scripts/stage_2_test_set1.sh"
+ /scripts/stage_2_test_set1.sh
PR_CI_JOB set; skipping tidy
+ '[' 1 == 1 ']'
+ echo 'PR_CI_JOB set; skipping tidy'
+ SKIP_TIDY='--skip tidy'
+ ../x.py --stage 2 test --skip tidy --skip compiler --skip src
##[group]Building bootstrap
    Finished `dev` profile [unoptimized] target(s) in 0.04s
##[endgroup]
downloading https://static.rust-lang.org/dist/2026-04-14/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.xz
---
---- [ui] tests/ui/abi/compatibility.rs#aarch64 stdout ----

error in revision `aarch64`: test compilation failed although it shouldn't!
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/abi/compatibility.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--cfg" "aarch64" "--check-cfg" "cfg(test,FALSE,host,i686,x86_64,x86_64_win,arm,thumb,aarch64,s390x,mips,mips64,sparc,sparc64,powerpc,powerpc64,aix,riscv,loongarch32,loongarch64,wasm,wasip1,bpf,m68k,csky,nvptx64)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.aarch64" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Cpanic=abort" "-Cforce-unwind-tables=yes" "--target" "aarch64-unknown-linux-gnu" "--extern" "minicore=/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.aarch64/libminicore.rlib"
stdout: none
--- stderr -------------------------------
error[E0690]: transparent struct needs at most one non-trivial field, but has 2
##[error]  --> /checkout/tests/ui/abi/compatibility.rs:223:1
   |
LL | struct TransparentWrapper3<T>(T, [u8; 0], PhantomData<u64>);
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -  ------- this field contains an array, which might be relevant for the ABI on some targets
   | |                             |
   | |                             this field is generic and hence may have non-zero size
   | needs at most one non-trivial field, but has 2

error: aborting due to 1 previous error

For more information about this error, try `rustc --explain E0690`.
------------------------------------------

---- [ui] tests/ui/abi/compatibility.rs#aarch64 stdout end ----
---- [ui] tests/ui/abi/compatibility.rs#aix stdout ----

error in revision `aix`: test compilation failed although it shouldn't!
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/abi/compatibility.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--cfg" "aix" "--check-cfg" "cfg(test,FALSE,host,i686,x86_64,x86_64_win,arm,thumb,aarch64,s390x,mips,mips64,sparc,sparc64,powerpc,powerpc64,aix,riscv,loongarch32,loongarch64,wasm,wasip1,bpf,m68k,csky,nvptx64)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.aix" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Cpanic=abort" "-Cforce-unwind-tables=yes" "--target" "powerpc64-ibm-aix" "--extern" "minicore=/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.aix/libminicore.rlib"
stdout: none
--- stderr -------------------------------
error[E0690]: transparent struct needs at most one non-trivial field, but has 2
##[error]  --> /checkout/tests/ui/abi/compatibility.rs:223:1
   |
LL | struct TransparentWrapper3<T>(T, [u8; 0], PhantomData<u64>);
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -  ------- this field contains an array, which might be relevant for the ABI on some targets
   | |                             |
   | |                             this field is generic and hence may have non-zero size
   | needs at most one non-trivial field, but has 2

error: aborting due to 1 previous error
---
---- [ui] tests/ui/abi/compatibility.rs#arm stdout ----

error in revision `arm`: test compilation failed although it shouldn't!
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/abi/compatibility.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--cfg" "arm" "--check-cfg" "cfg(test,FALSE,host,i686,x86_64,x86_64_win,arm,thumb,aarch64,s390x,mips,mips64,sparc,sparc64,powerpc,powerpc64,aix,riscv,loongarch32,loongarch64,wasm,wasip1,bpf,m68k,csky,nvptx64)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.arm" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Cpanic=abort" "-Cforce-unwind-tables=yes" "--target" "arm-unknown-linux-gnueabi" "--extern" "minicore=/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.arm/libminicore.rlib"
stdout: none
--- stderr -------------------------------
error[E0690]: transparent struct needs at most one non-trivial field, but has 2
##[error]  --> /checkout/tests/ui/abi/compatibility.rs:223:1
   |
LL | struct TransparentWrapper3<T>(T, [u8; 0], PhantomData<u64>);
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -  ------- this field contains an array, which might be relevant for the ABI on some targets
   | |                             |
   | |                             this field is generic and hence may have non-zero size
   | needs at most one non-trivial field, but has 2

error: aborting due to 1 previous error

For more information about this error, try `rustc --explain E0690`.
------------------------------------------

---- [ui] tests/ui/abi/compatibility.rs#arm stdout end ----
---- [ui] tests/ui/abi/compatibility.rs#bpf stdout ----

error in revision `bpf`: test compilation failed although it shouldn't!
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/abi/compatibility.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--cfg" "bpf" "--check-cfg" "cfg(test,FALSE,host,i686,x86_64,x86_64_win,arm,thumb,aarch64,s390x,mips,mips64,sparc,sparc64,powerpc,powerpc64,aix,riscv,loongarch32,loongarch64,wasm,wasip1,bpf,m68k,csky,nvptx64)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.bpf" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Cpanic=abort" "-Cforce-unwind-tables=yes" "--target" "bpfeb-unknown-none" "--extern" "minicore=/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.bpf/libminicore.rlib"
stdout: none
--- stderr -------------------------------
error[E0690]: transparent struct needs at most one non-trivial field, but has 2
##[error]  --> /checkout/tests/ui/abi/compatibility.rs:223:1
   |
LL | struct TransparentWrapper3<T>(T, [u8; 0], PhantomData<u64>);
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -  ------- this field contains an array, which might be relevant for the ABI on some targets
   | |                             |
   | |                             this field is generic and hence may have non-zero size
   | needs at most one non-trivial field, but has 2

error: aborting due to 1 previous error
---
---- [ui] tests/ui/abi/compatibility.rs#i686 stdout ----

error in revision `i686`: test compilation failed although it shouldn't!
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/abi/compatibility.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--cfg" "i686" "--check-cfg" "cfg(test,FALSE,host,i686,x86_64,x86_64_win,arm,thumb,aarch64,s390x,mips,mips64,sparc,sparc64,powerpc,powerpc64,aix,riscv,loongarch32,loongarch64,wasm,wasip1,bpf,m68k,csky,nvptx64)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.i686" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Cpanic=abort" "-Cforce-unwind-tables=yes" "--target" "i686-unknown-linux-gnu" "--extern" "minicore=/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.i686/libminicore.rlib"
stdout: none
--- stderr -------------------------------
error[E0690]: transparent struct needs at most one non-trivial field, but has 2
##[error]  --> /checkout/tests/ui/abi/compatibility.rs:223:1
   |
LL | struct TransparentWrapper3<T>(T, [u8; 0], PhantomData<u64>);
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -  ------- this field contains an array, which might be relevant for the ABI on some targets
   | |                             |
   | |                             this field is generic and hence may have non-zero size
   | needs at most one non-trivial field, but has 2

error: aborting due to 1 previous error
---
---- [ui] tests/ui/abi/compatibility.rs#host stdout ----

error in revision `host`: test compilation failed although it shouldn't!
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/abi/compatibility.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--cfg" "host" "--check-cfg" "cfg(test,FALSE,host,i686,x86_64,x86_64_win,arm,thumb,aarch64,s390x,mips,mips64,sparc,sparc64,powerpc,powerpc64,aix,riscv,loongarch32,loongarch64,wasm,wasip1,bpf,m68k,csky,nvptx64)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.host" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Cpanic=abort" "-Cforce-unwind-tables=yes" "--extern" "minicore=/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.host/libminicore.rlib"
stdout: none
--- stderr -------------------------------
error[E0690]: transparent struct needs at most one non-trivial field, but has 2
##[error]  --> /checkout/tests/ui/abi/compatibility.rs:223:1
   |
LL | struct TransparentWrapper3<T>(T, [u8; 0], PhantomData<u64>);
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -  ------- this field contains an array, which might be relevant for the ABI on some targets
   | |                             |
   | |                             this field is generic and hence may have non-zero size
   | needs at most one non-trivial field, but has 2

error: aborting due to 1 previous error
---
---- [ui] tests/ui/abi/compatibility.rs#loongarch32 stdout ----

error in revision `loongarch32`: test compilation failed although it shouldn't!
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/abi/compatibility.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--cfg" "loongarch32" "--check-cfg" "cfg(test,FALSE,host,i686,x86_64,x86_64_win,arm,thumb,aarch64,s390x,mips,mips64,sparc,sparc64,powerpc,powerpc64,aix,riscv,loongarch32,loongarch64,wasm,wasip1,bpf,m68k,csky,nvptx64)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.loongarch32" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Cpanic=abort" "-Cforce-unwind-tables=yes" "--target" "loongarch32-unknown-none" "--extern" "minicore=/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.loongarch32/libminicore.rlib"
stdout: none
--- stderr -------------------------------
error[E0690]: transparent struct needs at most one non-trivial field, but has 2
##[error]  --> /checkout/tests/ui/abi/compatibility.rs:223:1
   |
LL | struct TransparentWrapper3<T>(T, [u8; 0], PhantomData<u64>);
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -  ------- this field contains an array, which might be relevant for the ABI on some targets
   | |                             |
   | |                             this field is generic and hence may have non-zero size
   | needs at most one non-trivial field, but has 2

error: aborting due to 1 previous error
---
---- [ui] tests/ui/abi/compatibility.rs#loongarch64 stdout ----

error in revision `loongarch64`: test compilation failed although it shouldn't!
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/abi/compatibility.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--cfg" "loongarch64" "--check-cfg" "cfg(test,FALSE,host,i686,x86_64,x86_64_win,arm,thumb,aarch64,s390x,mips,mips64,sparc,sparc64,powerpc,powerpc64,aix,riscv,loongarch32,loongarch64,wasm,wasip1,bpf,m68k,csky,nvptx64)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.loongarch64" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Cpanic=abort" "-Cforce-unwind-tables=yes" "--target" "loongarch64-unknown-linux-gnu" "--extern" "minicore=/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.loongarch64/libminicore.rlib"
stdout: none
--- stderr -------------------------------
error[E0690]: transparent struct needs at most one non-trivial field, but has 2
##[error]  --> /checkout/tests/ui/abi/compatibility.rs:223:1
   |
LL | struct TransparentWrapper3<T>(T, [u8; 0], PhantomData<u64>);
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -  ------- this field contains an array, which might be relevant for the ABI on some targets
   | |                             |
   | |                             this field is generic and hence may have non-zero size
   | needs at most one non-trivial field, but has 2

error: aborting due to 1 previous error

For more information about this error, try `rustc --explain E0690`.
------------------------------------------

---- [ui] tests/ui/abi/compatibility.rs#loongarch64 stdout end ----
---- [ui] tests/ui/abi/compatibility.rs#m68k stdout ----

error in revision `m68k`: test compilation failed although it shouldn't!
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/abi/compatibility.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--cfg" "m68k" "--check-cfg" "cfg(test,FALSE,host,i686,x86_64,x86_64_win,arm,thumb,aarch64,s390x,mips,mips64,sparc,sparc64,powerpc,powerpc64,aix,riscv,loongarch32,loongarch64,wasm,wasip1,bpf,m68k,csky,nvptx64)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.m68k" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Cpanic=abort" "-Cforce-unwind-tables=yes" "--target" "m68k-unknown-linux-gnu" "--extern" "minicore=/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.m68k/libminicore.rlib"
stdout: none
--- stderr -------------------------------
error[E0690]: transparent struct needs at most one non-trivial field, but has 2
##[error]  --> /checkout/tests/ui/abi/compatibility.rs:223:1
   |
LL | struct TransparentWrapper3<T>(T, [u8; 0], PhantomData<u64>);
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -  ------- this field contains an array, which might be relevant for the ABI on some targets
   | |                             |
   | |                             this field is generic and hence may have non-zero size
   | needs at most one non-trivial field, but has 2

error: aborting due to 1 previous error
---
---- [ui] tests/ui/abi/compatibility.rs#mips stdout ----

error in revision `mips`: test compilation failed although it shouldn't!
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/abi/compatibility.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--cfg" "mips" "--check-cfg" "cfg(test,FALSE,host,i686,x86_64,x86_64_win,arm,thumb,aarch64,s390x,mips,mips64,sparc,sparc64,powerpc,powerpc64,aix,riscv,loongarch32,loongarch64,wasm,wasip1,bpf,m68k,csky,nvptx64)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.mips" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Cpanic=abort" "-Cforce-unwind-tables=yes" "--target" "mips-unknown-linux-gnu" "--extern" "minicore=/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.mips/libminicore.rlib"
stdout: none
--- stderr -------------------------------
error[E0690]: transparent struct needs at most one non-trivial field, but has 2
##[error]  --> /checkout/tests/ui/abi/compatibility.rs:223:1
   |
LL | struct TransparentWrapper3<T>(T, [u8; 0], PhantomData<u64>);
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -  ------- this field contains an array, which might be relevant for the ABI on some targets
   | |                             |
   | |                             this field is generic and hence may have non-zero size
   | needs at most one non-trivial field, but has 2

error: aborting due to 1 previous error
---
---- [ui] tests/ui/abi/compatibility.rs#mips64 stdout ----

error in revision `mips64`: test compilation failed although it shouldn't!
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/abi/compatibility.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--cfg" "mips64" "--check-cfg" "cfg(test,FALSE,host,i686,x86_64,x86_64_win,arm,thumb,aarch64,s390x,mips,mips64,sparc,sparc64,powerpc,powerpc64,aix,riscv,loongarch32,loongarch64,wasm,wasip1,bpf,m68k,csky,nvptx64)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.mips64" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Cpanic=abort" "-Cforce-unwind-tables=yes" "--target" "mips64-unknown-linux-gnuabi64" "--extern" "minicore=/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.mips64/libminicore.rlib"
stdout: none
--- stderr -------------------------------
error[E0690]: transparent struct needs at most one non-trivial field, but has 2
##[error]  --> /checkout/tests/ui/abi/compatibility.rs:223:1
   |
LL | struct TransparentWrapper3<T>(T, [u8; 0], PhantomData<u64>);
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -  ------- this field contains an array, which might be relevant for the ABI on some targets
   | |                             |
   | |                             this field is generic and hence may have non-zero size
   | needs at most one non-trivial field, but has 2

error: aborting due to 1 previous error

For more information about this error, try `rustc --explain E0690`.
------------------------------------------

---- [ui] tests/ui/abi/compatibility.rs#mips64 stdout end ----
---- [ui] tests/ui/abi/compatibility.rs#nvptx64 stdout ----

error in revision `nvptx64`: test compilation failed although it shouldn't!
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/abi/compatibility.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--cfg" "nvptx64" "--check-cfg" "cfg(test,FALSE,host,i686,x86_64,x86_64_win,arm,thumb,aarch64,s390x,mips,mips64,sparc,sparc64,powerpc,powerpc64,aix,riscv,loongarch32,loongarch64,wasm,wasip1,bpf,m68k,csky,nvptx64)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.nvptx64" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Cpanic=abort" "-Cforce-unwind-tables=yes" "--target" "nvptx64-nvidia-cuda" "--extern" "minicore=/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.nvptx64/libminicore.rlib"
stdout: none
--- stderr -------------------------------
error[E0690]: transparent struct needs at most one non-trivial field, but has 2
##[error]  --> /checkout/tests/ui/abi/compatibility.rs:223:1
   |
LL | struct TransparentWrapper3<T>(T, [u8; 0], PhantomData<u64>);
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -  ------- this field contains an array, which might be relevant for the ABI on some targets
   | |                             |
   | |                             this field is generic and hence may have non-zero size
   | needs at most one non-trivial field, but has 2

error: aborting due to 1 previous error

For more information about this error, try `rustc --explain E0690`.
------------------------------------------

---- [ui] tests/ui/abi/compatibility.rs#nvptx64 stdout end ----
---- [ui] tests/ui/abi/compatibility.rs#powerpc stdout ----

error in revision `powerpc`: test compilation failed although it shouldn't!
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/abi/compatibility.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--cfg" "powerpc" "--check-cfg" "cfg(test,FALSE,host,i686,x86_64,x86_64_win,arm,thumb,aarch64,s390x,mips,mips64,sparc,sparc64,powerpc,powerpc64,aix,riscv,loongarch32,loongarch64,wasm,wasip1,bpf,m68k,csky,nvptx64)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.powerpc" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Cpanic=abort" "-Cforce-unwind-tables=yes" "--target" "powerpc-unknown-linux-gnu" "--extern" "minicore=/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.powerpc/libminicore.rlib"
stdout: none
--- stderr -------------------------------
error[E0690]: transparent struct needs at most one non-trivial field, but has 2
##[error]  --> /checkout/tests/ui/abi/compatibility.rs:223:1
   |
LL | struct TransparentWrapper3<T>(T, [u8; 0], PhantomData<u64>);
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -  ------- this field contains an array, which might be relevant for the ABI on some targets
   | |                             |
   | |                             this field is generic and hence may have non-zero size
   | needs at most one non-trivial field, but has 2

error: aborting due to 1 previous error

For more information about this error, try `rustc --explain E0690`.
------------------------------------------

---- [ui] tests/ui/abi/compatibility.rs#powerpc stdout end ----
---- [ui] tests/ui/abi/compatibility.rs#powerpc64 stdout ----

error in revision `powerpc64`: test compilation failed although it shouldn't!
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/abi/compatibility.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--cfg" "powerpc64" "--check-cfg" "cfg(test,FALSE,host,i686,x86_64,x86_64_win,arm,thumb,aarch64,s390x,mips,mips64,sparc,sparc64,powerpc,powerpc64,aix,riscv,loongarch32,loongarch64,wasm,wasip1,bpf,m68k,csky,nvptx64)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.powerpc64" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Cpanic=abort" "-Cforce-unwind-tables=yes" "--target" "powerpc64-unknown-linux-gnu" "--extern" "minicore=/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.powerpc64/libminicore.rlib"
stdout: none
--- stderr -------------------------------
error[E0690]: transparent struct needs at most one non-trivial field, but has 2
##[error]  --> /checkout/tests/ui/abi/compatibility.rs:223:1
   |
LL | struct TransparentWrapper3<T>(T, [u8; 0], PhantomData<u64>);
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -  ------- this field contains an array, which might be relevant for the ABI on some targets
   | |                             |
   | |                             this field is generic and hence may have non-zero size
   | needs at most one non-trivial field, but has 2

error: aborting due to 1 previous error
---
---- [ui] tests/ui/abi/compatibility.rs#riscv stdout ----

error in revision `riscv`: test compilation failed although it shouldn't!
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/abi/compatibility.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--cfg" "riscv" "--check-cfg" "cfg(test,FALSE,host,i686,x86_64,x86_64_win,arm,thumb,aarch64,s390x,mips,mips64,sparc,sparc64,powerpc,powerpc64,aix,riscv,loongarch32,loongarch64,wasm,wasip1,bpf,m68k,csky,nvptx64)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.riscv" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Cpanic=abort" "-Cforce-unwind-tables=yes" "--target" "riscv64gc-unknown-linux-gnu" "--extern" "minicore=/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.riscv/libminicore.rlib"
stdout: none
--- stderr -------------------------------
error[E0690]: transparent struct needs at most one non-trivial field, but has 2
##[error]  --> /checkout/tests/ui/abi/compatibility.rs:223:1
   |
LL | struct TransparentWrapper3<T>(T, [u8; 0], PhantomData<u64>);
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -  ------- this field contains an array, which might be relevant for the ABI on some targets
   | |                             |
   | |                             this field is generic and hence may have non-zero size
   | needs at most one non-trivial field, but has 2

error: aborting due to 1 previous error

For more information about this error, try `rustc --explain E0690`.
------------------------------------------

---- [ui] tests/ui/abi/compatibility.rs#riscv stdout end ----
---- [ui] tests/ui/abi/compatibility.rs#s390x stdout ----

error in revision `s390x`: test compilation failed although it shouldn't!
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/abi/compatibility.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--cfg" "s390x" "--check-cfg" "cfg(test,FALSE,host,i686,x86_64,x86_64_win,arm,thumb,aarch64,s390x,mips,mips64,sparc,sparc64,powerpc,powerpc64,aix,riscv,loongarch32,loongarch64,wasm,wasip1,bpf,m68k,csky,nvptx64)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.s390x" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Cpanic=abort" "-Cforce-unwind-tables=yes" "--target" "s390x-unknown-linux-gnu" "--extern" "minicore=/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.s390x/libminicore.rlib"
stdout: none
--- stderr -------------------------------
error[E0690]: transparent struct needs at most one non-trivial field, but has 2
##[error]  --> /checkout/tests/ui/abi/compatibility.rs:223:1
   |
LL | struct TransparentWrapper3<T>(T, [u8; 0], PhantomData<u64>);
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -  ------- this field contains an array, which might be relevant for the ABI on some targets
   | |                             |
   | |                             this field is generic and hence may have non-zero size
   | needs at most one non-trivial field, but has 2

error: aborting due to 1 previous error
---
---- [ui] tests/ui/abi/compatibility.rs#sparc64 stdout ----

error in revision `sparc64`: test compilation failed although it shouldn't!
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/abi/compatibility.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--cfg" "sparc64" "--check-cfg" "cfg(test,FALSE,host,i686,x86_64,x86_64_win,arm,thumb,aarch64,s390x,mips,mips64,sparc,sparc64,powerpc,powerpc64,aix,riscv,loongarch32,loongarch64,wasm,wasip1,bpf,m68k,csky,nvptx64)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.sparc64" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Cpanic=abort" "-Cforce-unwind-tables=yes" "--target" "sparc64-unknown-linux-gnu" "--extern" "minicore=/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.sparc64/libminicore.rlib"
stdout: none
--- stderr -------------------------------
error[E0690]: transparent struct needs at most one non-trivial field, but has 2
##[error]  --> /checkout/tests/ui/abi/compatibility.rs:223:1
   |
LL | struct TransparentWrapper3<T>(T, [u8; 0], PhantomData<u64>);
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -  ------- this field contains an array, which might be relevant for the ABI on some targets
   | |                             |
   | |                             this field is generic and hence may have non-zero size
   | needs at most one non-trivial field, but has 2

error: aborting due to 1 previous error
---
---- [ui] tests/ui/abi/compatibility.rs#sparc stdout ----

error in revision `sparc`: test compilation failed although it shouldn't!
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/abi/compatibility.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--cfg" "sparc" "--check-cfg" "cfg(test,FALSE,host,i686,x86_64,x86_64_win,arm,thumb,aarch64,s390x,mips,mips64,sparc,sparc64,powerpc,powerpc64,aix,riscv,loongarch32,loongarch64,wasm,wasip1,bpf,m68k,csky,nvptx64)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.sparc" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Cpanic=abort" "-Cforce-unwind-tables=yes" "--target" "sparc-unknown-linux-gnu" "--extern" "minicore=/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.sparc/libminicore.rlib"
stdout: none
--- stderr -------------------------------
error[E0690]: transparent struct needs at most one non-trivial field, but has 2
##[error]  --> /checkout/tests/ui/abi/compatibility.rs:223:1
   |
LL | struct TransparentWrapper3<T>(T, [u8; 0], PhantomData<u64>);
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -  ------- this field contains an array, which might be relevant for the ABI on some targets
   | |                             |
   | |                             this field is generic and hence may have non-zero size
   | needs at most one non-trivial field, but has 2

error: aborting due to 1 previous error
---
---- [ui] tests/ui/abi/compatibility.rs#thumb stdout ----

error in revision `thumb`: test compilation failed although it shouldn't!
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/abi/compatibility.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--cfg" "thumb" "--check-cfg" "cfg(test,FALSE,host,i686,x86_64,x86_64_win,arm,thumb,aarch64,s390x,mips,mips64,sparc,sparc64,powerpc,powerpc64,aix,riscv,loongarch32,loongarch64,wasm,wasip1,bpf,m68k,csky,nvptx64)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.thumb" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Cpanic=abort" "-Cforce-unwind-tables=yes" "--target" "thumbv8m.main-none-eabi" "--extern" "minicore=/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.thumb/libminicore.rlib"
stdout: none
--- stderr -------------------------------
error[E0690]: transparent struct needs at most one non-trivial field, but has 2
##[error]  --> /checkout/tests/ui/abi/compatibility.rs:223:1
   |
LL | struct TransparentWrapper3<T>(T, [u8; 0], PhantomData<u64>);
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -  ------- this field contains an array, which might be relevant for the ABI on some targets
   | |                             |
   | |                             this field is generic and hence may have non-zero size
   | needs at most one non-trivial field, but has 2

error: aborting due to 1 previous error
---
---- [ui] tests/ui/abi/compatibility.rs#wasip1 stdout ----

error in revision `wasip1`: test compilation failed although it shouldn't!
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/abi/compatibility.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--cfg" "wasip1" "--check-cfg" "cfg(test,FALSE,host,i686,x86_64,x86_64_win,arm,thumb,aarch64,s390x,mips,mips64,sparc,sparc64,powerpc,powerpc64,aix,riscv,loongarch32,loongarch64,wasm,wasip1,bpf,m68k,csky,nvptx64)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.wasip1" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Cpanic=abort" "-Cforce-unwind-tables=yes" "--target" "wasm32-wasip1" "--extern" "minicore=/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.wasip1/libminicore.rlib"
stdout: none
--- stderr -------------------------------
error[E0690]: transparent struct needs at most one non-trivial field, but has 2
##[error]  --> /checkout/tests/ui/abi/compatibility.rs:223:1
   |
LL | struct TransparentWrapper3<T>(T, [u8; 0], PhantomData<u64>);
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -  ------- this field contains an array, which might be relevant for the ABI on some targets
   | |                             |
   | |                             this field is generic and hence may have non-zero size
   | needs at most one non-trivial field, but has 2

error: aborting due to 1 previous error
---
---- [ui] tests/ui/abi/compatibility.rs#wasm stdout ----

error in revision `wasm`: test compilation failed although it shouldn't!
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/abi/compatibility.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--cfg" "wasm" "--check-cfg" "cfg(test,FALSE,host,i686,x86_64,x86_64_win,arm,thumb,aarch64,s390x,mips,mips64,sparc,sparc64,powerpc,powerpc64,aix,riscv,loongarch32,loongarch64,wasm,wasip1,bpf,m68k,csky,nvptx64)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.wasm" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Cpanic=abort" "-Cforce-unwind-tables=yes" "--target" "wasm32-unknown-unknown" "--extern" "minicore=/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.wasm/libminicore.rlib"
stdout: none
--- stderr -------------------------------
error[E0690]: transparent struct needs at most one non-trivial field, but has 2
##[error]  --> /checkout/tests/ui/abi/compatibility.rs:223:1
   |
LL | struct TransparentWrapper3<T>(T, [u8; 0], PhantomData<u64>);
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -  ------- this field contains an array, which might be relevant for the ABI on some targets
   | |                             |
   | |                             this field is generic and hence may have non-zero size
   | needs at most one non-trivial field, but has 2

error: aborting due to 1 previous error

For more information about this error, try `rustc --explain E0690`.
------------------------------------------

---- [ui] tests/ui/abi/compatibility.rs#wasm stdout end ----
---- [ui] tests/ui/abi/compatibility.rs#x86-64-win stdout ----

error in revision `x86-64-win`: test compilation failed although it shouldn't!
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/abi/compatibility.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--cfg" "x86_64_win" "--check-cfg" "cfg(test,FALSE,host,i686,x86_64,x86_64_win,arm,thumb,aarch64,s390x,mips,mips64,sparc,sparc64,powerpc,powerpc64,aix,riscv,loongarch32,loongarch64,wasm,wasip1,bpf,m68k,csky,nvptx64)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.x86-64-win" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Cpanic=abort" "-Cforce-unwind-tables=yes" "--target" "x86_64-pc-windows-msvc" "--extern" "minicore=/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.x86-64-win/libminicore.rlib"
stdout: none
--- stderr -------------------------------
error[E0690]: transparent struct needs at most one non-trivial field, but has 2
##[error]  --> /checkout/tests/ui/abi/compatibility.rs:223:1
   |
LL | struct TransparentWrapper3<T>(T, [u8; 0], PhantomData<u64>);
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -  ------- this field contains an array, which might be relevant for the ABI on some targets
   | |                             |
   | |                             this field is generic and hence may have non-zero size
   | needs at most one non-trivial field, but has 2

error: aborting due to 1 previous error

For more information about this error, try `rustc --explain E0690`.
------------------------------------------

---- [ui] tests/ui/abi/compatibility.rs#x86-64-win stdout end ----
---- [ui] tests/ui/abi/compatibility.rs#x86-64 stdout ----

error in revision `x86-64`: test compilation failed although it shouldn't!
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/abi/compatibility.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--cfg" "x86_64" "--check-cfg" "cfg(test,FALSE,host,i686,x86_64,x86_64_win,arm,thumb,aarch64,s390x,mips,mips64,sparc,sparc64,powerpc,powerpc64,aix,riscv,loongarch32,loongarch64,wasm,wasip1,bpf,m68k,csky,nvptx64)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.x86-64" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Cpanic=abort" "-Cforce-unwind-tables=yes" "--target" "x86_64-unknown-linux-gnu" "--extern" "minicore=/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/abi/compatibility.x86-64/libminicore.rlib"
stdout: none
--- stderr -------------------------------
error[E0690]: transparent struct needs at most one non-trivial field, but has 2
##[error]  --> /checkout/tests/ui/abi/compatibility.rs:223:1
   |
LL | struct TransparentWrapper3<T>(T, [u8; 0], PhantomData<u64>);
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -  ------- this field contains an array, which might be relevant for the ABI on some targets
   | |                             |
   | |                             this field is generic and hence may have non-zero size
   | needs at most one non-trivial field, but has 2

error: aborting due to 1 previous error
---

+ error[E0690]: transparent struct needs at most one non-trivial field, but has 2
+   --> $DIR/homogeneous-aggr-transparent.rs:17:1
+    |
+ LL | struct Wrapper3<T>(T, [u8; 0], PhantomData<u64>);
+    | ^^^^^^^^^^^^^^^^^^ -  ------- this field contains an array, which might be relevant for the ABI on some targets
+    | |                  |
+    | |                  this field is generic and hence may have non-zero size
+    | needs at most one non-trivial field, but has 2
+ 
1 error: homogeneous_aggregate: Ok(Homogeneous(Reg { kind: Float, size: Size(4 bytes) }))
2   --> $DIR/homogeneous-aggr-transparent.rs:25:1
3    |

28 LL | pub type Test4 = WrapperUnion<Tuple>;
29    | ^^^^^^^^^^^^^^
---
-   --> /checkout/tests/ui/layout/homogeneous-aggr-transparent.rs:17:1
+ error[E0690]: transparent struct needs at most one non-trivial field, but has 2
+   --> $DIR/homogeneous-aggr-transparent.rs:17:1
+    |
+ LL | struct Wrapper3<T>(T, [u8; 0], PhantomData<u64>);
+    | ^^^^^^^^^^^^^^^^^^ -  ------- this field contains an array, which might be relevant for the ABI on some targets
+    | |                  |
+    | |                  this field is generic and hence may have non-zero size
+    | needs at most one non-trivial field, but has 2
+ 
+ error: aborting due to 6 previous errors
---
To only update this specific test, also pass `--test-args layout/homogeneous-aggr-transparent.rs`

error: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/layout/homogeneous-aggr-transparent.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/layout/homogeneous-aggr-transparent" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers"
stdout: none
--- stderr -------------------------------
error[E0690]: transparent struct needs at most one non-trivial field, but has 2
##[error]  --> /checkout/tests/ui/layout/homogeneous-aggr-transparent.rs:17:1
   |
LL | struct Wrapper3<T>(T, [u8; 0], PhantomData<u64>);
   | ^^^^^^^^^^^^^^^^^^ -  ------- this field contains an array, which might be relevant for the ABI on some targets
   | |                  |
   | |                  this field is generic and hence may have non-zero size
   | needs at most one non-trivial field, but has 2

error: homogeneous_aggregate: Ok(Homogeneous(Reg { kind: Float, size: Size(4 bytes) }))
##[error]  --> /checkout/tests/ui/layout/homogeneous-aggr-transparent.rs:25:1
   |
LL | pub type Test0 = Tuple;
   | ^^^^^^^^^^^^^^

error: homogeneous_aggregate: Ok(Homogeneous(Reg { kind: Float, size: Size(4 bytes) }))
##[error]  --> /checkout/tests/ui/layout/homogeneous-aggr-transparent.rs:29:1
   |
LL | pub type Test1 = Wrapper1<Tuple>;
   | ^^^^^^^^^^^^^^

error: homogeneous_aggregate: Ok(Homogeneous(Reg { kind: Float, size: Size(4 bytes) }))
##[error]  --> /checkout/tests/ui/layout/homogeneous-aggr-transparent.rs:33:1
   |
LL | pub type Test2 = Wrapper2<Tuple>;
   | ^^^^^^^^^^^^^^

error: homogeneous_aggregate: Ok(Homogeneous(Reg { kind: Float, size: Size(4 bytes) }))
##[error]  --> /checkout/tests/ui/layout/homogeneous-aggr-transparent.rs:37:1
   |
LL | pub type Test3 = Wrapper3<Tuple>;
   | ^^^^^^^^^^^^^^

error: homogeneous_aggregate: Ok(Homogeneous(Reg { kind: Float, size: Size(4 bytes) }))
##[error]  --> /checkout/tests/ui/layout/homogeneous-aggr-transparent.rs:41:1
   |
LL | pub type Test4 = WrapperUnion<Tuple>;
   | ^^^^^^^^^^^^^^

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented May 3, 2026

☀️ Try build successful (CI)
Build commit: 5f6abd8 (5f6abd89da253a562ad85d235b9342a3ac336c28, parent: 818811b3cd1e0ff0d8ef20d5a4cf0b7c079929bc)

@RalfJung
Copy link
Copy Markdown
Member Author

RalfJung commented May 3, 2026

@craterbot check

@craterbot
Copy link
Copy Markdown
Collaborator

👌 Experiment pr-156114 created and queued.
🤖 Automatically detected try build 5f6abd8
🔍 You can check out the queue and this experiment's details.

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot craterbot added S-waiting-on-crater Status: Waiting on a crater run to be completed. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels May 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-crater Status: Waiting on a crater run to be completed. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants