From 1a7b00d5fd28edc3ea236bbe8e5fe0b5d81b4c8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20K=C3=A5re=20Alsaker?= Date: Mon, 8 Jan 2018 13:18:50 +0100 Subject: [PATCH] Don't look for niches inside generator types. Fixes #47253 --- src/librustc/ty/layout.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/librustc/ty/layout.rs b/src/librustc/ty/layout.rs index 34a7d4ad7cf..50efb730037 100644 --- a/src/librustc/ty/layout.rs +++ b/src/librustc/ty/layout.rs @@ -2295,6 +2295,13 @@ impl<'a, 'tcx> TyLayout<'tcx> { }, niche_start)) }; + // Locals variables which live across yields are stored + // in the generator type as fields. These may be uninitialized + // so we don't look for niches there. + if let ty::TyGenerator(..) = self.ty.sty { + return Ok(None); + } + match self.abi { Abi::Scalar(ref scalar) => { return Ok(scalar_component(scalar, Size::from_bytes(0)));