diff options
| author | 王宇逸 <Strawberry_Str@hotmail.com> | 2025-05-16 17:47:29 +0800 |
|---|---|---|
| committer | 王宇逸 <Strawberry_Str@hotmail.com> | 2025-05-16 17:47:29 +0800 |
| commit | 12c8fb857c97f97a0351eecc94e97e71b04cda70 (patch) | |
| tree | f947d9d0bfbcaa79fe10024c8a84ac1dd6702a7f | |
| parent | 5e048e0786674db68220b7e0e8b19b2a96bcae7c (diff) | |
| download | rust-12c8fb857c97f97a0351eecc94e97e71b04cda70.tar.gz rust-12c8fb857c97f97a0351eecc94e97e71b04cda70.zip | |
Fix fname for miri
| -rw-r--r-- | src/tools/miri/src/shims/native_lib.rs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/tools/miri/src/shims/native_lib.rs b/src/tools/miri/src/shims/native_lib.rs index 0258a76c3e7..837e1b31cac 100644 --- a/src/tools/miri/src/shims/native_lib.rs +++ b/src/tools/miri/src/shims/native_lib.rs @@ -117,7 +117,12 @@ trait EvalContextExtPriv<'tcx>: crate::MiriInterpCxExt<'tcx> { let mut info = std::mem::MaybeUninit::<libc::Dl_info>::uninit(); unsafe { if libc::dladdr(*func.deref() as *const _, info.as_mut_ptr()) != 0 { - if std::ffi::CStr::from_ptr(info.assume_init().dli_fname).to_str().unwrap() + let info = info.assume_init(); + #[cfg(target_os = "cygwin")] + let fname_ptr = info.dli_fname.as_ptr(); + #[cfg(not(target_os = "cygwin"))] + let fname_ptr = info.dli_fname; + if std::ffi::CStr::from_ptr(fname_ptr).to_str().unwrap() != _lib_path.to_str().unwrap() { return None; |
