about summary refs log tree commit diff
path: root/src/rt
diff options
context:
space:
mode:
authorklutzy <klutzytheklutzy@gmail.com>2014-03-09 15:42:22 +0900
committerklutzy <klutzytheklutzy@gmail.com>2014-03-19 16:41:51 +0900
commit2d31bcaf16453b713d769178c5f6738eb5efbd9d (patch)
tree7def05b46f235f808c79ea0fe50788509b102d05 /src/rt
parent7437995b3e68d3920e275ba5900b96a2ed254c66 (diff)
rustc: Fix x86 ffi for empty struct arguments
Diffstat (limited to 'src/rt')
-rw-r--r--src/rt/rust_test_helpers.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/rt/rust_test_helpers.c b/src/rt/rust_test_helpers.c
index ee328e6cdb5..4d5b95155ca 100644
--- a/src/rt/rust_test_helpers.c
+++ b/src/rt/rust_test_helpers.c
@@ -126,6 +126,29 @@ rust_dbg_extern_identity_TwoDoubles(struct TwoDoubles u) {
     return u;
 }
 
+struct ManyInts {
+    int8_t arg1;
+    int16_t arg2;
+    int32_t arg3;
+    int16_t arg4;
+    int8_t arg5;
+    struct TwoU8s arg6;
+};
+
+struct Empty {
+};
+
+void
+rust_dbg_extern_empty_struct(struct ManyInts v1, struct Empty e, struct ManyInts v2) {
+    assert(v1.arg1 == v2.arg1 + 1);
+    assert(v1.arg2 == v2.arg2 + 1);
+    assert(v1.arg3 == v2.arg3 + 1);
+    assert(v1.arg4 == v2.arg4 + 1);
+    assert(v1.arg5 == v2.arg5 + 1);
+    assert(v1.arg6.one == v2.arg6.one + 1);
+    assert(v1.arg6.two == v2.arg6.two + 1);
+}
+
 intptr_t
 rust_get_test_int() {
   return 1;