summaryrefslogtreecommitdiff
path: root/tests/headers/class_1_0.hpp
diff options
context:
space:
mode:
authorTravis Finkenauer <tmfinken@gmail.com>2017-08-13 13:12:21 -0700
committerTravis Finkenauer <tmfinken@gmail.com>2017-08-13 13:12:21 -0700
commite7fa2895582435b59dfb1ac960167b0876f8da55 (patch)
tree321361d58ee698eea089eed18fbd62341345cf13 /tests/headers/class_1_0.hpp
parentfdee9f1c83f8bf7cc554a59c2f66d9cbbb09eda4 (diff)
Re-add --rust-target to replace --unstable-rust
Instead of specifying whether or not to use stable, specify the Rust release to support (one of several stable/beta releases or nightly). The `--unstable-rust` option is still accepted and implies nightly. The definitions of `RustTarget` and `RustFeatures` are created with macros. For each test that uses unions, there is a version that uses the latest stable and 1.0. This also fixes the bug where unions were generated with non-Copy fields.
Diffstat (limited to 'tests/headers/class_1_0.hpp')
-rw-r--r--tests/headers/class_1_0.hpp58
1 files changed, 58 insertions, 0 deletions
diff --git a/tests/headers/class_1_0.hpp b/tests/headers/class_1_0.hpp
new file mode 100644
index 00000000..9f4795b6
--- /dev/null
+++ b/tests/headers/class_1_0.hpp
@@ -0,0 +1,58 @@
+// bindgen-flags: --rust-target 1.0 --with-derive-hash
+
+class C {
+ int a;
+ // More than rust limits (32)
+ char big_array[33];
+};
+
+class C_with_zero_length_array {
+ int a;
+ // More than rust limits (32)
+ char big_array[33];
+ char zero_length_array[0];
+};
+
+class C_with_incomplete_array {
+ int a;
+ // More than rust limits (32)
+ char big_array[33];
+ char incomplete_array[];
+};
+
+class C_with_zero_length_array_and_incomplete_array {
+ int a;
+ // More than rust limits (32)
+ char big_array[33];
+ char zero_length_array[0];
+ char incomplete_array[];
+};
+
+class WithDtor {
+ int b;
+
+ ~WithDtor() {}
+};
+
+class IncompleteArrayNonCopiable {
+ void* whatever;
+ C incomplete_array[];
+};
+
+union Union {
+ float d;
+ int i;
+};
+
+class WithUnion {
+ Union data;
+};
+
+class RealAbstractionWithTonsOfMethods {
+ void foo();
+public:
+ void bar() const;
+ void bar();
+ void bar(int foo);
+ static void sta();
+};