Skip to content

Commit d582eeb

Browse files
committed
auto merge of #7734 : alexcrichton/rust/issue-3395, r=sanxiyn
Also ends up fixing one case in libstd. Closes #3395
2 parents d2cf292 + 2cd9d7b commit d582eeb

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
@@ -745,6 +745,7 @@ fn check_item_ctypes(cx: &Context, it: &ast::item) {
745745
_ => ()
746746
}
747747
}
748+
ast::ty_ptr(ref mt) => { check_ty(cx, mt.ty) }
748749
_ => ()
749750
}
750751
}

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
@@ -769,7 +769,7 @@ rust_register_exit_function(spawn_fn runner, fn_env_pair *f) {
769769
task->kernel->register_exit_function(runner, f);
770770
}
771771

772-
extern "C" void *
772+
extern "C" intptr_t*
773773
rust_get_global_data_ptr() {
774774
rust_task *task = rust_get_current_task();
775775
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)