| author | |
| committer | |
| log | 3d1732ef6c8ebc7edf10485f61b4ec905303cd8a |
| tree | 04f6cb679eebd178db1ca0eba2652f99c102fe73 |
| parent | 7a99d63c764f3d5d92370c90f932b1bf156269f6 |
We prefer `struct typename`. If a typedef is required, this must be done
manually after generation.2 files changed, 12 insertions(+), 5 deletions(-)
src/codegen.cpp+1-5| ... | ... | @@ -6592,6 +6592,7 @@ static void get_c_type(CodeGen *g, GenH *gen_h, TypeTableEntry *type_entry, Buf |
| 6592 | 6592 | } |
| 6593 | 6593 | } |
| 6594 | 6594 | case TypeTableEntryIdStruct: |
| 6595 | case TypeTableEntryIdOpaque: | |
| 6595 | 6596 | { |
| 6596 | 6597 | buf_init_from_str(out_buf, "struct "); |
| 6597 | 6598 | buf_append_buf(out_buf, &type_entry->name); |
| ... | ... | @@ -6609,11 +6610,6 @@ static void get_c_type(CodeGen *g, GenH *gen_h, TypeTableEntry *type_entry, Buf |
| 6609 | 6610 | buf_append_buf(out_buf, &type_entry->name); |
| 6610 | 6611 | return; |
| 6611 | 6612 | } |
| 6612 | case TypeTableEntryIdOpaque: | |
| 6613 | { | |
| 6614 | buf_init_from_buf(out_buf, &type_entry->name); | |
| 6615 | return; | |
| 6616 | } | |
| 6617 | 6613 | case TypeTableEntryIdArray: |
| 6618 | 6614 | { |
| 6619 | 6615 | TypeTableEntryArray *array_data = &type_entry->data.array; |
test/gen_h.zig+11| ... | ... | @@ -51,6 +51,16 @@ pub fn addCases(cases: &tests.GenHContext) void { |
| 51 | 51 | \\ |
| 52 | 52 | ); |
| 53 | 53 | |
| 54 | cases.add("declare opaque type", | |
| 55 | \\export const Foo = @OpaqueType(); | |
| 56 | \\ | |
| 57 | \\export fn entry(foo: ?&Foo) void { } | |
| 58 | , | |
| 59 | \\struct Foo; | |
| 60 | \\ | |
| 61 | \\TEST_EXPORT void entry(struct Foo * foo); | |
| 62 | ); | |
| 63 | ||
| 54 | 64 | cases.add("array field-type", |
| 55 | 65 | \\const Foo = extern struct { |
| 56 | 66 | \\ A: [2]i32, |
| ... | ... | @@ -66,4 +76,5 @@ pub fn addCases(cases: &tests.GenHContext) void { |
| 66 | 76 | \\TEST_EXPORT void entry(struct Foo foo, uint8_t bar[]); |
| 67 | 77 | \\ |
| 68 | 78 | ); |
| 79 | ||
| 69 | 80 | } |