]> git.lizzy.rs Git - rust.git/blobdiff - src/librustc_mir/interpret/terminator/mod.rs
Sanity-check all constants
[rust.git] / src / librustc_mir / interpret / terminator / mod.rs
index e281ba79639799c7a75e874a76a63814fe630444..56dd3f603b692f63e615b109b117e540c88b2fe8 100644 (file)
@@ -351,8 +351,12 @@ fn eval_fn_call(
                             if self.frame().mir.args_iter().count() == layout.fields.count() + 1 {
                                 for (i, arg_local) in arg_locals.enumerate() {
                                     let field = mir::Field::new(i);
-                                    let valty = self.read_field(args[1].value, None, field, args[1].ty)?;
+                                    let (value, layout) = self.read_field(args[1].value, None, field, layout)?;
                                     let dest = self.eval_place(&mir::Place::Local(arg_local))?;
+                                    let valty = ValTy {
+                                        value,
+                                        ty: layout.ty,
+                                    };
                                     self.write_value(valty, dest)?;
                                 }
                             } else {