about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2017-01-06 09:43:37 +0000
committerbors <bors@rust-lang.org>2017-01-06 09:43:37 +0000
commit0728b710347aa80dfc05de29bfed4ed5fc023818 (patch)
treeb836125ef45999f285e9c92949bf4b3e8137b349 /src/test
parente7907a9910f416f39f9d212f6d204b29061cc194 (diff)
parent99aa48de2903f2b2a1fdc056f8791b21672f3346 (diff)
downloadrust-0728b710347aa80dfc05de29bfed4ed5fc023818.tar.gz
rust-0728b710347aa80dfc05de29bfed4ed5fc023818.zip
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
Diffstat (limited to 'src/test')
-rw-r--r--src/test/run-pass/issue-37991.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/test/run-pass/issue-37991.rs b/src/test/run-pass/issue-37991.rs
new file mode 100644
index 00000000000..cacc653871a
--- /dev/null
+++ b/src/test/run-pass/issue-37991.rs
@@ -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);
+}