]> git.lizzy.rs Git - rust.git/commitdiff
Handle size_of_val for sized types.
authorScott Olson <scott@solson.me>
Tue, 10 May 2016 02:44:42 +0000 (20:44 -0600)
committerScott Olson <scott@solson.me>
Tue, 10 May 2016 02:44:42 +0000 (20:44 -0600)
src/interpreter.rs
tests/compile-fail/bugs/memcmp.rs

index d1a395bbf3438ed8e89e8b4cbd3b7a64912bc161..55f94ce41dc331bc40bfd807424e7aef85e0ab05 100644 (file)
@@ -574,6 +574,16 @@ fn call_intrinsic(
                 self.memory.write_uint(dest, size, dest_size)?;
             }
 
+            "size_of_val" => {
+                let ty = *substs.types.get(subst::FnSpace, 0);
+                if self.type_is_sized(ty) {
+                    let size = self.type_size(ty) as u64;
+                    self.memory.write_uint(dest, size, dest_size)?;
+                } else {
+                    panic!("unimplemented: size_of_val::<{:?}>", ty);
+                }
+            }
+
             "transmute" => {
                 let ty = *substs.types.get(subst::FnSpace, 0);
                 self.move_(args[0], dest, ty)?;
index d854f21ca317eb8f71fb70a2a827898b618405db..3fd41e7b3dd2ee8e5f3bc75989c05bc9d6c46f7b 100644 (file)
@@ -1,7 +1,7 @@
 #![feature(custom_attribute)]
 #![allow(dead_code, unused_attributes)]
 
-// error-pattern:can't handle intrinsic: size_of_val
+// error-pattern:can't call C ABI function: memcmp
 
 #[miri_run]
 fn memcmp() {