diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2013-07-11 19:40:53 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2013-07-11 19:45:25 -0700 |
| commit | 2cd9d7bc88dc4e7c2a1fd25325eb95ff781395b7 (patch) | |
| tree | ac975054ab187f55981879d719de4f423dcbd9f4 /src | |
| parent | e388a80c234d628c4d1fab77dc3e3f2c04cbefc5 (diff) | |
| download | rust-2cd9d7bc88dc4e7c2a1fd25325eb95ff781395b7.tar.gz rust-2cd9d7bc88dc4e7c2a1fd25325eb95ff781395b7.zip | |
Expand ctypes warnings to warn about *int/*uint
Also ends up fixing one case in libstd
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc/middle/lint.rs | 1 | ||||
| -rw-r--r-- | src/libstd/unstable/global.rs | 4 | ||||
| -rw-r--r-- | src/rt/rust_builtin.cpp | 2 | ||||
| -rw-r--r-- | src/rt/rust_kernel.h | 2 | ||||
| -rw-r--r-- | src/test/compile-fail/lint-ctypes.rs (renamed from src/test/compile-fail/warn-ctypes-err-attr.rs) | 17 | ||||
| -rw-r--r-- | src/test/compile-fail/warn-ctypes.rs | 21 |
6 files changed, 16 insertions, 31 deletions
diff --git a/src/librustc/middle/lint.rs b/src/librustc/middle/lint.rs index 0fc19ffd78e..5b85e404797 100644 --- a/src/librustc/middle/lint.rs +++ b/src/librustc/middle/lint.rs @@ -741,6 +741,7 @@ fn check_item_ctypes(cx: &Context, it: &ast::item) { _ => () } } + ast::ty_ptr(ref mt) => { check_ty(cx, mt.ty) } _ => () } } diff --git a/src/libstd/unstable/global.rs b/src/libstd/unstable/global.rs index 285a8114cc2..af28879f739 100644 --- a/src/libstd/unstable/global.rs +++ b/src/libstd/unstable/global.rs @@ -28,7 +28,7 @@ avoid hitting the mutex. use cast::{transmute}; use clone::Clone; use kinds::Send; -use libc::{c_void}; +use libc::{c_void, intptr_t}; use option::{Option, Some, None}; use ops::Drop; use unstable::sync::{Exclusive, exclusive}; @@ -228,7 +228,7 @@ fn key_ptr<T:Send>(key: GlobalDataKey<T>) -> uint { } extern { - fn rust_get_global_data_ptr() -> *mut int; + fn rust_get_global_data_ptr() -> *mut intptr_t; } #[test] diff --git a/src/rt/rust_builtin.cpp b/src/rt/rust_builtin.cpp index 17f36e810cd..e6a3ad4394a 100644 --- a/src/rt/rust_builtin.cpp +++ b/src/rt/rust_builtin.cpp @@ -774,7 +774,7 @@ rust_register_exit_function(spawn_fn runner, fn_env_pair *f) { task->kernel->register_exit_function(runner, f); } -extern "C" void * +extern "C" intptr_t* rust_get_global_data_ptr() { rust_task *task = rust_get_current_task(); return &task->kernel->global_data; diff --git a/src/rt/rust_kernel.h b/src/rt/rust_kernel.h index 4976dec149a..09f73f9b7d8 100644 --- a/src/rt/rust_kernel.h +++ b/src/rt/rust_kernel.h @@ -124,7 +124,7 @@ class rust_kernel { public: struct rust_env *env; - uintptr_t global_data; + intptr_t global_data; rust_kernel(rust_env *env); diff --git a/src/test/compile-fail/warn-ctypes-err-attr.rs b/src/test/compile-fail/lint-ctypes.rs index adec8dc6d0d..a0c027b2d6b 100644 --- a/src/test/compile-fail/warn-ctypes-err-attr.rs +++ b/src/test/compile-fail/lint-ctypes.rs @@ -8,14 +8,19 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// error-pattern:found rust type #[deny(ctypes)]; -mod libc { - #[nolink] - pub extern { - pub fn malloc(size: int) -> *u8; - } +use std::libc; + +#[nolink] +extern { + pub fn bare_type1(size: int); //~ ERROR: found rust type + pub fn bare_type2(size: uint); //~ ERROR: found rust type + pub fn ptr_type1(size: *int); //~ ERROR: found rust type + pub fn ptr_type2(size: *uint); //~ ERROR: found rust type + + pub fn good1(size: *libc::c_int); + pub fn good2(size: *libc::c_uint); } fn main() { diff --git a/src/test/compile-fail/warn-ctypes.rs b/src/test/compile-fail/warn-ctypes.rs deleted file mode 100644 index 28d21bb9429..00000000000 --- a/src/test/compile-fail/warn-ctypes.rs +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2012 The Rust Project Developers. See the COPYRIGHT -// file at the top-level directory of this distribution and at -// http://rust-lang.org/COPYRIGHT. -// -// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or -// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license -// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - -// compile-flags:-D ctypes -// error-pattern:found rust type -mod libc { - #[nolink] - extern { - pub fn malloc(size: int) -> *u8; - } -} - -fn main() { -} |
