rust/src/test/run-pass/issue-37991.rs
Ariel Ben-Yehuda 61b0b212f9 fix function arguments in constant promotion
we can't create the target block until *after* we promote the arguments
- otherwise the arguments will be promoted into the target block. oops.

Fixes #38985.
2017-01-11 09:50:24 +02:00

28 lines
690 B
Rust

// 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
}
const fn bar(x: i64) -> i64 {
x*2
}
fn main() {
let val = &(foo() % 2);
assert_eq!(*val, 1);
let val2 = &(bar(1+1) % 3);
assert_eq!(*val2, 1);
}