diff options
Diffstat (limited to 'tests/ui/abi/x86stdcall.rs')
| -rw-r--r-- | tests/ui/abi/x86stdcall.rs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/ui/abi/x86stdcall.rs b/tests/ui/abi/x86stdcall.rs new file mode 100644 index 00000000000..d1cf1319fb0 --- /dev/null +++ b/tests/ui/abi/x86stdcall.rs @@ -0,0 +1,22 @@ +// run-pass +// only-windows +// GetLastError doesn't seem to work with stack switching + +#[cfg(windows)] +mod kernel32 { + extern "system" { + pub fn SetLastError(err: usize); + pub fn GetLastError() -> usize; + } +} + +#[cfg(windows)] +pub fn main() { + unsafe { + let expected = 1234; + kernel32::SetLastError(expected); + let actual = kernel32::GetLastError(); + println!("actual = {}", actual); + assert_eq!(expected, actual); + } +} |
