1
Fork 0

Implement black_box using intrinsic

The new implementation allows some `memcpy`s to be optimized away,
so the uninit value in ui/sanitize/memory.rs is constructed directly
onto the return place. Therefore the sanitizer now says that the
value is allocated by `main` rather than `random`.
This commit is contained in:
Gary Guo 2021-08-10 11:50:33 +01:00
parent ae90dcf020
commit 1fb1643129
9 changed files with 52 additions and 15 deletions

View file

@ -1136,6 +1136,11 @@ pub(crate) fn codegen_intrinsic_call<'tcx>(
};
ret.write_cvalue(fx, CValue::by_val(is_eq_value, ret.layout()));
};
black_box, (c a) {
// FIXME implement black_box semantics
ret.write_cvalue(fx, a);
};
}
if let Some((_, dest)) = destination {