diff options
| author | Yuki Okushi <huyuumi.dev@gmail.com> | 2021-01-27 04:43:16 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-01-27 04:43:16 +0900 |
| commit | c2c90bf5489a50c6cfc808fba5d587009eea4bff (patch) | |
| tree | c8a9b9cab9051fd049264457d63980025002e1b5 /compiler/rustc_mir/src/interpret | |
| parent | fe6b3a97921eb59502dfca13505e3ef68f5289bb (diff) | |
| parent | 2be19932335f76cb4a97c275038a019751fbba6a (diff) | |
| download | rust-c2c90bf5489a50c6cfc808fba5d587009eea4bff.tar.gz rust-c2c90bf5489a50c6cfc808fba5d587009eea4bff.zip | |
Rollup merge of #80900 - camelid:readpointerasbytes-ice, r=oli-obk
Fix ICE with `ReadPointerAsBytes` validation error Fixes #79690. r? ``````@oli-obk``````
Diffstat (limited to 'compiler/rustc_mir/src/interpret')
| -rw-r--r-- | compiler/rustc_mir/src/interpret/validity.rs | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/compiler/rustc_mir/src/interpret/validity.rs b/compiler/rustc_mir/src/interpret/validity.rs index 423d1270ac8..0b7492631c4 100644 --- a/compiler/rustc_mir/src/interpret/validity.rs +++ b/compiler/rustc_mir/src/interpret/validity.rs @@ -515,7 +515,11 @@ impl<'rt, 'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> ValidityVisitor<'rt, 'mir, ' Ok(true) } ty::Float(_) | ty::Int(_) | ty::Uint(_) => { - let value = self.ecx.read_scalar(value)?; + let value = try_validation!( + self.ecx.read_scalar(value), + self.path, + err_unsup!(ReadPointerAsBytes) => { "read of part of a pointer" }, + ); // NOTE: Keep this in sync with the array optimization for int/float // types below! if self.ctfe_mode.is_some() { |
