From cf25ef9d9d22d91c9bf3ceb8ab2262a16370d171 Mon Sep 17 00:00:00 2001 From: Oliver Schneider Date: Fri, 1 Sep 2017 12:26:51 +0200 Subject: [PATCH] Implement `align_offset` intrinsic and thus enabling `from_utf8` --- miri/intrinsic.rs | 6 ++++++ tests/run-pass-fullmir/from_utf8.rs | 3 +++ 2 files changed, 9 insertions(+) create mode 100644 tests/run-pass-fullmir/from_utf8.rs diff --git a/miri/intrinsic.rs b/miri/intrinsic.rs index 8c722a46ae30..693a478c2df2 100644 --- a/miri/intrinsic.rs +++ b/miri/intrinsic.rs @@ -34,6 +34,12 @@ impl<'a, 'tcx> EvalContextExt<'tcx> for EvalContext<'a, 'tcx, super::Evaluator> let intrinsic_name = &self.tcx.item_name(instance.def_id()).as_str()[..]; match intrinsic_name { + "align_offset" => { + // FIXME: return a real value in case the target allocation has an + // alignment bigger than the one requested + self.write_primval(dest, PrimVal::Bytes(u128::max_value()), dest_ty)?; + }, + "add_with_overflow" => { self.intrinsic_with_overflow( mir::BinOp::Add, diff --git a/tests/run-pass-fullmir/from_utf8.rs b/tests/run-pass-fullmir/from_utf8.rs new file mode 100644 index 000000000000..69e6c521af6e --- /dev/null +++ b/tests/run-pass-fullmir/from_utf8.rs @@ -0,0 +1,3 @@ +fn main() { + let _ = ::std::str::from_utf8(b"a"); +}