Use CString

This commit is contained in:
Yuki OKUSHI 2019-03-30 21:37:02 +09:00
parent 3281248b88
commit 77774e4e96
1 changed files with 3 additions and 5 deletions

View File

@ -80,14 +80,12 @@ pub fn set_instrument_function(cx: &CodegenCx<'ll, '_>, llfn: &'ll Value) {
// The function name varies on platforms.
// See test/CodeGen/mcount.c in clang.
use std::ffi::CStr;
let target_mcount = format!("{}{}",
&cx.sess().target.target.options.target_mcount, "\0");
let mcount_name = CStr::from_bytes_with_nul(target_mcount.as_bytes()).unwrap();
let mcount_name = CString::new(
cx.sess().target.target.options.target_mcount.as_str().as_bytes()).unwrap();
llvm::AddFunctionAttrStringValue(
llfn, llvm::AttributePlace::Function,
const_cstr!("instrument-function-entry-inlined"), mcount_name);
const_cstr!("instrument-function-entry-inlined"), &mcount_name);
}
}