aboutsummaryrefslogtreecommitdiff
path: root/src/codegen/c.zig
diff options
context:
space:
mode:
authorVeikka Tuominen <git@vexu.eu>2022-02-24 19:47:42 +0200
committerVeikka Tuominen <git@vexu.eu>2022-02-24 19:48:34 +0200
commitb034c45b2bcb3a28ad260037dfa34c40b6c9313b (patch)
treeef3140c8f3d471791f9adeb7a0befc13808dce57 /src/codegen/c.zig
parent6249a24e81b9b3df3d5ca99b57f22470b9ac486c (diff)
downloadzig-b034c45b2bcb3a28ad260037dfa34c40b6c9313b.tar.gz
zig-b034c45b2bcb3a28ad260037dfa34c40b6c9313b.zip
stage2: implement fieldParentPtr
Diffstat (limited to 'src/codegen/c.zig')
-rw-r--r--src/codegen/c.zig7
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();