Auto merge of #38833 - arielb1:constant-mir-overflow, r=eddyb
fix promotion of MIR terminators promotion of MIR terminators used to try to promote the destination it is trying to promote, leading to stack overflow. Also clean up the code in `promote_temp` a bit to make it more understandable. Fixes #37991. cc @nikomatsakis r? @eddyb
This commit is contained in:
commit
0728b71034
3 changed files with 86 additions and 78 deletions
20
src/test/run-pass/issue-37991.rs
Normal file
20
src/test/run-pass/issue-37991.rs
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
#![feature(const_fn)]
|
||||
|
||||
const fn foo() -> i64 {
|
||||
3
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let val = &(foo() % 2);
|
||||
assert_eq!(*val, 1);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue