about summary refs log tree commit diff
path: root/compiler/rustc_mir/src/interpret
diff options
context:
space:
mode:
authorYuki Okushi <huyuumi.dev@gmail.com>2021-01-27 04:43:16 +0900
committerGitHub <noreply@github.com>2021-01-27 04:43:16 +0900
commitc2c90bf5489a50c6cfc808fba5d587009eea4bff (patch)
treec8a9b9cab9051fd049264457d63980025002e1b5 /compiler/rustc_mir/src/interpret
parentfe6b3a97921eb59502dfca13505e3ef68f5289bb (diff)
parent2be19932335f76cb4a97c275038a019751fbba6a (diff)
downloadrust-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.rs6
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() {