diff options
| author | Simonas Kazlauskas <git@kazlauskas.me> | 2017-01-11 16:28:23 +0200 |
|---|---|---|
| committer | Simonas Kazlauskas <git@kazlauskas.me> | 2017-01-11 19:38:44 +0200 |
| commit | e97f104da64d047c919fc2fccf720efd46f30261 (patch) | |
| tree | 01852a2075f40887626b9ff2c4d2967bf257491c /src/test | |
| parent | e57f061be20666eb0506f6f41551c798bbb38b60 (diff) | |
| download | rust-e97f104da64d047c919fc2fccf720efd46f30261.tar.gz rust-e97f104da64d047c919fc2fccf720efd46f30261.zip | |
Fix two const-eval issues related to i128 negation
First issue here was the fact that we’d only allow negating integers in i64 range in case the integer was not infered yes. While this is not the direct cause of the issue, its still good to fix it. The real issue here is the code handling specifically the `min_value` literals. While I128_OVERFLOW has the expected value (0x8000_..._0000), match using this value as a pattern is handled incorrectly by the stage1 compiler (it seems to be handled correctly, by the stage2 compiler). So what we do here is extract this pattern into an explicit `==` until the next snapshot. Fixes #38987
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/run-pass/issue-38987.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/test/run-pass/issue-38987.rs b/src/test/run-pass/issue-38987.rs new file mode 100644 index 00000000000..a513476d4a3 --- /dev/null +++ b/src/test/run-pass/issue-38987.rs @@ -0,0 +1,14 @@ +// Copyright 2017 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(i128_type)] + +fn main() { + let _ = -0x8000_0000_0000_0000_0000_0000_0000_0000i128; +} |
