diff --git a/src/codegen/mod.rs b/src/codegen/mod.rs index 99400f7a16..d5c38aa8ac 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 0000000000..623d28b202 --- /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 0000000000..ebe2286137 --- /dev/null +++ b/tests/headers/const_array_fn_arg.h @@ -0,0 +1 @@ +void f(const int a[]);