Rollup merge of #99984 - ChrisDenton:fix-miri, r=Mark-Simulacrum

Fix compat.rs for `cfg(miri)`

Fixes #99982
This commit is contained in:
Matthias Krüger 2022-07-31 23:39:44 +02:00 committed by GitHub
commit e4fcee579e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -180,8 +180,8 @@ macro_rules! compat_fn_with_fallback {
fn load_from_module(module: Option<Module>) -> F { fn load_from_module(module: Option<Module>) -> F {
unsafe { unsafe {
static symbol_name: &CStr = ansi_str!(sym $symbol); static SYMBOL_NAME: &CStr = ansi_str!(sym $symbol);
if let Some(f) = module.and_then(|m| m.proc_address(symbol_name)) { if let Some(f) = module.and_then(|m| m.proc_address(SYMBOL_NAME)) {
PTR.store(f.as_ptr(), Ordering::Relaxed); PTR.store(f.as_ptr(), Ordering::Relaxed);
mem::transmute(f) mem::transmute(f)
} else { } else {
@ -251,7 +251,7 @@ macro_rules! compat_fn_optional {
pub fn option() -> Option<F> { pub fn option() -> Option<F> {
let mut func = NonNull::new(PTR.load(Ordering::Relaxed)); let mut func = NonNull::new(PTR.load(Ordering::Relaxed));
if func.is_none() { if func.is_none() {
Module::new($module).map(preload); unsafe { Module::new($module).map(preload) };
func = NonNull::new(PTR.load(Ordering::Relaxed)); func = NonNull::new(PTR.load(Ordering::Relaxed));
} }
unsafe { unsafe {
@ -262,8 +262,8 @@ macro_rules! compat_fn_optional {
#[allow(unused)] #[allow(unused)]
pub(in crate::sys) fn preload(module: Module) { pub(in crate::sys) fn preload(module: Module) {
unsafe { unsafe {
let symbol_name = ansi_str!(sym $symbol); static SYMBOL_NAME: &CStr = ansi_str!(sym $symbol);
if let Some(f) = module.proc_address(symbol_name) { if let Some(f) = module.proc_address(SYMBOL_NAME) {
PTR.store(f.as_ptr(), Ordering::Relaxed); PTR.store(f.as_ptr(), Ordering::Relaxed);
} }
} }