mirror of
https://github.com/ziglang/zig.git
synced 2026-01-20 22:35:24 +00:00
Fix OpqaueType usage in exported c functions
We prefer `struct typename`. If a typedef is required, this must be done manually after generation.
This commit is contained in:
parent
7a99d63c76
commit
3d1732ef6c
@ -6592,6 +6592,7 @@ static void get_c_type(CodeGen *g, GenH *gen_h, TypeTableEntry *type_entry, Buf
|
||||
}
|
||||
}
|
||||
case TypeTableEntryIdStruct:
|
||||
case TypeTableEntryIdOpaque:
|
||||
{
|
||||
buf_init_from_str(out_buf, "struct ");
|
||||
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
|
||||
buf_append_buf(out_buf, &type_entry->name);
|
||||
return;
|
||||
}
|
||||
case TypeTableEntryIdOpaque:
|
||||
{
|
||||
buf_init_from_buf(out_buf, &type_entry->name);
|
||||
return;
|
||||
}
|
||||
case TypeTableEntryIdArray:
|
||||
{
|
||||
TypeTableEntryArray *array_data = &type_entry->data.array;
|
||||
|
||||
@ -51,6 +51,16 @@ pub fn addCases(cases: &tests.GenHContext) void {
|
||||
\\
|
||||
);
|
||||
|
||||
cases.add("declare opaque type",
|
||||
\\export const Foo = @OpaqueType();
|
||||
\\
|
||||
\\export fn entry(foo: ?&Foo) void { }
|
||||
,
|
||||
\\struct Foo;
|
||||
\\
|
||||
\\TEST_EXPORT void entry(struct Foo * foo);
|
||||
);
|
||||
|
||||
cases.add("array field-type",
|
||||
\\const Foo = extern struct {
|
||||
\\ A: [2]i32,
|
||||
@ -66,4 +76,5 @@ pub fn addCases(cases: &tests.GenHContext) void {
|
||||
\\TEST_EXPORT void entry(struct Foo foo, uint8_t bar[]);
|
||||
\\
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user