summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/codegen/mod.rs2
-rw-r--r--tests/expectations/tests/const_array_fn_arg.rs9
-rw-r--r--tests/headers/const_array_fn_arg.h1
3 files changed, 11 insertions, 1 deletions
diff --git a/src/codegen/mod.rs b/src/codegen/mod.rs
index 99400f7a..d5c38aa8 100644
--- a/src/codegen/mod.rs
+++ b/src/codegen/mod.rs
@@ -2828,7 +2828,7 @@ mod utils {
// [1]: http://c0x.coding-guidelines.com/6.7.5.3.html
let arg_ty = match *arg_ty.canonical_type(ctx).kind() {
TypeKind::Array(t, _) => {
- t.to_rust_ty(ctx).to_ptr(arg_ty.is_const(), ctx.span())
+ t.to_rust_ty(ctx).to_ptr(ctx.resolve_type(t).is_const(), ctx.span())
},
TypeKind::Pointer(inner) => {
let inner = ctx.resolve_item(inner);
diff --git a/tests/expectations/tests/const_array_fn_arg.rs b/tests/expectations/tests/const_array_fn_arg.rs
new file mode 100644
index 00000000..623d28b2
--- /dev/null
+++ b/tests/expectations/tests/const_array_fn_arg.rs
@@ -0,0 +1,9 @@
+/* automatically generated by rust-bindgen */
+
+
+#![allow(non_snake_case)]
+
+
+extern "C" {
+ pub fn f(a: *const ::std::os::raw::c_int);
+}
diff --git a/tests/headers/const_array_fn_arg.h b/tests/headers/const_array_fn_arg.h
new file mode 100644
index 00000000..ebe22861
--- /dev/null
+++ b/tests/headers/const_array_fn_arg.h
@@ -0,0 +1 @@
+void f(const int a[]);