From ea4cbff264371ed28c3642991d87c59f369e4e70 Mon Sep 17 00:00:00 2001 From: Tomasz Miąsko Date: Thu, 14 Jan 2021 00:00:00 +0000 Subject: Encode optimized MIR of generators when emitting metadata --- compiler/rustc_metadata/src/rmeta/encoder.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'compiler/rustc_metadata/src') diff --git a/compiler/rustc_metadata/src/rmeta/encoder.rs b/compiler/rustc_metadata/src/rmeta/encoder.rs index d8d222dccf4..58931bc5ff0 100644 --- a/compiler/rustc_metadata/src/rmeta/encoder.rs +++ b/compiler/rustc_metadata/src/rmeta/encoder.rs @@ -1507,7 +1507,10 @@ impl EncodeContext<'a, 'tcx> { record!(self.tables.fn_sig[def_id] <- substs.as_closure().sig()); } self.encode_generics(def_id.to_def_id()); - let opt_mir = self.tcx.sess.opts.debugging_opts.always_encode_mir || self.emit_codegen_mir; + let opt_mir = // FIXME: Optimized MIR is necessary to determine the layout of generators. + matches!(ty.kind(), ty::Generator(..)) + || self.tcx.sess.opts.debugging_opts.always_encode_mir + || self.emit_codegen_mir; if opt_mir { self.encode_optimized_mir(def_id); self.encode_promoted_mir(def_id); -- cgit 1.4.1-3-g733a5