diff options
| author | bors <bors@rust-lang.org> | 2018-08-18 14:35:42 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2018-08-18 14:35:42 +0000 |
| commit | a3ad012e2d33680d40b325258c0da532d0a884f3 (patch) | |
| tree | 406f62e7d2674d407998b5b99a1ea13402270a27 /src/librustc_codegen_llvm | |
| parent | 7de3dea2b76786077ad51b31d167867e5ecdfdbc (diff) | |
| parent | dc02a6070f899b87249efa8c09bb2b90dbe94b0d (diff) | |
| download | rust-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.rs | 4 |
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`. |
