From f493cab3e3d99692bf4de0d28acab3a918472d2f Mon Sep 17 00:00:00 2001 From: Jacob Adam Date: Thu, 9 Apr 2026 09:35:54 +0100 Subject: [PATCH] Add a test for an LLVM crash "Vector elements must have same size" --- tests/ui/derives/clone-vector-element-size.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/ui/derives/clone-vector-element-size.rs diff --git a/tests/ui/derives/clone-vector-element-size.rs b/tests/ui/derives/clone-vector-element-size.rs new file mode 100644 index 000000000000..1f2965737245 --- /dev/null +++ b/tests/ui/derives/clone-vector-element-size.rs @@ -0,0 +1,17 @@ +//! Regression test for https://github.com/rust-lang/rust/issues/104037. +//! LLVM used to hit an assertion "Vector elements must have same size" +//! when compiling derived Clone with MIR optimisation level of 3. + +//@ build-pass +//@ compile-flags: -Zmir-opt-level=3 -Copt-level=3 + +#[derive(Clone)] +pub struct Foo(Bar, u32); + +#[derive(Clone, Copy)] +pub struct Bar(u8, u8, u8); + +fn main() { + let foo: Vec = Vec::new(); + let _ = foo.clone(); +}