about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMichael Woerister <michaelwoerister@posteo.net>2016-08-30 12:11:43 -0400
committerMichael Woerister <michaelwoerister@posteo.net>2016-09-01 09:43:44 -0400
commita142d2ff025466a69662854255c959f60a31fd8c (patch)
tree4f9398fa85f9506578464154e1b00d4bc0c64af2
parent0310e3444b6b24da1b542b7c6b2999a1220259c0 (diff)
downloadrust-a142d2ff025466a69662854255c959f60a31fd8c.tar.gz
rust-a142d2ff025466a69662854255c959f60a31fd8c.zip
ICH: Fix bug in hash_discriminant() and visit_vis().
-rw-r--r--src/librustc_incremental/calculate_svh/svh_visitor.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/librustc_incremental/calculate_svh/svh_visitor.rs b/src/librustc_incremental/calculate_svh/svh_visitor.rs
index 23fb211d7c7..edfde33b3a1 100644
--- a/src/librustc_incremental/calculate_svh/svh_visitor.rs
+++ b/src/librustc_incremental/calculate_svh/svh_visitor.rs
@@ -174,7 +174,9 @@ impl<'a, 'hash, 'tcx> StrictVersionHashVisitor<'a, 'hash, 'tcx> {
 
     fn hash_discriminant<T>(&mut self, v: &T) {
         unsafe {
-            ::std::intrinsics::discriminant_value(&v).hash(self.st);
+            let disr = ::std::intrinsics::discriminant_value(v);
+            debug!("hash_discriminant: disr={}, st={:?}", disr, self.st);
+            disr.hash(self.st);
         }
     }
 }
@@ -536,7 +538,7 @@ impl<'a, 'hash, 'tcx> visit::Visitor<'tcx> for StrictVersionHashVisitor<'a, 'has
     fn visit_vis(&mut self, v: &'tcx Visibility) {
         debug!("visit_vis: st={:?}", self.st);
         SawVis.hash(self.st);
-        self.hash_discriminant(&v);
+        self.hash_discriminant(v);
         visit::walk_vis(self, v)
     }