about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2017-05-06 22:14:43 +0000
committerbors <bors@rust-lang.org>2017-05-06 22:14:43 +0000
commit2527f41baf2e487da68134d019cb5608ec93cbf2 (patch)
tree98aad1b02f6b16e43ab89e5ba3877bb17951cf91 /src
parentc1a960a03108a0f71ec6c4d9e7291722eba5abbc (diff)
parentdb8be04e49f32d36270e87b71b74c4b71764647e (diff)
downloadrust-2527f41baf2e487da68134d019cb5608ec93cbf2.tar.gz
rust-2527f41baf2e487da68134d019cb5608ec93cbf2.zip
Auto merge of #41787 - jsheard:ulongptr, r=alexcrichton
Fix definitions of ULONG_PTR

The Windows type `ULONG_PTR` is supposed to be equivalent to `usize`, but several parts of the codebase currently define it as `u64`. Evidently this hasn't broken anything yet but it might cause annoying 32-bit-specific breakage in future.

See https://msdn.microsoft.com/en-gb/library/windows/desktop/aa383751(v=vs.85).aspx

r? @alexcrichton
Diffstat (limited to 'src')
-rw-r--r--src/libpanic_unwind/windows.rs4
-rw-r--r--src/librustc_data_structures/flock.rs4
-rw-r--r--src/libstd/sys/windows/c.rs7
3 files changed, 8 insertions, 7 deletions
diff --git a/src/libpanic_unwind/windows.rs b/src/libpanic_unwind/windows.rs
index fd8429d262e..a7e90071cea 100644
--- a/src/libpanic_unwind/windows.rs
+++ b/src/libpanic_unwind/windows.rs
@@ -12,11 +12,11 @@
 #![allow(dead_code)]
 #![cfg(windows)]
 
-use libc::{c_long, c_ulong, c_ulonglong, c_void};
+use libc::{c_long, c_ulong, c_void};
 
 pub type DWORD = c_ulong;
 pub type LONG = c_long;
-pub type ULONG_PTR = c_ulonglong;
+pub type ULONG_PTR = usize;
 pub type LPVOID = *mut c_void;
 
 pub const EXCEPTION_MAXIMUM_PARAMETERS: usize = 15;
diff --git a/src/librustc_data_structures/flock.rs b/src/librustc_data_structures/flock.rs
index 32f0fd41997..ff1ebb11b72 100644
--- a/src/librustc_data_structures/flock.rs
+++ b/src/librustc_data_structures/flock.rs
@@ -247,11 +247,11 @@ mod imp {
     use std::os::windows::raw::HANDLE;
     use std::path::Path;
     use std::fs::{File, OpenOptions};
-    use std::os::raw::{c_ulong, c_ulonglong, c_int};
+    use std::os::raw::{c_ulong, c_int};
 
     type DWORD = c_ulong;
     type BOOL = c_int;
-    type ULONG_PTR = c_ulonglong;
+    type ULONG_PTR = usize;
 
     type LPOVERLAPPED = *mut OVERLAPPED;
     const LOCKFILE_EXCLUSIVE_LOCK: DWORD = 0x00000002;
diff --git a/src/libstd/sys/windows/c.rs b/src/libstd/sys/windows/c.rs
index 4e08c7a0125..5e46069cf7d 100644
--- a/src/libstd/sys/windows/c.rs
+++ b/src/libstd/sys/windows/c.rs
@@ -14,8 +14,9 @@
 #![cfg_attr(test, allow(dead_code))]
 #![unstable(issue = "0", feature = "windows_c")]
 
-use os::raw::{c_int, c_uint, c_ulong, c_long, c_longlong, c_ushort,};
-use os::raw::{c_char, c_ulonglong};
+use os::raw::{c_int, c_uint, c_ulong, c_long, c_longlong, c_ushort, c_char};
+#[cfg(target_arch = "x86_64")]
+use os::raw::c_ulonglong;
 use libc::{wchar_t, size_t, c_void};
 use ptr;
 
@@ -45,7 +46,7 @@ pub type SIZE_T = usize;
 pub type WORD = u16;
 pub type CHAR = c_char;
 pub type HCRYPTPROV = LONG_PTR;
-pub type ULONG_PTR = c_ulonglong;
+pub type ULONG_PTR = usize;
 pub type ULONG = c_ulong;
 #[cfg(target_arch = "x86_64")]
 pub type ULONGLONG = u64;