about summary refs log tree commit diff
path: root/src/librustc_codegen_llvm
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2018-08-18 14:35:42 +0000
committerbors <bors@rust-lang.org>2018-08-18 14:35:42 +0000
commita3ad012e2d33680d40b325258c0da532d0a884f3 (patch)
tree406f62e7d2674d407998b5b99a1ea13402270a27 /src/librustc_codegen_llvm
parent7de3dea2b76786077ad51b31d167867e5ecdfdbc (diff)
parentdc02a6070f899b87249efa8c09bb2b90dbe94b0d (diff)
downloadrust-a3ad012e2d33680d40b325258c0da532d0a884f3.tar.gz
rust-a3ad012e2d33680d40b325258c0da532d0a884f3.zip
Auto merge of #53286 - nagisa:cast-assumes, r=eddyb
Do not generate assumes for plain integer casts

I gave up on making anything more elegant for now.

r? @eddyb
Diffstat (limited to 'src/librustc_codegen_llvm')
-rw-r--r--src/librustc_codegen_llvm/mir/rvalue.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/librustc_codegen_llvm/mir/rvalue.rs b/src/librustc_codegen_llvm/mir/rvalue.rs
index dda33ae3fec..7eac8e735ed 100644
--- a/src/librustc_codegen_llvm/mir/rvalue.rs
+++ b/src/librustc_codegen_llvm/mir/rvalue.rs
@@ -304,7 +304,9 @@ impl FunctionCx<'a, 'll, 'tcx> {
                                 // then `i1 1` (i.e. E::B) is effectively `i8 -1`.
                                 signed = !scalar.is_bool() && s;
 
-                                if scalar.valid_range.end() > scalar.valid_range.start() {
+                                let er = scalar.valid_range_exclusive(bx.cx);
+                                if er.end != er.start &&
+                                   scalar.valid_range.end() > scalar.valid_range.start() {
                                     // We want `table[e as usize]` to not
                                     // have bound checks, and this is the most
                                     // convenient place to put the `assume`.