Expand ctypes warnings to warn about *int/*uint
Also ends up fixing one case in libstd
This commit is contained in:
parent
e388a80c23
commit
2cd9d7bc88
6 changed files with 16 additions and 31 deletions
|
@ -741,6 +741,7 @@ fn check_item_ctypes(cx: &Context, it: &ast::item) {
|
|||
_ => ()
|
||||
}
|
||||
}
|
||||
ast::ty_ptr(ref mt) => { check_ty(cx, mt.ty) }
|
||||
_ => ()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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() {
|
|
@ -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() {
|
||||
}
|
Loading…
Add table
Reference in a new issue