diff options
| author | bors <bors@rust-lang.org> | 2025-07-21 02:31:56 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2025-07-21 02:31:56 +0000 |
| commit | e05ab47e6c418fb2b9faa2eae9a7e70c65c98eaa (patch) | |
| tree | cfa5e765a3479a007839b9ced139ff8199f56ad6 /compiler/rustc_codegen_ssa/src | |
| parent | 460259d14de0274b97b8801e08cb2fe5f16fdac5 (diff) | |
| parent | 41ce1ed252f194756fb2f3e3e92bbdfb3940088d (diff) | |
| download | rust-e05ab47e6c418fb2b9faa2eae9a7e70c65c98eaa.tar.gz rust-e05ab47e6c418fb2b9faa2eae9a7e70c65c98eaa.zip | |
Auto merge of #143833 - scottmcm:final-mcp-838, r=compiler-errors
Ban projecting into SIMD types [MCP838] Closes https://github.com/rust-lang/compiler-team/issues/838 The actual compiler change here is tiny; there's just a bazillion tests to update. ~~Since I'm sure I've missed some, for now~~ ~~r ghost~~ try-job: test-various try-job: x86_64-gnu-nopt
Diffstat (limited to 'compiler/rustc_codegen_ssa/src')
| -rw-r--r-- | compiler/rustc_codegen_ssa/src/mir/operand.rs | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/compiler/rustc_codegen_ssa/src/mir/operand.rs b/compiler/rustc_codegen_ssa/src/mir/operand.rs index 6a3fdb6ede1..06bedaaa4a2 100644 --- a/compiler/rustc_codegen_ssa/src/mir/operand.rs +++ b/compiler/rustc_codegen_ssa/src/mir/operand.rs @@ -329,20 +329,11 @@ impl<'a, 'tcx, V: CodegenObject> OperandRef<'tcx, V> { let offset = self.layout.fields.offset(i); if !bx.is_backend_ref(self.layout) && bx.is_backend_ref(field) { - if let BackendRepr::SimdVector { count, .. } = self.layout.backend_repr - && let BackendRepr::Memory { sized: true } = field.backend_repr - && count.is_power_of_two() - { - assert_eq!(field.size, self.layout.size); - // This is being deprecated, but for now stdarch still needs it for - // Newtype vector of array, e.g. #[repr(simd)] struct S([i32; 4]); - let place = PlaceRef::alloca(bx, field); - self.val.store(bx, place.val.with_type(self.layout)); - return bx.load_operand(place); - } else { - // Part of https://github.com/rust-lang/compiler-team/issues/838 - bug!("Non-ref type {self:?} cannot project to ref field type {field:?}"); - } + // Part of https://github.com/rust-lang/compiler-team/issues/838 + span_bug!( + fx.mir.span, + "Non-ref type {self:?} cannot project to ref field type {field:?}", + ); } let val = if field.is_zst() { |
