diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2019-12-01 04:49:26 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-12-01 04:49:26 +0100 |
| commit | 75fd413e7b5eefacfc85b8c313fe3dfbc149ed1e (patch) | |
| tree | e458b8eb39253dcf79d3ad696aa14c7a3eba3110 /src | |
| parent | 60f4212ee537c7f5efff51c694c814b5458c8aa7 (diff) | |
| parent | 2ced9d96e7b70237daa69bd8d421f0421d57e676 (diff) | |
| download | rust-75fd413e7b5eefacfc85b8c313fe3dfbc149ed1e.tar.gz rust-75fd413e7b5eefacfc85b8c313fe3dfbc149ed1e.zip | |
Rollup merge of #66790 - christianpoveda:check-set-discriminant, r=oli-obk
Do `min_const_fn` checks for `SetDiscriminant`s target Fixes https://github.com/rust-lang/rust/issues/66556 r? @oli-obk @ecstatic-morse
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc_mir/transform/check_consts/validation.rs | 3 | ||||
| -rw-r--r-- | src/librustc_mir/transform/qualify_min_const_fn.rs | 2 |
2 files changed, 2 insertions, 3 deletions
diff --git a/src/librustc_mir/transform/check_consts/validation.rs b/src/librustc_mir/transform/check_consts/validation.rs index bee37f69a5e..829d9ee6faf 100644 --- a/src/librustc_mir/transform/check_consts/validation.rs +++ b/src/librustc_mir/transform/check_consts/validation.rs @@ -560,7 +560,7 @@ impl Visitor<'tcx> for Validator<'_, 'mir, 'tcx> { trace!("visit_statement: statement={:?} location={:?}", statement, location); match statement.kind { - StatementKind::Assign(..) => { + StatementKind::Assign(..) | StatementKind::SetDiscriminant { .. } => { self.super_statement(statement, location); } StatementKind::FakeRead(FakeReadCause::ForMatchedPlace, _) => { @@ -568,7 +568,6 @@ impl Visitor<'tcx> for Validator<'_, 'mir, 'tcx> { } // FIXME(eddyb) should these really do nothing? StatementKind::FakeRead(..) | - StatementKind::SetDiscriminant { .. } | StatementKind::StorageLive(_) | StatementKind::StorageDead(_) | StatementKind::InlineAsm {..} | diff --git a/src/librustc_mir/transform/qualify_min_const_fn.rs b/src/librustc_mir/transform/qualify_min_const_fn.rs index 81f4c277f4d..e40d6a5952e 100644 --- a/src/librustc_mir/transform/qualify_min_const_fn.rs +++ b/src/librustc_mir/transform/qualify_min_const_fn.rs @@ -225,7 +225,7 @@ fn check_statement( StatementKind::FakeRead(_, place) => check_place(tcx, place, span, def_id, body), // just an assignment - StatementKind::SetDiscriminant { .. } => Ok(()), + StatementKind::SetDiscriminant { place, .. } => check_place(tcx, place, span, def_id, body), | StatementKind::InlineAsm { .. } => { Err((span, "cannot use inline assembly in const fn".into())) |
