diff options
| author | bors <bors@rust-lang.org> | 2016-06-03 22:32:15 -0700 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2016-06-03 22:32:15 -0700 |
| commit | 7738479d72418ddc08febee0fa7097df334d357e (patch) | |
| tree | 02db04b160da2230fa0097d6fea5331237945e29 /src/librustc_const_eval | |
| parent | c81c75076c05990af6f71e56ccc12d7b196ee25c (diff) | |
| parent | bc7595c8abbf4e3b737e926d61814686e0ebda77 (diff) | |
| download | rust-7738479d72418ddc08febee0fa7097df334d357e.tar.gz rust-7738479d72418ddc08febee0fa7097df334d357e.zip | |
Auto merge of #33460 - shepmaster:16-bit-pointers, r=Aatch
Support 16-bit pointers as well as i/usize I'm opening this pull request to get some feedback from the community. Although Rust doesn't support any platforms with a native 16-bit pointer at the moment, the [AVR-Rust][ar] fork is working towards that goal. Keeping this forked logic up-to-date with the changes in master has been onerous so I'd like to merge these changes so that they get carried along when refactoring happens. I do not believe this should increase the maintenance burden. This is based on the original work of Dylan McKay (@dylanmckay). [ar]: https://github.com/avr-rust/rust
Diffstat (limited to 'src/librustc_const_eval')
| -rw-r--r-- | src/librustc_const_eval/eval.rs | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/librustc_const_eval/eval.rs b/src/librustc_const_eval/eval.rs index b727b778fcd..5613b121119 100644 --- a/src/librustc_const_eval/eval.rs +++ b/src/librustc_const_eval/eval.rs @@ -583,6 +583,9 @@ pub fn eval_const_expr_partial<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, (&LitKind::Int(n, Unsuffixed), Some(&ty::TyInt(IntTy::Is))) | (&LitKind::Int(n, Signed(IntTy::Is)), _) => { match tcx.sess.target.int_type { + IntTy::I16 => if n == I16_OVERFLOW { + return Ok(Integral(Isize(Is16(::std::i16::MIN)))); + }, IntTy::I32 => if n == I32_OVERFLOW { return Ok(Integral(Isize(Is32(::std::i32::MIN)))); }, |
