aboutsummaryrefslogtreecommitdiff
path: root/src/codegen/c.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2022-02-24 15:52:56 -0500
committerGitHub <noreply@github.com>2022-02-24 15:52:56 -0500
commite06cb31659ff5afd1e0b846fbaa852df2f5a0af4 (patch)
tree18e085201d076dea7320365f47d79ebc00c589eb /src/codegen/c.zig
parent5ab5e2e6731a9f1198df6c53134545ccc6a6bbd3 (diff)
parentcbd5d6c704c03177be90a891fc8fd48e6966487b (diff)
downloadzig-e06cb31659ff5afd1e0b846fbaa852df2f5a0af4.tar.gz
zig-e06cb31659ff5afd1e0b846fbaa852df2f5a0af4.zip
Merge pull request #10982 from Vexu/stage2
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();