mirror of
https://github.com/ziglang/zig.git
synced 2026-02-02 20:53:44 +00:00
CBE: fix compiling for aarch64-windows
These bugs were triggered in the C backend by aarch64-specific code in os/windows.zig. Intentionally not updating zig1.wasm yet because of upcoming changes and since aarch64-windows is not tested on master yet.
This commit is contained in:
parent
f020734347
commit
fc6d7d2799
@ -559,6 +559,7 @@ pub const DeclGen = struct {
|
||||
try writer.writeByte(')');
|
||||
}
|
||||
switch (ptr_val.tag()) {
|
||||
.int_u64, .one => try writer.print("{x}", .{try dg.fmtIntLiteral(Type.usize, ptr_val)}),
|
||||
.decl_ref_mut, .decl_ref, .variable => {
|
||||
const decl_index = switch (ptr_val.tag()) {
|
||||
.decl_ref => ptr_val.castTag(.decl_ref).?.data,
|
||||
@ -640,6 +641,9 @@ pub const DeclGen = struct {
|
||||
};
|
||||
|
||||
if (field_info.ty.hasRuntimeBitsIgnoreComptime()) {
|
||||
// Ensure complete type definition is visible before accessing fields.
|
||||
try dg.renderType(std.io.null_writer, field_ptr.container_ty, .Complete);
|
||||
|
||||
try writer.writeAll("&(");
|
||||
try dg.renderParentPtr(writer, field_ptr.container_ptr, container_ptr_ty);
|
||||
try writer.writeAll(")->");
|
||||
@ -672,6 +676,9 @@ pub const DeclGen = struct {
|
||||
};
|
||||
const container_ptr_ty = Type.initPayload(&container_ptr_ty_pl.base);
|
||||
|
||||
// Ensure complete type definition is visible before accessing fields.
|
||||
try dg.renderType(std.io.null_writer, payload_ptr.container_ty, .Complete);
|
||||
|
||||
try writer.writeAll("&(");
|
||||
try dg.renderParentPtr(writer, payload_ptr.container_ptr, container_ptr_ty);
|
||||
try writer.writeAll(")->payload");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user