Skip to content

Commit 387d12b

Browse files
Ensure that all values in FnAttribute::NonNull are positive
1 parent d8e59cb commit 387d12b

File tree

3 files changed

+10
-8
lines changed

3 files changed

+10
-8
lines changed

gccjit_sys/src/lib.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
#![allow(non_camel_case_types)]
22

3-
// Re-export libc to use the same version in `gccjit-rs`.
4-
pub extern crate libc;
3+
extern crate libc;
54

65
use libc::{c_char, c_int, FILE, c_void, c_long, c_double, c_ulong, size_t, ssize_t};
76

src/function.rs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ use std::fmt;
33
use std::ptr;
44

55
use gccjit_sys;
6-
use gccjit_sys::libc::c_int;
76

87
use block::Block;
98
use block;
@@ -62,7 +61,7 @@ pub enum FnAttribute<'a> {
6261
Pure,
6362
Const,
6463
Weak,
65-
NonNull(Vec<c_int>),
64+
NonNull(Vec<std::ffi::c_int>),
6665
}
6766

6867
#[cfg(feature="master")]
@@ -80,7 +79,13 @@ impl<'a> FnAttribute<'a> {
8079
| FnAttribute::Pure
8180
| FnAttribute::Const
8281
| FnAttribute::Weak => AttributeValue::None,
83-
FnAttribute::NonNull(ref value) => AttributeValue::IntArray(value),
82+
FnAttribute::NonNull(ref value) => {
83+
debug_assert!(
84+
value.iter().all(|attr| *attr > 0),
85+
"all values must be > 0 for non-null attribute",
86+
);
87+
AttributeValue::IntArray(value)
88+
}
8489
}
8590
}
8691

src/lvalue.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ use field;
1212
use location::Location;
1313
use location;
1414

15-
use gccjit_sys::libc::c_int;
16-
1715
#[cfg(feature="master")]
1816
#[derive(Clone, Copy, Debug)]
1917
pub enum Visibility {
@@ -41,7 +39,7 @@ pub enum AttributeValue<'a> {
4139
Int(i32),
4240
None,
4341
String(&'a str),
44-
IntArray(&'a [c_int]),
42+
IntArray(&'a [std::ffi::c_int]),
4543
}
4644

4745
#[cfg(feature="master")]

0 commit comments

Comments
 (0)