diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2022-08-29 14:10:59 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2022-08-29 14:10:59 -0700 |
| commit | de7270028d2b70ceea74c43be943b1b788c797a6 (patch) | |
| tree | 0d9b545a2a9d36c86b79178f797adf5ebcd40d17 /src/codegen/c.zig | |
| parent | 7c9a8ecc2aca7f925e59d282540ef8e2d1ae211e (diff) | |
| parent | e69973beddcd8a42dbc7ebcfb96187e5a6f61b61 (diff) | |
| download | zig-de7270028d2b70ceea74c43be943b1b788c797a6.tar.gz zig-de7270028d2b70ceea74c43be943b1b788c797a6.zip | |
Merge remote-tracking branch 'origin/master' into llvm15
Diffstat (limited to 'src/codegen/c.zig')
| -rw-r--r-- | src/codegen/c.zig | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/codegen/c.zig b/src/codegen/c.zig index 280b7604bf..4a09c09cc9 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -835,7 +835,6 @@ pub const DeclGen = struct { }, .Union => { const union_obj = val.castTag(.@"union").?.data; - const union_ty = ty.cast(Type.Payload.Union).?.data; const layout = ty.unionGetLayout(target); try writer.writeAll("("); @@ -851,7 +850,7 @@ pub const DeclGen = struct { try writer.writeAll(".payload = {"); } - const index = union_ty.tag_ty.enumTagFieldIndex(union_obj.tag, dg.module).?; + const index = ty.unionTagFieldIndex(union_obj.tag, dg.module).?; const field_ty = ty.unionFields().values()[index].ty; const field_name = ty.unionFields().keys()[index]; if (field_ty.hasRuntimeBits()) { @@ -1952,6 +1951,9 @@ fn genBody(f: *Function, body: []const Air.Inst.Index) error{ AnalysisFail, OutO .reduce_optimized, .float_to_int_optimized, => return f.fail("TODO implement optimized float mode", .{}), + + .is_named_enum_value => return f.fail("TODO: C backend: implement is_named_enum_value", .{}), + .error_set_has_value => return f.fail("TODO: C backend: implement error_set_has_value", .{}), // zig fmt: on }; switch (result_value) { @@ -3250,7 +3252,7 @@ fn airIsNull( const ty = f.air.typeOf(un_op); var opt_buf: Type.Payload.ElemType = undefined; - const payload_ty = if (ty.zigTypeTag() == .Pointer) + const payload_ty = if (deref_suffix[0] != 0) ty.childType().optionalChild(&opt_buf) else ty.optionalChild(&opt_buf); |
