summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOliver Geller <oliver.geller@rochester.edu>2017-09-18 23:55:27 -0400
committerOliver Geller <oliver.geller@rochester.edu>2017-09-19 22:41:10 -0400
commit4111a46da52ebb4ada98a6c2277e6ac00eae06cc (patch)
treef0f5be0805ca3198d9080c3be5a48f69ad9fded0
parent95879ddfbf2abe335118fcbb9308753bb092a21c (diff)
Add large bitfield derive test and fix missing limit
-rw-r--r--src/ir/analysis/derive_copy.rs1
-rw-r--r--tests/expectations/tests/bitfield_large_overflow.rs21
-rw-r--r--tests/headers/bitfield_large_overflow.hpp5
3 files changed, 27 insertions, 0 deletions
diff --git a/src/ir/analysis/derive_copy.rs b/src/ir/analysis/derive_copy.rs
index fa9cd6e0..264d227a 100644
--- a/src/ir/analysis/derive_copy.rs
+++ b/src/ir/analysis/derive_copy.rs
@@ -9,6 +9,7 @@ use ir::derive::CanTriviallyDeriveCopy;
use ir::item::IsOpaque;
use ir::template::TemplateParameters;
use ir::traversal::EdgeKind;
+use ir::ty::RUST_DERIVE_IN_ARRAY_LIMIT;
use ir::ty::TypeKind;
use std::collections::HashMap;
use std::collections::HashSet;
diff --git a/tests/expectations/tests/bitfield_large_overflow.rs b/tests/expectations/tests/bitfield_large_overflow.rs
new file mode 100644
index 00000000..523570e4
--- /dev/null
+++ b/tests/expectations/tests/bitfield_large_overflow.rs
@@ -0,0 +1,21 @@
+/* automatically generated by rust-bindgen */
+
+
+#![allow(dead_code, non_snake_case, non_camel_case_types, non_upper_case_globals)]
+
+
+#[repr(C)]
+pub struct _bindgen_ty_1 {
+ pub _bitfield_1: [u8; 128usize],
+ pub __bindgen_align: [u64; 0usize],
+}
+impl Default for _bindgen_ty_1 {
+ fn default() -> Self {
+ unsafe { ::std::mem::zeroed() }
+ }
+}
+extern "C" {
+ #[link_name = "a"]
+ pub static mut a: _bindgen_ty_1;
+}
+
diff --git a/tests/headers/bitfield_large_overflow.hpp b/tests/headers/bitfield_large_overflow.hpp
new file mode 100644
index 00000000..227829b8
--- /dev/null
+++ b/tests/headers/bitfield_large_overflow.hpp
@@ -0,0 +1,5 @@
+// bindgen-flags: --no-layout-tests
+
+struct {
+ unsigned : 632;
+} a;