summary refs log tree commit diff
path: root/compiler/rustc_codegen_ssa/src/mir
diff options
context:
space:
mode:
authorCamille GILLOT <gillot.camille@gmail.com>2023-01-23 22:15:55 +0000
committerCamille GILLOT <gillot.camille@gmail.com>2023-02-02 23:09:51 +0000
commitfeccf469fbeb96c97d3b6a5f3186867afe0571f5 (patch)
treee9e68d0c00dcdb2a296f8116b251e589cbfbec2d /compiler/rustc_codegen_ssa/src/mir
parent0241c29123c7a49b5fdcc99e32b605124abe4e09 (diff)
downloadrust-feccf469fbeb96c97d3b6a5f3186867afe0571f5.tar.gz
rust-feccf469fbeb96c97d3b6a5f3186867afe0571f5.zip
Interpret aggregates.
Diffstat (limited to 'compiler/rustc_codegen_ssa/src/mir')
-rw-r--r--compiler/rustc_codegen_ssa/src/mir/rvalue.rs5
1 files changed, 5 insertions, 0 deletions
diff --git a/compiler/rustc_codegen_ssa/src/mir/rvalue.rs b/compiler/rustc_codegen_ssa/src/mir/rvalue.rs
index 23196c8cbae..b49e241bec0 100644
--- a/compiler/rustc_codegen_ssa/src/mir/rvalue.rs
+++ b/compiler/rustc_codegen_ssa/src/mir/rvalue.rs
@@ -13,6 +13,7 @@ use rustc_middle::ty::cast::{CastTy, IntTy};
 use rustc_middle::ty::layout::{HasTyCtxt, LayoutOf};
 use rustc_middle::ty::{self, adjustment::PointerCast, Instance, Ty, TyCtxt};
 use rustc_span::source_map::{Span, DUMMY_SP};
+use rustc_target::abi::VariantIdx;
 
 impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
     #[instrument(level = "trace", skip(self, bx))]
@@ -115,6 +116,10 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
                             (dest, active_field_index)
                         }
                     }
+                    mir::AggregateKind::Generator(..) => {
+                        dest.codegen_set_discr(bx, VariantIdx::from_u32(0));
+                        (dest, None)
+                    }
                     _ => (dest, None),
                 };
                 for (i, operand) in operands.iter().enumerate() {