diff options
| author | Veikka Tuominen <git@vexu.eu> | 2022-02-24 19:47:42 +0200 |
|---|---|---|
| committer | Veikka Tuominen <git@vexu.eu> | 2022-02-24 19:48:34 +0200 |
| commit | b034c45b2bcb3a28ad260037dfa34c40b6c9313b (patch) | |
| tree | ef3140c8f3d471791f9adeb7a0befc13808dce57 /src/codegen/c.zig | |
| parent | 6249a24e81b9b3df3d5ca99b57f22470b9ac486c (diff) | |
| download | zig-b034c45b2bcb3a28ad260037dfa34c40b6c9313b.tar.gz zig-b034c45b2bcb3a28ad260037dfa34c40b6c9313b.zip | |
stage2: implement fieldParentPtr
Diffstat (limited to 'src/codegen/c.zig')
| -rw-r--r-- | src/codegen/c.zig | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/codegen/c.zig b/src/codegen/c.zig index 48ca64d176..2a0751a202 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -1734,6 +1734,8 @@ fn genBody(f: *Function, body: []const Air.Inst.Index) error{ AnalysisFail, OutO .struct_field_ptr_index_2 => try airStructFieldPtrIndex(f, inst, 2), .struct_field_ptr_index_3 => try airStructFieldPtrIndex(f, inst, 3), + .field_parent_ptr => try airFieldParentPtr(f, inst), + .struct_field_val => try airStructFieldVal(f, inst), .slice_ptr => try airSliceField(f, inst, ".ptr;\n"), .slice_len => try airSliceField(f, inst, ".len;\n"), @@ -3026,6 +3028,11 @@ fn airStructFieldPtrIndex(f: *Function, inst: Air.Inst.Index, index: u8) !CValue return structFieldPtr(f, inst, struct_ptr_ty, struct_ptr, index); } +fn airFieldParentPtr(f: *Function, inst: Air.Inst.Index) !CValue { + _ = inst; + return f.fail("TODO: C backend: implement airFieldParentPtr", .{}); +} + fn structFieldPtr(f: *Function, inst: Air.Inst.Index, struct_ptr_ty: Type, struct_ptr: CValue, index: u32) !CValue { const writer = f.object.writer(); const struct_ty = struct_ptr_ty.elemType(); |
