compiler: use addr_of!
This commit is contained in:
parent
ff187a92d8
commit
613cb3262d
7 changed files with 9 additions and 9 deletions
|
@ -313,7 +313,7 @@ fn get_llvm_object_symbols(
|
||||||
llvm::LLVMRustGetSymbols(
|
llvm::LLVMRustGetSymbols(
|
||||||
buf.as_ptr(),
|
buf.as_ptr(),
|
||||||
buf.len(),
|
buf.len(),
|
||||||
&mut *state as *mut &mut _ as *mut c_void,
|
std::ptr::addr_of_mut!(*state) as *mut c_void,
|
||||||
callback,
|
callback,
|
||||||
error_callback,
|
error_callback,
|
||||||
)
|
)
|
||||||
|
|
|
@ -169,7 +169,7 @@ impl WriteBackendMethods for LlvmCodegenBackend {
|
||||||
fn print_pass_timings(&self) {
|
fn print_pass_timings(&self) {
|
||||||
unsafe {
|
unsafe {
|
||||||
let mut size = 0;
|
let mut size = 0;
|
||||||
let cstr = llvm::LLVMRustPrintPassTimings(&mut size as *mut usize);
|
let cstr = llvm::LLVMRustPrintPassTimings(std::ptr::addr_of_mut!(size));
|
||||||
if cstr.is_null() {
|
if cstr.is_null() {
|
||||||
println!("failed to get pass timings");
|
println!("failed to get pass timings");
|
||||||
} else {
|
} else {
|
||||||
|
@ -182,7 +182,7 @@ impl WriteBackendMethods for LlvmCodegenBackend {
|
||||||
fn print_statistics(&self) {
|
fn print_statistics(&self) {
|
||||||
unsafe {
|
unsafe {
|
||||||
let mut size = 0;
|
let mut size = 0;
|
||||||
let cstr = llvm::LLVMRustPrintStatistics(&mut size as *mut usize);
|
let cstr = llvm::LLVMRustPrintStatistics(std::ptr::addr_of_mut!(size));
|
||||||
if cstr.is_null() {
|
if cstr.is_null() {
|
||||||
println!("failed to get pass stats");
|
println!("failed to get pass stats");
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -435,7 +435,7 @@ pub(crate) fn print(req: &PrintRequest, mut out: &mut dyn PrintBackendInfo, sess
|
||||||
&tm,
|
&tm,
|
||||||
cpu_cstring.as_ptr(),
|
cpu_cstring.as_ptr(),
|
||||||
callback,
|
callback,
|
||||||
&mut out as *mut &mut dyn PrintBackendInfo as *mut c_void,
|
std::ptr::addr_of_mut!(out) as *mut c_void,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -429,7 +429,7 @@ impl<T> RwLock<T> {
|
||||||
#[inline(always)]
|
#[inline(always)]
|
||||||
pub fn leak(&self) -> &T {
|
pub fn leak(&self) -> &T {
|
||||||
let guard = self.read();
|
let guard = self.read();
|
||||||
let ret = unsafe { &*(&*guard as *const T) };
|
let ret = unsafe { &*std::ptr::addr_of!(*guard) };
|
||||||
std::mem::forget(guard);
|
std::mem::forget(guard);
|
||||||
ret
|
ret
|
||||||
}
|
}
|
||||||
|
|
|
@ -233,7 +233,7 @@ impl<'sess> OnDiskCache<'sess> {
|
||||||
|
|
||||||
for (index, file) in files.iter().enumerate() {
|
for (index, file) in files.iter().enumerate() {
|
||||||
let index = SourceFileIndex(index as u32);
|
let index = SourceFileIndex(index as u32);
|
||||||
let file_ptr: *const SourceFile = &**file as *const _;
|
let file_ptr: *const SourceFile = std::ptr::addr_of!(**file);
|
||||||
file_to_file_index.insert(file_ptr, index);
|
file_to_file_index.insert(file_ptr, index);
|
||||||
let source_file_id = EncodedSourceFileId::new(tcx, file);
|
let source_file_id = EncodedSourceFileId::new(tcx, file);
|
||||||
file_index_to_stable_id.insert(index, source_file_id);
|
file_index_to_stable_id.insert(index, source_file_id);
|
||||||
|
@ -835,7 +835,7 @@ pub struct CacheEncoder<'a, 'tcx> {
|
||||||
impl<'a, 'tcx> CacheEncoder<'a, 'tcx> {
|
impl<'a, 'tcx> CacheEncoder<'a, 'tcx> {
|
||||||
#[inline]
|
#[inline]
|
||||||
fn source_file_index(&mut self, source_file: Lrc<SourceFile>) -> SourceFileIndex {
|
fn source_file_index(&mut self, source_file: Lrc<SourceFile>) -> SourceFileIndex {
|
||||||
self.file_to_file_index[&(&*source_file as *const SourceFile)]
|
self.file_to_file_index[&std::ptr::addr_of!(*source_file)]
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Encode something with additional information that allows to do some
|
/// Encode something with additional information that allows to do some
|
||||||
|
|
|
@ -61,7 +61,7 @@ impl<T> List<T> {
|
||||||
// length) that is 64-byte aligned, thus featuring the necessary
|
// length) that is 64-byte aligned, thus featuring the necessary
|
||||||
// trailing padding for elements with up to 64-byte alignment.
|
// trailing padding for elements with up to 64-byte alignment.
|
||||||
static EMPTY_SLICE: InOrder<usize, MaxAlign> = InOrder(0, MaxAlign);
|
static EMPTY_SLICE: InOrder<usize, MaxAlign> = InOrder(0, MaxAlign);
|
||||||
unsafe { &*(&EMPTY_SLICE as *const _ as *const List<T>) }
|
unsafe { &*(std::ptr::addr_of!(EMPTY_SLICE) as *const List<T>) }
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn len(&self) -> usize {
|
pub fn len(&self) -> usize {
|
||||||
|
|
|
@ -208,7 +208,7 @@ where
|
||||||
if TLV.is_set() {
|
if TLV.is_set() {
|
||||||
Err(Error::from("StableMIR already running"))
|
Err(Error::from("StableMIR already running"))
|
||||||
} else {
|
} else {
|
||||||
let ptr: *const () = &context as *const &_ as _;
|
let ptr: *const () = std::ptr::addr_of!(context) as _;
|
||||||
TLV.set(&Cell::new(ptr), || Ok(f()))
|
TLV.set(&Cell::new(ptr), || Ok(f()))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue