diff options
author | Elichai Turkel <elichai.turkel@gmail.com> | 2019-05-20 13:55:12 +0300 |
---|---|---|
committer | Emilio Cobos Álvarez <emilio@crisal.io> | 2019-05-22 13:45:59 +0200 |
commit | c0e1f0b7ed8dfc21f0e931480881179b2079cb54 (patch) | |
tree | d93e21e75ab7c33a8c09c6a5f1e3ef92fb7f583c /src/codegen/mod.rs | |
parent | 36c0157fedd100bafca61de890b0124c6b771931 (diff) |
Added array pointers codegen
Diffstat (limited to 'src/codegen/mod.rs')
-rw-r--r-- | src/codegen/mod.rs | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/codegen/mod.rs b/src/codegen/mod.rs index 3690624f..13c5dfc1 100644 --- a/src/codegen/mod.rs +++ b/src/codegen/mod.rs @@ -3908,9 +3908,13 @@ 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_or_opaque(ctx, &()) - .to_ptr(ctx.resolve_type(t).is_const()) - }, + let stream = if ctx.options().array_pointers_in_arguments { + (*arg_ty).to_rust_ty_or_opaque(ctx, &arg_item) + } else { + t.to_rust_ty_or_opaque(ctx, &()) + }; + stream.to_ptr(ctx.resolve_type(t).is_const()) + } TypeKind::Pointer(inner) => { let inner = ctx.resolve_item(inner); let inner_ty = inner.expect_type(); |