Skip to content

Commit 2cd9d7b

Browse files
committed
Expand ctypes warnings to warn about *int/*uint
Also ends up fixing one case in libstd
1 parent e388a80 commit 2cd9d7b

File tree

6 files changed

+16
-31
lines changed

6 files changed

+16
-31
lines changed

src/librustc/middle/lint.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -741,6 +741,7 @@ fn check_item_ctypes(cx: &Context, it: &ast::item) {
741741
_ => ()
742742
}
743743
}
744+
ast::ty_ptr(ref mt) => { check_ty(cx, mt.ty) }
744745
_ => ()
745746
}
746747
}

src/libstd/unstable/global.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ avoid hitting the mutex.
2828
use cast::{transmute};
2929
use clone::Clone;
3030
use kinds::Send;
31-
use libc::{c_void};
31+
use libc::{c_void, intptr_t};
3232
use option::{Option, Some, None};
3333
use ops::Drop;
3434
use unstable::sync::{Exclusive, exclusive};
@@ -228,7 +228,7 @@ fn key_ptr<T:Send>(key: GlobalDataKey<T>) -> uint {
228228
}
229229

230230
extern {
231-
fn rust_get_global_data_ptr() -> *mut int;
231+
fn rust_get_global_data_ptr() -> *mut intptr_t;
232232
}
233233

234234
#[test]

src/rt/rust_builtin.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -774,7 +774,7 @@ rust_register_exit_function(spawn_fn runner, fn_env_pair *f) {
774774
task->kernel->register_exit_function(runner, f);
775775
}
776776

777-
extern "C" void *
777+
extern "C" intptr_t*
778778
rust_get_global_data_ptr() {
779779
rust_task *task = rust_get_current_task();
780780
return &task->kernel->global_data;

src/rt/rust_kernel.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ class rust_kernel {
124124

125125
public:
126126
struct rust_env *env;
127-
uintptr_t global_data;
127+
intptr_t global_data;
128128

129129
rust_kernel(rust_env *env);
130130

src/test/compile-fail/warn-ctypes-err-attr.rs renamed to src/test/compile-fail/lint-ctypes.rs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,19 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
// error-pattern:found rust type
1211
#[deny(ctypes)];
1312

14-
mod libc {
15-
#[nolink]
16-
pub extern {
17-
pub fn malloc(size: int) -> *u8;
18-
}
13+
use std::libc;
14+
15+
#[nolink]
16+
extern {
17+
pub fn bare_type1(size: int); //~ ERROR: found rust type
18+
pub fn bare_type2(size: uint); //~ ERROR: found rust type
19+
pub fn ptr_type1(size: *int); //~ ERROR: found rust type
20+
pub fn ptr_type2(size: *uint); //~ ERROR: found rust type
21+
22+
pub fn good1(size: *libc::c_int);
23+
pub fn good2(size: *libc::c_uint);
1924
}
2025

2126
fn main() {

src/test/compile-fail/warn-ctypes.rs

Lines changed: 0 additions & 21 deletions
This file was deleted.

0 commit comments

Comments
 (0)