]> git.proxmox.com Git - rustc.git/blob - src/test/run-pass/x86stdcall2.rs
Imported Upstream version 1.0.0~beta.3
[rustc.git] / src / test / run-pass / x86stdcall2.rs
1 // Copyright 2012 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
4 //
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
10
11 // pretty-expanded FIXME #23616
12
13 #![feature(std_misc)]
14
15 pub type HANDLE = u32;
16 pub type DWORD = u32;
17 pub type SIZE_T = u32;
18 pub type LPVOID = usize;
19 pub type BOOL = u8;
20
21 #[cfg(windows)]
22 mod kernel32 {
23 use super::{HANDLE, DWORD, SIZE_T, LPVOID, BOOL};
24
25 extern "system" {
26 pub fn GetProcessHeap() -> HANDLE;
27 pub fn HeapAlloc(hHeap: HANDLE, dwFlags: DWORD, dwBytes: SIZE_T)
28 -> LPVOID;
29 pub fn HeapFree(hHeap: HANDLE, dwFlags: DWORD, lpMem: LPVOID) -> BOOL;
30 }
31 }
32
33
34 #[cfg(windows)]
35 pub fn main() {
36 let heap = unsafe { kernel32::GetProcessHeap() };
37 let mem = unsafe { kernel32::HeapAlloc(heap, 0, 100) };
38 assert!(mem != 0);
39 let res = unsafe { kernel32::HeapFree(heap, 0, mem) };
40 assert!(res != 0);
41 }
42
43 #[cfg(not(windows))]
44 pub fn main() { }