From de31b405134740bfd17d83a5b53cfbff7539888a Mon Sep 17 00:00:00 2001 From: Chris Denton Date: Fri, 6 Oct 2023 01:16:36 +0100 Subject: [PATCH] Miri: Add `CreateWaitableTimerEx` stub This function will always fail, allowing std's `Sleep` fallback path to be taken instead. --- src/tools/miri/src/shims/windows/foreign_items.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/tools/miri/src/shims/windows/foreign_items.rs b/src/tools/miri/src/shims/windows/foreign_items.rs index d76d01b07891a..1295cd97ce242 100644 --- a/src/tools/miri/src/shims/windows/foreign_items.rs +++ b/src/tools/miri/src/shims/windows/foreign_items.rs @@ -267,6 +267,14 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriInterpCxExt<'mir, 'tcx> { this.Sleep(timeout)?; } + "CreateWaitableTimerExW" => { + let [_attributes, _name, _flags, _access] = + this.check_shim(abi, Abi::System { unwind: false }, link_name, args)?; + // Unimplemented. Always return failure. + let not_supported = this.eval_windows("c", "ERROR_NOT_SUPPORTED"); + this.set_last_error(not_supported)?; + this.write_null(dest)?; + } // Synchronization primitives "AcquireSRWLockExclusive" => {