aboutsummaryrefslogtreecommitdiff
path: root/src/codegen/c.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2022-12-19 15:47:31 -0500
committerGitHub <noreply@github.com>2022-12-19 15:47:31 -0500
commit0fb53bd245e258f69654119e5a1913d6d42dc181 (patch)
treeb2fe08ac32aa43c42cf05d29985c326d20b57994 /src/codegen/c.zig
parent3542dbf0ea5bc1ddb1c5e1c856745dc07e6c0a18 (diff)
parent0768115b01f01ab1c75da3e42ffcdc99078eaad2 (diff)
downloadzig-0fb53bd245e258f69654119e5a1913d6d42dc181.tar.gz
zig-0fb53bd245e258f69654119e5a1913d6d42dc181.zip
Merge pull request #14000 from jacobly0/zero-bit-fields
codegen: fix taking the address of a field in a zero-bit struct
Diffstat (limited to 'src/codegen/c.zig')
-rw-r--r--src/codegen/c.zig6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/codegen/c.zig b/src/codegen/c.zig
index a7a2b2cf2a..2cd24f69b3 100644
--- a/src/codegen/c.zig
+++ b/src/codegen/c.zig
@@ -653,7 +653,7 @@ pub const DeclGen = struct {
}
try writer.print("{ }", .{fmtIdent(field_info.name)});
} else {
- try dg.renderParentPtr(writer, field_ptr.container_ptr, field_info.ty);
+ try dg.renderParentPtr(writer, field_ptr.container_ptr, container_ptr_ty);
}
},
.elem_ptr => {
@@ -5131,7 +5131,9 @@ fn structFieldPtr(f: *Function, inst: Air.Inst.Index, struct_ptr_ty: Type, struc
.begin, .end => {
try writer.writeByte('(');
try f.writeCValue(writer, struct_ptr, .Other);
- try writer.print(")[{}]", .{@boolToInt(field_loc == .end)});
+ try writer.print(")[{}]", .{
+ @boolToInt(field_loc == .end and struct_ty.hasRuntimeBitsIgnoreComptime()),
+ });
},
.field => |field| if (extra_name != .none) {
try f.writeCValueDerefMember(writer, struct_ptr, extra_name);