From 6f10b11658c002b26341bff10e1dd522f2465b5a Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Thu, 28 Mar 2024 20:14:16 -0400 Subject: [PATCH 1/9] cbe: fix bugs revealed by an upcoming commit Closes #18023 --- lib/zig.h | 9 +- src/Compilation.zig | 3 +- src/codegen/c.zig | 2459 +++++++++++++++++++++------------------- src/codegen/c/type.zig | 298 ++--- src/link/C.zig | 114 +- 5 files changed, 1497 insertions(+), 1386 deletions(-) diff --git a/lib/zig.h b/lib/zig.h index 7a1c69575a24..f2ae283bafb2 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -165,11 +165,14 @@ typedef char bool; #endif #if zig_has_attribute(section) -#define zig_linksection(name, def, ...) def __attribute__((section(name))) +#define zig_linksection(name) __attribute__((section(name))) +#define zig_linksection_fn zig_linksection #elif _MSC_VER -#define zig_linksection(name, def, ...) __pragma(section(name, __VA_ARGS__)) __declspec(allocate(name)) def +#define zig_linksection(name) __pragma(section(name, read, write)) __declspec(allocate(name)) +#define zig_linksection_fn(name) __pragma(section(name, read, execute)) __declspec(code_seg(name)) #else -#define zig_linksection(name, def, ...) zig_linksection_unavailable +#define zig_linksection(name) zig_linksection_unavailable +#define zig_linksection_fn zig_linksection #endif #if zig_has_builtin(unreachable) || defined(zig_gnuc) diff --git a/src/Compilation.zig b/src/Compilation.zig index 5a6e02d400d4..442c1075e076 100644 --- a/src/Compilation.zig +++ b/src/Compilation.zig @@ -3451,7 +3451,8 @@ fn processOneJob(comp: *Compilation, job: Job, prog_node: *std.Progress.Node) !v var dg: c_codegen.DeclGen = .{ .gpa = gpa, - .module = module, + .zcu = module, + .mod = module.namespacePtr(decl.src_namespace).file_scope.mod, .error_msg = null, .pass = .{ .decl = decl_index }, .is_naked_fn = false, diff --git a/src/codegen/c.zig b/src/codegen/c.zig index 7ae5c87ee540..246f4e1e0feb 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -5,12 +5,13 @@ const mem = std.mem; const log = std.log.scoped(.c); const link = @import("../link.zig"); -const Module = @import("../Module.zig"); +const Zcu = @import("../Module.zig"); +const Module = @import("../Package/Module.zig"); const Compilation = @import("../Compilation.zig"); const Value = @import("../Value.zig"); const Type = @import("../type.zig").Type; const C = link.File.C; -const Decl = Module.Decl; +const Decl = Zcu.Decl; const trace = @import("../tracy.zig").trace; const LazySrcLoc = std.zig.LazySrcLoc; const Air = @import("../Air.zig"); @@ -30,7 +31,7 @@ pub const CValue = union(enum) { /// Address of a local. local_ref: LocalIndex, /// A constant instruction, to be rendered inline. - constant: InternPool.Index, + constant: Value, /// Index into the parameters arg: usize, /// The array field of a parameter @@ -72,13 +73,15 @@ pub const LazyFnValue = struct { }; pub const LazyFnMap = std.AutoArrayHashMapUnmanaged(LazyFnKey, LazyFnValue); -const LoopDepth = u16; const Local = struct { cty_idx: CType.Index, - alignas: CType.AlignAs, + flags: packed struct(u32) { + alignas: CType.AlignAs, + _: u20 = undefined, + }, pub fn getType(local: Local) LocalType { - return .{ .cty_idx = local.cty_idx, .alignas = local.alignas }; + return .{ .cty_idx = local.cty_idx, .alignas = local.flags.alignas }; } }; @@ -300,11 +303,11 @@ pub const Function = struct { const gop = try f.value_map.getOrPut(ref); if (gop.found_existing) return gop.value_ptr.*; - const mod = f.object.dg.module; - const val = (try f.air.value(ref, mod)).?; + const zcu = f.object.dg.zcu; + const val = (try f.air.value(ref, zcu)).?; const ty = f.typeOf(ref); - const result: CValue = if (lowersToArray(ty, mod)) result: { + const result: CValue = if (lowersToArray(ty, zcu)) result: { const writer = f.object.codeHeaderWriter(); const alignment: Alignment = .none; const decl_c_value = try f.allocLocalValue(ty, alignment); @@ -313,17 +316,17 @@ pub const Function = struct { try writer.writeAll("static "); try f.object.dg.renderTypeAndName(writer, ty, decl_c_value, Const, alignment, .complete); try writer.writeAll(" = "); - try f.object.dg.renderValue(writer, ty, val, .StaticInitializer); + try f.object.dg.renderValue(writer, val, .StaticInitializer); try writer.writeAll(";\n "); break :result decl_c_value; - } else .{ .constant = val.toIntern() }; + } else .{ .constant = val }; gop.value_ptr.* = result; return result; } fn wantSafety(f: *Function) bool { - return switch (f.object.dg.module.optimizeMode()) { + return switch (f.object.dg.zcu.optimizeMode()) { .Debug, .ReleaseSafe => true, .ReleaseFast, .ReleaseSmall => false, }; @@ -333,11 +336,13 @@ pub const Function = struct { /// those which go into `allocs`. This function does not add the resulting local into `allocs`; /// that responsibility lies with the caller. fn allocLocalValue(f: *Function, ty: Type, alignment: Alignment) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const gpa = f.object.dg.gpa; try f.locals.append(gpa, .{ .cty_idx = try f.typeToIndex(ty, .complete), - .alignas = CType.AlignAs.init(alignment, ty.abiAlignment(mod)), + .flags = .{ + .alignas = CType.AlignAs.init(alignment, ty.abiAlignment(zcu)), + }, }); return .{ .new_local = @intCast(f.locals.items.len - 1) }; } @@ -355,79 +360,100 @@ pub const Function = struct { /// Only allocates the local; does not print anything. Will attempt to re-use locals, so should /// not be used for persistent locals (i.e. those in `allocs`). fn allocAlignedLocal(f: *Function, ty: Type, _: CQualifiers, alignment: Alignment) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; if (f.free_locals_map.getPtr(.{ .cty_idx = try f.typeToIndex(ty, .complete), - .alignas = CType.AlignAs.init(alignment, ty.abiAlignment(mod)), + .alignas = CType.AlignAs.init(alignment, ty.abiAlignment(zcu)), })) |locals_list| { if (locals_list.popOrNull()) |local_entry| { return .{ .new_local = local_entry.key }; } } - return try f.allocLocalValue(ty, alignment); + return f.allocLocalValue(ty, alignment); } fn writeCValue(f: *Function, w: anytype, c_value: CValue, location: ValueRenderLocation) !void { switch (c_value) { - .constant => |val| try f.object.dg.renderValue( - w, - Type.fromInterned(f.object.dg.module.intern_pool.typeOf(val)), - Value.fromInterned(val), - location, - ), - .undef => |ty| try f.object.dg.renderValue(w, ty, Value.undef, location), + .none => unreachable, + .new_local, .local => |i| try w.print("t{d}", .{i}), + .local_ref => |i| { + const local = &f.locals.items[i]; + if (local.flags.alignas.abiOrder().compare(.lt)) { + const zcu = f.object.dg.zcu; + const pointee_ty = try zcu.intType(.unsigned, @min( + local.flags.alignas.@"align".toByteUnitsOptional().?, + f.object.dg.mod.resolved_target.result.maxIntAlignment(), + ) * 8); + const ptr_ty = try zcu.singleMutPtrType(pointee_ty); + + try w.writeByte('('); + try f.renderType(w, ptr_ty); + try w.writeByte(')'); + } + try w.print("&t{d}", .{i}); + }, + .constant => |val| try f.object.dg.renderValue(w, val, location), + .arg => |i| try w.print("a{d}", .{i}), + .arg_array => |i| try f.writeCValueMember(w, .{ .arg = i }, .{ .identifier = "array" }), + .undef => |ty| try f.object.dg.renderUndefValue(w, ty, location), else => try f.object.dg.writeCValue(w, c_value), } } fn writeCValueDeref(f: *Function, w: anytype, c_value: CValue) !void { switch (c_value) { - .constant => |val| { + .none => unreachable, + .new_local, .local, .constant => { try w.writeAll("(*"); - try f.object.dg.renderValue( - w, - Type.fromInterned(f.object.dg.module.intern_pool.typeOf(val)), - Value.fromInterned(val), - .Other, - ); + try f.writeCValue(w, c_value, .Other); + try w.writeByte(')'); + }, + .local_ref => |i| try w.print("t{d}", .{i}), + .arg => |i| try w.print("(*a{d})", .{i}), + .arg_array => |i| { + try w.writeAll("(*"); + try f.writeCValueMember(w, .{ .arg = i }, .{ .identifier = "array" }); try w.writeByte(')'); }, else => try f.object.dg.writeCValueDeref(w, c_value), } } - fn writeCValueMember(f: *Function, w: anytype, c_value: CValue, member: CValue) !void { + fn writeCValueMember( + f: *Function, + writer: anytype, + c_value: CValue, + member: CValue, + ) error{ OutOfMemory, AnalysisFail }!void { switch (c_value) { - .constant => |val| { - try f.object.dg.renderValue( - w, - Type.fromInterned(f.object.dg.module.intern_pool.typeOf(val)), - Value.fromInterned(val), - .Other, - ); - try w.writeByte('.'); - try f.writeCValue(w, member, .Other); + .new_local, .local, .local_ref, .constant, .arg, .arg_array => { + try f.writeCValue(writer, c_value, .Other); + try writer.writeByte('.'); + try f.writeCValue(writer, member, .Other); }, - else => try f.object.dg.writeCValueMember(w, c_value, member), + else => return f.object.dg.writeCValueMember(writer, c_value, member), } } - fn writeCValueDerefMember(f: *Function, w: anytype, c_value: CValue, member: CValue) !void { + fn writeCValueDerefMember(f: *Function, writer: anytype, c_value: CValue, member: CValue) !void { switch (c_value) { - .constant => |val| { - try w.writeByte('('); - try f.object.dg.renderValue( - w, - Type.fromInterned(f.object.dg.module.intern_pool.typeOf(val)), - Value.fromInterned(val), - .Other, - ); - try w.writeAll(")->"); - try f.writeCValue(w, member, .Other); + .new_local, .local, .arg, .arg_array => { + try f.writeCValue(writer, c_value, .Other); + try writer.writeAll("->"); + }, + .constant => { + try writer.writeByte('('); + try f.writeCValue(writer, c_value, .Other); + try writer.writeAll(")->"); + }, + .local_ref => { + try f.writeCValueDeref(writer, c_value); + try writer.writeByte('.'); }, - else => try f.object.dg.writeCValueDerefMember(w, c_value, member), + else => return f.object.dg.writeCValueDerefMember(writer, c_value, member), } + try f.writeCValue(writer, member, .Other); } fn fail(f: *Function, comptime format: []const u8, args: anytype) error{ AnalysisFail, OutOfMemory } { @@ -462,8 +488,8 @@ pub const Function = struct { return f.object.dg.renderIntCast(w, dest_ty, .{ .c_value = .{ .f = f, .value = src, .v = v } }, src_ty, location); } - fn fmtIntLiteral(f: *Function, ty: Type, val: Value) !std.fmt.Formatter(formatIntLiteral) { - return f.object.dg.fmtIntLiteral(ty, val, .Other); + fn fmtIntLiteral(f: *Function, val: Value) !std.fmt.Formatter(formatIntLiteral) { + return f.object.dg.fmtIntLiteral(val, .Other); } fn getLazyFnName(f: *Function, key: LazyFnKey, data: LazyFnValue.Data) ![]const u8 { @@ -475,7 +501,7 @@ pub const Function = struct { var promoted = f.object.dg.ctypes.promote(gpa); defer f.object.dg.ctypes.demote(promoted); const arena = promoted.arena.allocator(); - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; gop.value_ptr.* = .{ .fn_name = switch (key) { @@ -484,7 +510,7 @@ pub const Function = struct { .never_inline, => |owner_decl| try std.fmt.allocPrint(arena, "zig_{s}_{}__{d}", .{ @tagName(key), - fmtIdent(mod.intern_pool.stringToSlice(mod.declPtr(owner_decl).name)), + fmtIdent(zcu.intern_pool.stringToSlice(zcu.declPtr(owner_decl).name)), @intFromEnum(owner_decl), }), }, @@ -510,17 +536,17 @@ pub const Function = struct { } fn typeOf(f: *Function, inst: Air.Inst.Ref) Type { - const mod = f.object.dg.module; - return f.air.typeOf(inst, &mod.intern_pool); + const zcu = f.object.dg.zcu; + return f.air.typeOf(inst, &zcu.intern_pool); } fn typeOfIndex(f: *Function, inst: Air.Inst.Index) Type { - const mod = f.object.dg.module; - return f.air.typeOfIndex(inst, &mod.intern_pool); + const zcu = f.object.dg.zcu; + return f.air.typeOfIndex(inst, &zcu.intern_pool); } }; -/// This data is available when outputting .c code for a `Module`. +/// This data is available when outputting .c code for a `Zcu`. /// It is not available when generating .h file. pub const Object = struct { dg: DeclGen, @@ -542,12 +568,13 @@ pub const Object = struct { /// This data is available both when outputting .c code and when outputting an .h file. pub const DeclGen = struct { gpa: mem.Allocator, - module: *Module, + zcu: *Zcu, + mod: *Module, pass: Pass, is_naked_fn: bool, /// This is a borrowed reference from `link.C`. fwd_decl: std.ArrayList(u8), - error_msg: ?*Module.ErrorMsg, + error_msg: ?*Zcu.ErrorMsg, ctypes: CType.Store, /// Keeps track of anonymous decls that need to be rendered before this /// (named) Decl in the output C code. @@ -566,75 +593,70 @@ pub const DeclGen = struct { fn fail(dg: *DeclGen, comptime format: []const u8, args: anytype) error{ AnalysisFail, OutOfMemory } { @setCold(true); - const mod = dg.module; + const zcu = dg.zcu; const decl_index = dg.pass.decl; - const decl = mod.declPtr(decl_index); - const src_loc = decl.srcLoc(mod); - dg.error_msg = try Module.ErrorMsg.create(dg.gpa, src_loc, format, args); + const decl = zcu.declPtr(decl_index); + const src_loc = decl.srcLoc(zcu); + dg.error_msg = try Zcu.ErrorMsg.create(dg.gpa, src_loc, format, args); return error.AnalysisFail; } fn renderAnonDeclValue( dg: *DeclGen, writer: anytype, - ty: Type, ptr_val: Value, anon_decl: InternPool.Key.Ptr.Addr.AnonDecl, location: ValueRenderLocation, ) error{ OutOfMemory, AnalysisFail }!void { - const mod = dg.module; - const ip = &mod.intern_pool; - const decl_val = anon_decl.val; - const decl_ty = Type.fromInterned(ip.typeOf(decl_val)); + const zcu = dg.zcu; + const ip = &zcu.intern_pool; + const decl_val = Value.fromInterned(anon_decl.val); + const decl_ty = decl_val.typeOf(zcu); // Render an undefined pointer if we have a pointer to a zero-bit or comptime type. - if (ty.isPtrAtRuntime(mod) and !decl_ty.isFnOrHasRuntimeBits(mod)) { - return dg.writeCValue(writer, .{ .undef = ty }); + const ptr_ty = ptr_val.typeOf(zcu); + if (ptr_ty.isPtrAtRuntime(zcu) and !decl_ty.isFnOrHasRuntimeBits(zcu)) { + return dg.writeCValue(writer, .{ .undef = ptr_ty }); } // Chase function values in order to be able to reference the original function. - if (Value.fromInterned(decl_val).getFunction(mod)) |func| { - _ = func; - _ = ptr_val; - _ = location; - @panic("TODO"); - } - if (Value.fromInterned(decl_val).getExternFunc(mod)) |extern_func| { - _ = extern_func; - _ = ptr_val; - _ = location; - @panic("TODO"); - } + if (decl_val.getFunction(zcu)) |func| + return dg.renderDeclValue(writer, ptr_val, func.owner_decl, location); + if (decl_val.getExternFunc(zcu)) |extern_func| + return dg.renderDeclValue(writer, ptr_val, extern_func.decl, location); - assert(Value.fromInterned(decl_val).getVariable(mod) == null); + assert(decl_val.getVariable(zcu) == null); // We shouldn't cast C function pointers as this is UB (when you call // them). The analysis until now should ensure that the C function // pointers are compatible. If they are not, then there is a bug // somewhere and we should let the C compiler tell us about it. - const need_typecast = if (ty.castPtrToFn(mod)) |_| false else !ty.childType(mod).eql(decl_ty, mod); - if (need_typecast) { + const child_cty = (try dg.typeToCType(ptr_ty, .complete)).cast(CType.Payload.Child).?.data; + const decl_cty = try dg.typeToIndex(decl_ty, .complete); + const need_cast = child_cty != decl_cty and + (dg.indexToCType(child_cty).tag() != .function or dg.indexToCType(decl_cty).tag() != .function); + if (need_cast) { try writer.writeAll("(("); - try dg.renderType(writer, ty); + try dg.renderType(writer, ptr_ty); try writer.writeByte(')'); } try writer.writeByte('&'); try renderAnonDeclName(writer, decl_val); - if (need_typecast) try writer.writeByte(')'); + if (need_cast) try writer.writeByte(')'); // Indicate that the anon decl should be rendered to the output so that // our reference above is not undefined. const ptr_type = ip.indexToKey(anon_decl.orig_ty).ptr_type; - const gop = try dg.anon_decl_deps.getOrPut(dg.gpa, decl_val); + const gop = try dg.anon_decl_deps.getOrPut(dg.gpa, anon_decl.val); if (!gop.found_existing) gop.value_ptr.* = .{}; // Only insert an alignment entry if the alignment is greater than ABI // alignment. If there is already an entry, keep the greater alignment. const explicit_alignment = ptr_type.flags.alignment; if (explicit_alignment != .none) { - const abi_alignment = Type.fromInterned(ptr_type.child).abiAlignment(mod); + const abi_alignment = Type.fromInterned(ptr_type.child).abiAlignment(zcu); if (explicit_alignment.compareStrict(.gt, abi_alignment)) { - const aligned_gop = try dg.aligned_anon_decls.getOrPut(dg.gpa, decl_val); + const aligned_gop = try dg.aligned_anon_decls.getOrPut(dg.gpa, anon_decl.val); aligned_gop.value_ptr.* = if (aligned_gop.found_existing) aligned_gop.value_ptr.maxStrict(explicit_alignment) else @@ -646,41 +668,45 @@ pub const DeclGen = struct { fn renderDeclValue( dg: *DeclGen, writer: anytype, - ty: Type, val: Value, decl_index: InternPool.DeclIndex, location: ValueRenderLocation, ) error{ OutOfMemory, AnalysisFail }!void { - const mod = dg.module; - const decl = mod.declPtr(decl_index); + const zcu = dg.zcu; + const decl = zcu.declPtr(decl_index); assert(decl.has_tv); // Render an undefined pointer if we have a pointer to a zero-bit or comptime type. - if (ty.isPtrAtRuntime(mod) and !decl.typeOf(mod).isFnOrHasRuntimeBits(mod)) { + const ty = val.typeOf(zcu); + const decl_ty = decl.typeOf(zcu); + if (ty.isPtrAtRuntime(zcu) and !decl_ty.isFnOrHasRuntimeBits(zcu)) { return dg.writeCValue(writer, .{ .undef = ty }); } // Chase function values in order to be able to reference the original function. - if (decl.val.getFunction(mod)) |func| if (func.owner_decl != decl_index) - return dg.renderDeclValue(writer, ty, val, func.owner_decl, location); - if (decl.val.getExternFunc(mod)) |extern_func| if (extern_func.decl != decl_index) - return dg.renderDeclValue(writer, ty, val, extern_func.decl, location); + if (decl.val.getFunction(zcu)) |func| if (func.owner_decl != decl_index) + return dg.renderDeclValue(writer, val, func.owner_decl, location); + if (decl.val.getExternFunc(zcu)) |extern_func| if (extern_func.decl != decl_index) + return dg.renderDeclValue(writer, val, extern_func.decl, location); - if (decl.val.getVariable(mod)) |variable| try dg.renderFwdDecl(decl_index, variable, .tentative); + if (decl.val.getVariable(zcu)) |variable| try dg.renderFwdDecl(decl_index, variable, .tentative); // We shouldn't cast C function pointers as this is UB (when you call // them). The analysis until now should ensure that the C function // pointers are compatible. If they are not, then there is a bug // somewhere and we should let the C compiler tell us about it. - const need_typecast = if (ty.castPtrToFn(mod)) |_| false else !ty.childType(mod).eql(decl.typeOf(mod), mod); - if (need_typecast) { + const child_cty = (try dg.typeToCType(ty, .complete)).cast(CType.Payload.Child).?.data; + const decl_cty = try dg.typeToIndex(decl_ty, .complete); + const need_cast = child_cty != decl_cty and + (dg.indexToCType(child_cty).tag() != .function or dg.indexToCType(decl_cty).tag() != .function); + if (need_cast) { try writer.writeAll("(("); try dg.renderType(writer, ty); try writer.writeByte(')'); } try writer.writeByte('&'); try dg.renderDeclName(writer, decl_index, 0); - if (need_typecast) try writer.writeByte(')'); + if (need_cast) try writer.writeByte(')'); } /// Renders a "parent" pointer by recursing to the root decl/variable @@ -691,31 +717,32 @@ pub const DeclGen = struct { ptr_val: InternPool.Index, location: ValueRenderLocation, ) error{ OutOfMemory, AnalysisFail }!void { - const mod = dg.module; - const ptr_ty = Type.fromInterned(mod.intern_pool.typeOf(ptr_val)); + const zcu = dg.zcu; + const ip = &zcu.intern_pool; + const ptr_ty = Type.fromInterned(ip.typeOf(ptr_val)); const ptr_cty = try dg.typeToIndex(ptr_ty, .complete); - const ptr = mod.intern_pool.indexToKey(ptr_val).ptr; + const ptr_child_cty = dg.indexToCType(ptr_cty).cast(CType.Payload.Child).?.data; + const ptr = ip.indexToKey(ptr_val).ptr; switch (ptr.addr) { - .decl => |d| try dg.renderDeclValue(writer, ptr_ty, Value.fromInterned(ptr_val), d, location), - .anon_decl => |anon_decl| try dg.renderAnonDeclValue(writer, ptr_ty, Value.fromInterned(ptr_val), anon_decl, location), + .decl => |d| try dg.renderDeclValue(writer, Value.fromInterned(ptr_val), d, location), + .anon_decl => |anon_decl| try dg.renderAnonDeclValue(writer, Value.fromInterned(ptr_val), anon_decl, location), .int => |int| { try writer.writeByte('('); try dg.renderCType(writer, ptr_cty); - try writer.print("){x}", .{try dg.fmtIntLiteral(Type.usize, Value.fromInterned(int), .Other)}); + try writer.print("){x}", .{try dg.fmtIntLiteral(Value.fromInterned(int), .Other)}); }, .eu_payload, .opt_payload => |base| { - const ptr_base_ty = Type.fromInterned(mod.intern_pool.typeOf(base)); - const base_ty = ptr_base_ty.childType(mod); + const ptr_base_ty = Type.fromInterned(ip.typeOf(base)); + const base_ty = ptr_base_ty.childType(zcu); // Ensure complete type definition is visible before accessing fields. _ = try dg.typeToIndex(base_ty, .complete); const payload_ty = switch (ptr.addr) { - .eu_payload => base_ty.errorUnionPayload(mod), - .opt_payload => base_ty.optionalChild(mod), + .eu_payload => base_ty.errorUnionPayload(zcu), + .opt_payload => base_ty.optionalChild(zcu), else => unreachable, }; - const ptr_payload_ty = try mod.adjustPtrTypeChild(ptr_base_ty, payload_ty); - const ptr_payload_cty = try dg.typeToIndex(ptr_payload_ty, .complete); - if (ptr_cty != ptr_payload_cty) { + const payload_cty = try dg.typeToIndex(payload_ty, .forward); + if (ptr_child_cty != payload_cty) { try writer.writeByte('('); try dg.renderCType(writer, ptr_cty); try writer.writeByte(')'); @@ -725,70 +752,90 @@ pub const DeclGen = struct { try writer.writeAll(")->payload"); }, .elem => |elem| { - const ptr_base_ty = Type.fromInterned(mod.intern_pool.typeOf(elem.base)); - const elem_ty = ptr_base_ty.elemType2(mod); - const ptr_elem_ty = try mod.adjustPtrTypeChild(ptr_base_ty, elem_ty); - const ptr_elem_cty = try dg.typeToIndex(ptr_elem_ty, .complete); - if (ptr_cty != ptr_elem_cty) { + const ptr_base_ty = Type.fromInterned(ip.typeOf(elem.base)); + const elem_ty = ptr_base_ty.elemType2(zcu); + const elem_cty = try dg.typeToIndex(elem_ty, .forward); + if (ptr_child_cty != elem_cty) { try writer.writeByte('('); try dg.renderCType(writer, ptr_cty); try writer.writeByte(')'); } try writer.writeAll("&("); - if (mod.intern_pool.indexToKey(ptr_base_ty.toIntern()).ptr_type.flags.size == .One) + if (ip.indexToKey(ptr_base_ty.toIntern()).ptr_type.flags.size == .One) try writer.writeByte('*'); try dg.renderParentPtr(writer, elem.base, location); try writer.print(")[{d}]", .{elem.index}); }, .field => |field| { - const ptr_base_ty = Type.fromInterned(mod.intern_pool.typeOf(field.base)); - const base_ty = ptr_base_ty.childType(mod); + const ptr_base_ty = Type.fromInterned(ip.typeOf(field.base)); + const base_ty = ptr_base_ty.childType(zcu); // Ensure complete type definition is visible before accessing fields. _ = try dg.typeToIndex(base_ty, .complete); - const field_ty = switch (mod.intern_pool.indexToKey(base_ty.toIntern())) { - .anon_struct_type, .struct_type, .union_type => base_ty.structFieldType(@as(usize, @intCast(field.index)), mod), - .ptr_type => |ptr_type| switch (ptr_type.flags.size) { - .One, .Many, .C => unreachable, - .Slice => switch (field.index) { - Value.slice_ptr_index => base_ty.slicePtrFieldType(mod), - Value.slice_len_index => Type.usize, - else => unreachable, - }, + switch (fieldLocation(ptr_base_ty, ptr_ty, @as(u32, @intCast(field.index)), zcu)) { + .begin => { + const ptr_base_cty = try dg.typeToIndex(ptr_base_ty, .complete); + if (ptr_cty != ptr_base_cty) { + try writer.writeByte('('); + try dg.renderCType(writer, ptr_cty); + try writer.writeByte(')'); + } + try dg.renderParentPtr(writer, field.base, location); }, - else => unreachable, - }; - const ptr_field_ty = try mod.adjustPtrTypeChild(ptr_base_ty, field_ty); - const ptr_field_cty = try dg.typeToIndex(ptr_field_ty, .complete); - if (ptr_cty != ptr_field_cty) { - try writer.writeByte('('); - try dg.renderCType(writer, ptr_cty); - try writer.writeByte(')'); - } - switch (fieldLocation(ptr_base_ty, ptr_ty, @as(u32, @intCast(field.index)), mod)) { - .begin => try dg.renderParentPtr(writer, field.base, location), .field => |name| { + const field_ty = switch (ip.indexToKey(base_ty.toIntern())) { + .anon_struct_type, + .struct_type, + .union_type, + => base_ty.structFieldType(@as(usize, @intCast(field.index)), zcu), + .ptr_type => |ptr_type| switch (ptr_type.flags.size) { + .One, .Many, .C => unreachable, + .Slice => switch (field.index) { + Value.slice_ptr_index => base_ty.slicePtrFieldType(zcu), + Value.slice_len_index => Type.usize, + else => unreachable, + }, + }, + else => unreachable, + }; + const field_cty = try dg.typeToIndex(field_ty, .forward); + if (ptr_child_cty != field_cty) { + try writer.writeByte('('); + try dg.renderCType(writer, ptr_cty); + try writer.writeByte(')'); + } try writer.writeAll("&("); try dg.renderParentPtr(writer, field.base, location); try writer.writeAll(")->"); try dg.writeCValue(writer, name); }, .byte_offset => |byte_offset| { - const u8_ptr_ty = try mod.adjustPtrTypeChild(ptr_ty, Type.u8); - const byte_offset_val = try mod.intValue(Type.usize, byte_offset); + const u8_ptr_ty = try zcu.adjustPtrTypeChild(ptr_ty, Type.u8); + const u8_ptr_cty = try dg.typeToIndex(u8_ptr_ty, .complete); + if (ptr_cty != u8_ptr_cty) { + try writer.writeByte('('); + try dg.renderCType(writer, ptr_cty); + try writer.writeByte(')'); + } try writer.writeAll("(("); - try dg.renderType(writer, u8_ptr_ty); + try dg.renderCType(writer, u8_ptr_cty); try writer.writeByte(')'); try dg.renderParentPtr(writer, field.base, location); try writer.print(" + {})", .{ - try dg.fmtIntLiteral(Type.usize, byte_offset_val, .Other), + try dg.fmtIntLiteral(try zcu.intValue(Type.usize, byte_offset), .Other), }); }, .end => { + const ptr_base_cty = try dg.typeToIndex(ptr_base_ty, .complete); + if (ptr_cty != ptr_base_cty) { + try writer.writeByte('('); + try dg.renderCType(writer, ptr_cty); + try writer.writeByte(')'); + } try writer.writeAll("(("); try dg.renderParentPtr(writer, field.base, location); try writer.print(") + {})", .{ - try dg.fmtIntLiteral(Type.usize, try mod.intValue(Type.usize, 1), .Other), + try dg.fmtIntLiteral(try zcu.intValue(Type.usize, 1), .Other), }); }, } @@ -800,215 +847,21 @@ pub const DeclGen = struct { fn renderValue( dg: *DeclGen, writer: anytype, - ty: Type, val: Value, location: ValueRenderLocation, ) error{ OutOfMemory, AnalysisFail }!void { - const mod = dg.module; - const ip = &mod.intern_pool; + const zcu = dg.zcu; + const ip = &zcu.intern_pool; + const target = &dg.mod.resolved_target.result; - const target = mod.getTarget(); const initializer_type: ValueRenderLocation = switch (location) { .StaticInitializer => .StaticInitializer, else => .Initializer, }; - const safety_on = switch (mod.optimizeMode()) { - .Debug, .ReleaseSafe => true, - .ReleaseFast, .ReleaseSmall => false, - }; - - if (val.isUndefDeep(mod)) { - switch (ty.zigTypeTag(mod)) { - .Bool => { - if (safety_on) { - return writer.writeAll("0xaa"); - } else { - return writer.writeAll("false"); - } - }, - .Int, .Enum, .ErrorSet => return writer.print("{x}", .{try dg.fmtIntLiteral(ty, val, location)}), - .Float => { - const bits = ty.floatBits(target); - // All unsigned ints matching float types are pre-allocated. - const repr_ty = mod.intType(.unsigned, bits) catch unreachable; - - try writer.writeAll("zig_make_"); - try dg.renderTypeForBuiltinFnName(writer, ty); - try writer.writeByte('('); - switch (bits) { - 16 => try writer.print("{x}", .{@as(f16, @bitCast(undefPattern(i16)))}), - 32 => try writer.print("{x}", .{@as(f32, @bitCast(undefPattern(i32)))}), - 64 => try writer.print("{x}", .{@as(f64, @bitCast(undefPattern(i64)))}), - 80 => try writer.print("{x}", .{@as(f80, @bitCast(undefPattern(i80)))}), - 128 => try writer.print("{x}", .{@as(f128, @bitCast(undefPattern(i128)))}), - else => unreachable, - } - try writer.writeAll(", "); - try dg.renderValue(writer, repr_ty, Value.undef, .FunctionArgument); - return writer.writeByte(')'); - }, - .Pointer => if (ty.isSlice(mod)) { - if (!location.isInitializer()) { - try writer.writeByte('('); - try dg.renderType(writer, ty); - try writer.writeByte(')'); - } - - try writer.writeAll("{("); - const ptr_ty = ty.slicePtrFieldType(mod); - try dg.renderType(writer, ptr_ty); - return writer.print("){x}, {0x}}}", .{try dg.fmtIntLiteral(Type.usize, val, .Other)}); - } else { - try writer.writeAll("(("); - try dg.renderType(writer, ty); - return writer.print("){x})", .{try dg.fmtIntLiteral(Type.usize, val, .Other)}); - }, - .Optional => { - const payload_ty = ty.optionalChild(mod); - - if (!payload_ty.hasRuntimeBitsIgnoreComptime(mod)) { - return dg.renderValue(writer, Type.bool, val, location); - } - - if (ty.optionalReprIsPayload(mod)) { - return dg.renderValue(writer, payload_ty, val, location); - } - - if (!location.isInitializer()) { - try writer.writeByte('('); - try dg.renderType(writer, ty); - try writer.writeByte(')'); - } - - try writer.writeAll("{ .payload = "); - try dg.renderValue(writer, payload_ty, val, initializer_type); - try writer.writeAll(", .is_null = "); - try dg.renderValue(writer, Type.bool, val, initializer_type); - return writer.writeAll(" }"); - }, - .Struct => switch (ty.containerLayout(mod)) { - .auto, .@"extern" => { - if (!location.isInitializer()) { - try writer.writeByte('('); - try dg.renderType(writer, ty); - try writer.writeByte(')'); - } - - try writer.writeByte('{'); - var empty = true; - for (0..ty.structFieldCount(mod)) |field_index| { - if (ty.structFieldIsComptime(field_index, mod)) continue; - const field_ty = ty.structFieldType(field_index, mod); - if (!field_ty.hasRuntimeBits(mod)) continue; - - if (!empty) try writer.writeByte(','); - try dg.renderValue(writer, field_ty, val, initializer_type); - - empty = false; - } - - return writer.writeByte('}'); - }, - .@"packed" => return writer.print("{x}", .{try dg.fmtIntLiteral(ty, Value.undef, .Other)}), - }, - .Union => { - if (!location.isInitializer()) { - try writer.writeByte('('); - try dg.renderType(writer, ty); - try writer.writeByte(')'); - } - - try writer.writeByte('{'); - if (ty.unionTagTypeSafety(mod)) |tag_ty| { - const layout = ty.unionGetLayout(mod); - if (layout.tag_size != 0) { - try writer.writeAll(" .tag = "); - try dg.renderValue(writer, tag_ty, val, initializer_type); - } - if (ty.unionHasAllZeroBitFieldTypes(mod)) return try writer.writeByte('}'); - if (layout.tag_size != 0) try writer.writeByte(','); - try writer.writeAll(" .payload = {"); - } - const union_obj = mod.typeToUnion(ty).?; - for (0..union_obj.field_types.len) |field_index| { - const field_ty = Type.fromInterned(union_obj.field_types.get(ip)[field_index]); - if (!field_ty.hasRuntimeBits(mod)) continue; - try dg.renderValue(writer, field_ty, val, initializer_type); - break; - } - if (ty.unionTagTypeSafety(mod)) |_| try writer.writeByte('}'); - return writer.writeByte('}'); - }, - .ErrorUnion => { - const payload_ty = ty.errorUnionPayload(mod); - const error_ty = ty.errorUnionSet(mod); - - if (!payload_ty.hasRuntimeBitsIgnoreComptime(mod)) { - return dg.renderValue(writer, error_ty, val, location); - } - - if (!location.isInitializer()) { - try writer.writeByte('('); - try dg.renderType(writer, ty); - try writer.writeByte(')'); - } - - try writer.writeAll("{ .payload = "); - try dg.renderValue(writer, payload_ty, val, initializer_type); - try writer.writeAll(", .error = "); - try dg.renderValue(writer, error_ty, val, initializer_type); - return writer.writeAll(" }"); - }, - .Array, .Vector => { - const ai = ty.arrayInfo(mod); - if (ai.elem_type.eql(Type.u8, mod)) { - const c_len = ty.arrayLenIncludingSentinel(mod); - var literal = stringLiteral(writer, c_len); - try literal.start(); - var index: u64 = 0; - while (index < c_len) : (index += 1) - try literal.writeChar(0xaa); - return literal.end(); - } else { - if (!location.isInitializer()) { - try writer.writeByte('('); - try dg.renderType(writer, ty); - try writer.writeByte(')'); - } - - try writer.writeByte('{'); - const c_len = ty.arrayLenIncludingSentinel(mod); - var index: u64 = 0; - while (index < c_len) : (index += 1) { - if (index > 0) try writer.writeAll(", "); - try dg.renderValue(writer, ty.childType(mod), val, initializer_type); - } - return writer.writeByte('}'); - } - }, - .ComptimeInt, - .ComptimeFloat, - .Type, - .EnumLiteral, - .Void, - .NoReturn, - .Undefined, - .Null, - .Opaque, - => unreachable, - - .Fn, - .Frame, - .AnyFrame, - => |tag| return dg.fail("TODO: C backend: implement value of type {s}", .{ - @tagName(tag), - }), - } - unreachable; - } - - switch (ip.indexToKey(val.ip_index)) { + const ty = val.typeOf(zcu); + if (val.isUndefDeep(zcu)) return dg.renderUndefValue(writer, ty, location); + switch (ip.indexToKey(val.toIntern())) { // types, not values .int_type, .ptr_type, @@ -1050,26 +903,28 @@ pub const DeclGen = struct { .empty_enum_value, => unreachable, // non-runtime values .int => |int| switch (int.storage) { - .u64, .i64, .big_int => try writer.print("{}", .{try dg.fmtIntLiteral(ty, val, location)}), + .u64, .i64, .big_int => try writer.print("{}", .{try dg.fmtIntLiteral(val, location)}), .lazy_align, .lazy_size => { try writer.writeAll("(("); try dg.renderType(writer, ty); - return writer.print("){x})", .{try dg.fmtIntLiteral(Type.usize, val, .Other)}); + try writer.print("){x})", .{try dg.fmtIntLiteral( + try zcu.intValue(Type.usize, val.toUnsignedInt(zcu)), + .Other, + )}); }, }, .err => |err| try writer.print("zig_error_{}", .{ fmtIdent(ip.stringToSlice(err.name)), }), .error_union => |error_union| { - const payload_ty = ty.errorUnionPayload(mod); - const error_ty = ty.errorUnionSet(mod); - const err_int_ty = try mod.errorIntType(); - if (!payload_ty.hasRuntimeBitsIgnoreComptime(mod)) { + const payload_ty = ty.errorUnionPayload(zcu); + const error_ty = ty.errorUnionSet(zcu); + const err_int_ty = try zcu.errorIntType(); + if (!payload_ty.hasRuntimeBitsIgnoreComptime(zcu)) { switch (error_union.val) { .err_name => |err_name| return dg.renderValue( writer, - error_ty, - Value.fromInterned((try mod.intern(.{ .err = .{ + Value.fromInterned((try zcu.intern(.{ .err = .{ .ty = error_ty.toIntern(), .name = err_name, } }))), @@ -1077,8 +932,7 @@ pub const DeclGen = struct { ), .payload => return dg.renderValue( writer, - err_int_ty, - try mod.intValue(err_int_ty, 0), + try zcu.intValue(err_int_ty, 0), location, ), } @@ -1093,9 +947,8 @@ pub const DeclGen = struct { try writer.writeAll("{ .payload = "); try dg.renderValue( writer, - payload_ty, Value.fromInterned(switch (error_union.val) { - .err_name => try mod.intern(.{ .undef = payload_ty.ip_index }), + .err_name => (try zcu.undefValue(payload_ty)).toIntern(), .payload => |payload| payload, }), initializer_type, @@ -1104,8 +957,7 @@ pub const DeclGen = struct { switch (error_union.val) { .err_name => |err_name| try dg.renderValue( writer, - error_ty, - Value.fromInterned((try mod.intern(.{ .err = .{ + Value.fromInterned((try zcu.intern(.{ .err = .{ .ty = error_ty.toIntern(), .name = err_name, } }))), @@ -1113,24 +965,23 @@ pub const DeclGen = struct { ), .payload => try dg.renderValue( writer, - err_int_ty, - try mod.intValue(err_int_ty, 0), + try zcu.intValue(err_int_ty, 0), location, ), } try writer.writeAll(" }"); }, - .enum_tag => { - const enum_tag = ip.indexToKey(val.ip_index).enum_tag; - const int_tag_ty = ip.typeOf(enum_tag.int); - try dg.renderValue(writer, Type.fromInterned(int_tag_ty), Value.fromInterned(enum_tag.int), location); - }, + .enum_tag => |enum_tag| try dg.renderValue( + writer, + Value.fromInterned(enum_tag.int), + location, + ), .float => { - const bits = ty.floatBits(target); - const f128_val = val.toFloat(f128, mod); + const bits = ty.floatBits(target.*); + const f128_val = val.toFloat(f128, zcu); // All unsigned ints matching float types are pre-allocated. - const repr_ty = mod.intType(.unsigned, bits) catch unreachable; + const repr_ty = zcu.intType(.unsigned, bits) catch unreachable; assert(bits <= 128); var repr_val_limbs: [BigInt.calcTwosCompLimbCount(128)]BigIntLimb = undefined; @@ -1141,26 +992,24 @@ pub const DeclGen = struct { }; switch (bits) { - 16 => repr_val_big.set(@as(u16, @bitCast(val.toFloat(f16, mod)))), - 32 => repr_val_big.set(@as(u32, @bitCast(val.toFloat(f32, mod)))), - 64 => repr_val_big.set(@as(u64, @bitCast(val.toFloat(f64, mod)))), - 80 => repr_val_big.set(@as(u80, @bitCast(val.toFloat(f80, mod)))), + 16 => repr_val_big.set(@as(u16, @bitCast(val.toFloat(f16, zcu)))), + 32 => repr_val_big.set(@as(u32, @bitCast(val.toFloat(f32, zcu)))), + 64 => repr_val_big.set(@as(u64, @bitCast(val.toFloat(f64, zcu)))), + 80 => repr_val_big.set(@as(u80, @bitCast(val.toFloat(f80, zcu)))), 128 => repr_val_big.set(@as(u128, @bitCast(f128_val))), else => unreachable, } - const repr_val = try mod.intValue_big(repr_ty, repr_val_big.toConst()); - var empty = true; if (std.math.isFinite(f128_val)) { try writer.writeAll("zig_make_"); try dg.renderTypeForBuiltinFnName(writer, ty); try writer.writeByte('('); switch (bits) { - 16 => try writer.print("{x}", .{val.toFloat(f16, mod)}), - 32 => try writer.print("{x}", .{val.toFloat(f32, mod)}), - 64 => try writer.print("{x}", .{val.toFloat(f64, mod)}), - 80 => try writer.print("{x}", .{val.toFloat(f80, mod)}), + 16 => try writer.print("{x}", .{val.toFloat(f16, zcu)}), + 32 => try writer.print("{x}", .{val.toFloat(f32, zcu)}), + 64 => try writer.print("{x}", .{val.toFloat(f64, zcu)}), + 80 => try writer.print("{x}", .{val.toFloat(f80, zcu)}), 128 => try writer.print("{x}", .{f128_val}), else => unreachable, } @@ -1200,17 +1049,20 @@ pub const DeclGen = struct { if (std.math.isNan(f128_val)) switch (bits) { // We only actually need to pass the significand, but it will get // properly masked anyway, so just pass the whole value. - 16 => try writer.print("\"0x{x}\"", .{@as(u16, @bitCast(val.toFloat(f16, mod)))}), - 32 => try writer.print("\"0x{x}\"", .{@as(u32, @bitCast(val.toFloat(f32, mod)))}), - 64 => try writer.print("\"0x{x}\"", .{@as(u64, @bitCast(val.toFloat(f64, mod)))}), - 80 => try writer.print("\"0x{x}\"", .{@as(u80, @bitCast(val.toFloat(f80, mod)))}), + 16 => try writer.print("\"0x{x}\"", .{@as(u16, @bitCast(val.toFloat(f16, zcu)))}), + 32 => try writer.print("\"0x{x}\"", .{@as(u32, @bitCast(val.toFloat(f32, zcu)))}), + 64 => try writer.print("\"0x{x}\"", .{@as(u64, @bitCast(val.toFloat(f64, zcu)))}), + 80 => try writer.print("\"0x{x}\"", .{@as(u80, @bitCast(val.toFloat(f80, zcu)))}), 128 => try writer.print("\"0x{x}\"", .{@as(u128, @bitCast(f128_val))}), else => unreachable, }; try writer.writeAll(", "); empty = false; } - try writer.print("{x}", .{try dg.fmtIntLiteral(repr_ty, repr_val, location)}); + try writer.print("{x}", .{try dg.fmtIntLiteral( + try zcu.intValue_big(repr_ty, repr_val_big.toConst()), + location, + )}); if (!empty) try writer.writeByte(')'); }, .slice => |slice| { @@ -1220,42 +1072,39 @@ pub const DeclGen = struct { try writer.writeByte(')'); } try writer.writeByte('{'); - try dg.renderValue(writer, ty.slicePtrFieldType(mod), Value.fromInterned(slice.ptr), initializer_type); + try dg.renderValue(writer, Value.fromInterned(slice.ptr), initializer_type); try writer.writeAll(", "); - try dg.renderValue(writer, Type.usize, Value.fromInterned(slice.len), initializer_type); + try dg.renderValue(writer, Value.fromInterned(slice.len), initializer_type); try writer.writeByte('}'); }, .ptr => |ptr| switch (ptr.addr) { - .decl => |d| try dg.renderDeclValue(writer, ty, val, d, location), - .anon_decl => |decl_val| try dg.renderAnonDeclValue(writer, ty, val, decl_val, location), + .decl => |d| try dg.renderDeclValue(writer, val, d, location), + .anon_decl => |decl_val| try dg.renderAnonDeclValue(writer, val, decl_val, location), .int => |int| { try writer.writeAll("(("); try dg.renderType(writer, ty); - try writer.print("){x})", .{ - try dg.fmtIntLiteral(Type.usize, Value.fromInterned(int), location), - }); + try writer.print("){x})", .{try dg.fmtIntLiteral(Value.fromInterned(int), location)}); }, .eu_payload, .opt_payload, .elem, .field, - => try dg.renderParentPtr(writer, val.ip_index, location), + => try dg.renderParentPtr(writer, val.toIntern(), location), .comptime_field, .comptime_alloc => unreachable, }, .opt => |opt| { - const payload_ty = ty.optionalChild(mod); + const payload_ty = ty.optionalChild(zcu); const is_null_val = Value.makeBool(opt.val == .none); - if (!payload_ty.hasRuntimeBitsIgnoreComptime(mod)) - return dg.renderValue(writer, Type.bool, is_null_val, location); + if (!payload_ty.hasRuntimeBitsIgnoreComptime(zcu)) + return dg.renderValue(writer, is_null_val, location); - if (ty.optionalReprIsPayload(mod)) return dg.renderValue( + if (ty.optionalReprIsPayload(zcu)) return dg.renderValue( writer, - payload_ty, switch (opt.val) { - .none => switch (payload_ty.zigTypeTag(mod)) { - .ErrorSet => try mod.intValue(try mod.errorIntType(), 0), - .Pointer => try mod.getCoerced(val, payload_ty), + .none => switch (payload_ty.zigTypeTag(zcu)) { + .ErrorSet => try zcu.intValue(try zcu.errorIntType(), 0), + .Pointer => try zcu.getCoerced(val, payload_ty), else => unreachable, }, else => |payload| Value.fromInterned(payload), @@ -1270,15 +1119,19 @@ pub const DeclGen = struct { } try writer.writeAll("{ .payload = "); - try dg.renderValue(writer, payload_ty, Value.fromInterned(switch (opt.val) { - .none => try mod.intern(.{ .undef = payload_ty.ip_index }), - else => |payload| payload, - }), initializer_type); + switch (opt.val) { + .none => try dg.renderUndefValue(writer, payload_ty, initializer_type), + else => |payload| try dg.renderValue( + writer, + Value.fromInterned(payload), + initializer_type, + ), + } try writer.writeAll(", .is_null = "); - try dg.renderValue(writer, Type.bool, is_null_val, initializer_type); + try dg.renderValue(writer, is_null_val, initializer_type); try writer.writeAll(" }"); }, - .aggregate => switch (ip.indexToKey(ty.ip_index)) { + .aggregate => switch (ip.indexToKey(ty.toIntern())) { .array_type, .vector_type => { if (location == .FunctionArgument) { try writer.writeByte('('); @@ -1287,21 +1140,21 @@ pub const DeclGen = struct { } // Fall back to generic implementation. - const ai = ty.arrayInfo(mod); - if (ai.elem_type.eql(Type.u8, mod)) { - var literal = stringLiteral(writer, ty.arrayLenIncludingSentinel(mod)); + const ai = ty.arrayInfo(zcu); + if (ai.elem_type.eql(Type.u8, zcu)) { + var literal = stringLiteral(writer, ty.arrayLenIncludingSentinel(zcu)); try literal.start(); var index: usize = 0; while (index < ai.len) : (index += 1) { - const elem_val = try val.elemValue(mod, index); - const elem_val_u8: u8 = if (elem_val.isUndef(mod)) + const elem_val = try val.elemValue(zcu, index); + const elem_val_u8: u8 = if (elem_val.isUndef(zcu)) undefPattern(u8) else - @intCast(elem_val.toUnsignedInt(mod)); + @intCast(elem_val.toUnsignedInt(zcu)); try literal.writeChar(elem_val_u8); } if (ai.sentinel) |s| { - const s_u8: u8 = @intCast(s.toUnsignedInt(mod)); + const s_u8: u8 = @intCast(s.toUnsignedInt(zcu)); if (s_u8 != 0) try literal.writeChar(s_u8); } try literal.end(); @@ -1310,12 +1163,12 @@ pub const DeclGen = struct { var index: usize = 0; while (index < ai.len) : (index += 1) { if (index != 0) try writer.writeByte(','); - const elem_val = try val.elemValue(mod, index); - try dg.renderValue(writer, ai.elem_type, elem_val, initializer_type); + const elem_val = try val.elemValue(zcu, index); + try dg.renderValue(writer, elem_val, initializer_type); } if (ai.sentinel) |s| { if (index != 0) try writer.writeByte(','); - try dg.renderValue(writer, ai.elem_type, s, initializer_type); + try dg.renderValue(writer, s, initializer_type); } try writer.writeByte('}'); } @@ -1333,19 +1186,21 @@ pub const DeclGen = struct { const comptime_val = tuple.values.get(ip)[field_index]; if (comptime_val != .none) continue; const field_ty = Type.fromInterned(tuple.types.get(ip)[field_index]); - if (!field_ty.hasRuntimeBitsIgnoreComptime(mod)) continue; + if (!field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; if (!empty) try writer.writeByte(','); - const field_val = Value.fromInterned(switch (ip.indexToKey(val.ip_index).aggregate.storage) { - .bytes => |bytes| try ip.get(mod.gpa, .{ .int = .{ - .ty = field_ty.toIntern(), - .storage = .{ .u64 = bytes[field_index] }, - } }), - .elems => |elems| elems[field_index], - .repeated_elem => |elem| elem, - }); - try dg.renderValue(writer, field_ty, field_val, initializer_type); + const field_val = Value.fromInterned( + switch (ip.indexToKey(val.toIntern()).aggregate.storage) { + .bytes => |bytes| try ip.get(zcu.gpa, .{ .int = .{ + .ty = field_ty.toIntern(), + .storage = .{ .u64 = bytes[field_index] }, + } }), + .elems => |elems| elems[field_index], + .repeated_elem => |elem| elem, + }, + ); + try dg.renderValue(writer, field_val, initializer_type); empty = false; } @@ -1366,43 +1221,43 @@ pub const DeclGen = struct { for (0..struct_type.field_types.len) |field_index| { const field_ty = Type.fromInterned(struct_type.field_types.get(ip)[field_index]); if (struct_type.fieldIsComptime(ip, field_index)) continue; - if (!field_ty.hasRuntimeBitsIgnoreComptime(mod)) continue; + if (!field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; if (!empty) try writer.writeByte(','); - const field_val = switch (ip.indexToKey(val.ip_index).aggregate.storage) { - .bytes => |bytes| try ip.get(mod.gpa, .{ .int = .{ + const field_val = switch (ip.indexToKey(val.toIntern()).aggregate.storage) { + .bytes => |bytes| try ip.get(zcu.gpa, .{ .int = .{ .ty = field_ty.toIntern(), .storage = .{ .u64 = bytes[field_index] }, } }), .elems => |elems| elems[field_index], .repeated_elem => |elem| elem, }; - try dg.renderValue(writer, field_ty, Value.fromInterned(field_val), initializer_type); + try dg.renderValue(writer, Value.fromInterned(field_val), initializer_type); empty = false; } try writer.writeByte('}'); }, .@"packed" => { - const int_info = ty.intInfo(mod); + const int_info = ty.intInfo(zcu); const bits = Type.smallestUnsignedBits(int_info.bits - 1); - const bit_offset_ty = try mod.intType(.unsigned, bits); + const bit_offset_ty = try zcu.intType(.unsigned, bits); var bit_offset: u64 = 0; var eff_num_fields: usize = 0; for (0..struct_type.field_types.len) |field_index| { const field_ty = Type.fromInterned(struct_type.field_types.get(ip)[field_index]); - if (!field_ty.hasRuntimeBitsIgnoreComptime(mod)) continue; + if (!field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; eff_num_fields += 1; } if (eff_num_fields == 0) { try writer.writeByte('('); - try dg.renderValue(writer, ty, Value.undef, initializer_type); + try dg.renderUndefValue(writer, ty, initializer_type); try writer.writeByte(')'); - } else if (ty.bitSize(mod) > 64) { + } else if (ty.bitSize(zcu) > 64) { // zig_or_u128(zig_or_u128(zig_shl_u128(a, a_off), zig_shl_u128(b, b_off)), zig_shl_u128(c, c_off)) var num_or = eff_num_fields - 1; while (num_or > 0) : (num_or -= 1) { @@ -1415,10 +1270,10 @@ pub const DeclGen = struct { var needs_closing_paren = false; for (0..struct_type.field_types.len) |field_index| { const field_ty = Type.fromInterned(struct_type.field_types.get(ip)[field_index]); - if (!field_ty.hasRuntimeBitsIgnoreComptime(mod)) continue; + if (!field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; - const field_val = switch (ip.indexToKey(val.ip_index).aggregate.storage) { - .bytes => |bytes| try ip.get(mod.gpa, .{ .int = .{ + const field_val = switch (ip.indexToKey(val.toIntern()).aggregate.storage) { + .bytes => |bytes| try ip.get(zcu.gpa, .{ .int = .{ .ty = field_ty.toIntern(), .storage = .{ .u64 = bytes[field_index] }, } }), @@ -1432,8 +1287,7 @@ pub const DeclGen = struct { try writer.writeByte('('); try dg.renderIntCast(writer, ty, cast_context, field_ty, .FunctionArgument); try writer.writeAll(", "); - const bit_offset_val = try mod.intValue(bit_offset_ty, bit_offset); - try dg.renderValue(writer, bit_offset_ty, bit_offset_val, .FunctionArgument); + try dg.renderValue(writer, try zcu.intValue(bit_offset_ty, bit_offset), .FunctionArgument); try writer.writeByte(')'); } else { try dg.renderIntCast(writer, ty, cast_context, field_ty, .FunctionArgument); @@ -1442,7 +1296,7 @@ pub const DeclGen = struct { if (needs_closing_paren) try writer.writeByte(')'); if (eff_index != eff_num_fields - 1) try writer.writeAll(", "); - bit_offset += field_ty.bitSize(mod); + bit_offset += field_ty.bitSize(zcu); needs_closing_paren = true; eff_index += 1; } @@ -1452,15 +1306,15 @@ pub const DeclGen = struct { var empty = true; for (0..struct_type.field_types.len) |field_index| { const field_ty = Type.fromInterned(struct_type.field_types.get(ip)[field_index]); - if (!field_ty.hasRuntimeBitsIgnoreComptime(mod)) continue; + if (!field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; if (!empty) try writer.writeAll(" | "); try writer.writeByte('('); try dg.renderType(writer, ty); try writer.writeByte(')'); - const field_val = switch (ip.indexToKey(val.ip_index).aggregate.storage) { - .bytes => |bytes| try ip.get(mod.gpa, .{ .int = .{ + const field_val = switch (ip.indexToKey(val.toIntern()).aggregate.storage) { + .bytes => |bytes| try ip.get(zcu.gpa, .{ .int = .{ .ty = field_ty.toIntern(), .storage = .{ .u64 = bytes[field_index] }, } }), @@ -1469,15 +1323,14 @@ pub const DeclGen = struct { }; if (bit_offset != 0) { - try dg.renderValue(writer, field_ty, Value.fromInterned(field_val), .Other); + try dg.renderValue(writer, Value.fromInterned(field_val), .Other); try writer.writeAll(" << "); - const bit_offset_val = try mod.intValue(bit_offset_ty, bit_offset); - try dg.renderValue(writer, bit_offset_ty, bit_offset_val, .FunctionArgument); + try dg.renderValue(writer, try zcu.intValue(bit_offset_ty, bit_offset), .FunctionArgument); } else { - try dg.renderValue(writer, field_ty, Value.fromInterned(field_val), .Other); + try dg.renderValue(writer, Value.fromInterned(field_val), .Other); } - bit_offset += field_ty.bitSize(mod); + bit_offset += field_ty.bitSize(zcu); empty = false; } try writer.writeByte(')'); @@ -1488,9 +1341,9 @@ pub const DeclGen = struct { else => unreachable, }, .un => |un| { - const union_obj = mod.typeToUnion(ty).?; + const union_obj = zcu.typeToUnion(ty).?; if (un.tag == .none) { - const backing_ty = try ty.unionBackingType(mod); + const backing_ty = try ty.unionBackingType(zcu); switch (union_obj.getLayout(ip)) { .@"packed" => { if (!location.isInitializer()) { @@ -1498,20 +1351,20 @@ pub const DeclGen = struct { try dg.renderType(writer, backing_ty); try writer.writeByte(')'); } - try dg.renderValue(writer, backing_ty, Value.fromInterned(un.val), initializer_type); + try dg.renderValue(writer, Value.fromInterned(un.val), initializer_type); }, .@"extern" => { if (location == .StaticInitializer) { return dg.fail("TODO: C backend: implement extern union backing type rendering in static initializers", .{}); } - const ptr_ty = try mod.singleConstPtrType(ty); + const ptr_ty = try zcu.singleConstPtrType(ty); try writer.writeAll("*(("); try dg.renderType(writer, ptr_ty); try writer.writeAll(")("); try dg.renderType(writer, backing_ty); try writer.writeAll("){"); - try dg.renderValue(writer, backing_ty, Value.fromInterned(un.val), initializer_type); + try dg.renderValue(writer, Value.fromInterned(un.val), initializer_type); try writer.writeAll("})"); }, else => unreachable, @@ -1523,21 +1376,21 @@ pub const DeclGen = struct { try writer.writeByte(')'); } - const field_index = mod.unionTagFieldIndex(union_obj, Value.fromInterned(un.tag)).?; + const field_index = zcu.unionTagFieldIndex(union_obj, Value.fromInterned(un.tag)).?; const field_ty = Type.fromInterned(union_obj.field_types.get(ip)[field_index]); const field_name = union_obj.loadTagType(ip).names.get(ip)[field_index]; if (union_obj.getLayout(ip) == .@"packed") { - if (field_ty.hasRuntimeBits(mod)) { - if (field_ty.isPtrAtRuntime(mod)) { + if (field_ty.hasRuntimeBits(zcu)) { + if (field_ty.isPtrAtRuntime(zcu)) { try writer.writeByte('('); try dg.renderType(writer, ty); try writer.writeByte(')'); - } else if (field_ty.zigTypeTag(mod) == .Float) { + } else if (field_ty.zigTypeTag(zcu) == .Float) { try writer.writeByte('('); try dg.renderType(writer, ty); try writer.writeByte(')'); } - try dg.renderValue(writer, field_ty, Value.fromInterned(un.val), initializer_type); + try dg.renderValue(writer, Value.fromInterned(un.val), initializer_type); } else { try writer.writeAll("0"); } @@ -1545,30 +1398,236 @@ pub const DeclGen = struct { } try writer.writeByte('{'); - if (ty.unionTagTypeSafety(mod)) |tag_ty| { - const layout = mod.getUnionLayout(union_obj); + if (ty.unionTagTypeSafety(zcu)) |_| { + const layout = zcu.getUnionLayout(union_obj); if (layout.tag_size != 0) { try writer.writeAll(" .tag = "); - try dg.renderValue(writer, tag_ty, Value.fromInterned(un.tag), initializer_type); + try dg.renderValue(writer, Value.fromInterned(un.tag), initializer_type); } - if (ty.unionHasAllZeroBitFieldTypes(mod)) return try writer.writeByte('}'); + if (ty.unionHasAllZeroBitFieldTypes(zcu)) return try writer.writeByte('}'); if (layout.tag_size != 0) try writer.writeByte(','); try writer.writeAll(" .payload = {"); } - if (field_ty.hasRuntimeBits(mod)) { + if (field_ty.hasRuntimeBits(zcu)) { try writer.print(" .{ } = ", .{fmtIdent(ip.stringToSlice(field_name))}); - try dg.renderValue(writer, field_ty, Value.fromInterned(un.val), initializer_type); + try dg.renderValue(writer, Value.fromInterned(un.val), initializer_type); try writer.writeByte(' '); } else for (0..union_obj.field_types.len) |this_field_index| { const this_field_ty = Type.fromInterned(union_obj.field_types.get(ip)[this_field_index]); - if (!this_field_ty.hasRuntimeBits(mod)) continue; - try dg.renderValue(writer, this_field_ty, Value.undef, initializer_type); + if (!this_field_ty.hasRuntimeBits(zcu)) continue; + try dg.renderUndefValue(writer, this_field_ty, initializer_type); break; } - if (ty.unionTagTypeSafety(mod)) |_| try writer.writeByte('}'); + if (ty.unionTagTypeSafety(zcu)) |_| try writer.writeByte('}'); + try writer.writeByte('}'); + } + }, + } + } + + fn renderUndefValue( + dg: *DeclGen, + writer: anytype, + ty: Type, + location: ValueRenderLocation, + ) error{ OutOfMemory, AnalysisFail }!void { + const zcu = dg.zcu; + const ip = &zcu.intern_pool; + const target = &dg.mod.resolved_target.result; + + const initializer_type: ValueRenderLocation = switch (location) { + .StaticInitializer => .StaticInitializer, + else => .Initializer, + }; + + const safety_on = switch (zcu.optimizeMode()) { + .Debug, .ReleaseSafe => true, + .ReleaseFast, .ReleaseSmall => false, + }; + + switch (ty.zigTypeTag(zcu)) { + .Bool => try writer.writeAll(if (safety_on) "0xaa" else "false"), + .Int, .Enum, .ErrorSet => try writer.print("{x}", .{ + try dg.fmtIntLiteral(try zcu.undefValue(ty), location), + }), + .Float => { + const bits = ty.floatBits(target.*); + // All unsigned ints matching float types are pre-allocated. + const repr_ty = zcu.intType(.unsigned, bits) catch unreachable; + + try writer.writeAll("zig_make_"); + try dg.renderTypeForBuiltinFnName(writer, ty); + try writer.writeByte('('); + switch (bits) { + 16 => try writer.print("{x}", .{@as(f16, @bitCast(undefPattern(i16)))}), + 32 => try writer.print("{x}", .{@as(f32, @bitCast(undefPattern(i32)))}), + 64 => try writer.print("{x}", .{@as(f64, @bitCast(undefPattern(i64)))}), + 80 => try writer.print("{x}", .{@as(f80, @bitCast(undefPattern(i80)))}), + 128 => try writer.print("{x}", .{@as(f128, @bitCast(undefPattern(i128)))}), + else => unreachable, + } + try writer.writeAll(", "); + try dg.renderUndefValue(writer, repr_ty, .FunctionArgument); + try writer.writeByte(')'); + }, + .Pointer => if (ty.isSlice(zcu)) { + if (!location.isInitializer()) { + try writer.writeByte('('); + try dg.renderType(writer, ty); + try writer.writeByte(')'); + } + + try writer.writeAll("{("); + const ptr_ty = ty.slicePtrFieldType(zcu); + try dg.renderType(writer, ptr_ty); + try writer.print("){x}, {0x}}}", .{try dg.fmtIntLiteral(try zcu.undefValue(Type.usize), .Other)}); + } else { + try writer.writeAll("(("); + try dg.renderType(writer, ty); + try writer.print("){x})", .{try dg.fmtIntLiteral(try zcu.undefValue(Type.usize), .Other)}); + }, + .Optional => { + const payload_ty = ty.optionalChild(zcu); + + if (!payload_ty.hasRuntimeBitsIgnoreComptime(zcu)) { + return dg.renderUndefValue(writer, Type.bool, location); + } + + if (ty.optionalReprIsPayload(zcu)) { + return dg.renderUndefValue(writer, payload_ty, location); + } + + if (!location.isInitializer()) { + try writer.writeByte('('); + try dg.renderType(writer, ty); + try writer.writeByte(')'); + } + + try writer.writeAll("{ .payload = "); + try dg.renderUndefValue(writer, payload_ty, initializer_type); + try writer.writeAll(", .is_null = "); + try dg.renderUndefValue(writer, Type.bool, initializer_type); + try writer.writeAll(" }"); + }, + .Struct => switch (ty.containerLayout(zcu)) { + .auto, .@"extern" => { + if (!location.isInitializer()) { + try writer.writeByte('('); + try dg.renderType(writer, ty); + try writer.writeByte(')'); + } + + try writer.writeByte('{'); + var empty = true; + for (0..ty.structFieldCount(zcu)) |field_index| { + if (ty.structFieldIsComptime(field_index, zcu)) continue; + const field_ty = ty.structFieldType(field_index, zcu); + if (!field_ty.hasRuntimeBits(zcu)) continue; + + if (!empty) try writer.writeByte(','); + try dg.renderUndefValue(writer, field_ty, initializer_type); + + empty = false; + } + try writer.writeByte('}'); + }, + .@"packed" => try writer.print("{x}", .{ + try dg.fmtIntLiteral(try zcu.undefValue(ty), .Other), + }), + }, + .Union => { + if (!location.isInitializer()) { + try writer.writeByte('('); + try dg.renderType(writer, ty); + try writer.writeByte(')'); } + + try writer.writeByte('{'); + if (ty.unionTagTypeSafety(zcu)) |tag_ty| { + const layout = ty.unionGetLayout(zcu); + if (layout.tag_size != 0) { + try writer.writeAll(" .tag = "); + try dg.renderUndefValue(writer, tag_ty, initializer_type); + } + if (ty.unionHasAllZeroBitFieldTypes(zcu)) return try writer.writeByte('}'); + if (layout.tag_size != 0) try writer.writeByte(','); + try writer.writeAll(" .payload = {"); + } + const union_obj = zcu.typeToUnion(ty).?; + for (0..union_obj.field_types.len) |field_index| { + const field_ty = Type.fromInterned(union_obj.field_types.get(ip)[field_index]); + if (!field_ty.hasRuntimeBits(zcu)) continue; + try dg.renderUndefValue(writer, field_ty, initializer_type); + break; + } + if (ty.unionTagTypeSafety(zcu)) |_| try writer.writeByte('}'); + try writer.writeByte('}'); }, + .ErrorUnion => { + const payload_ty = ty.errorUnionPayload(zcu); + const error_ty = ty.errorUnionSet(zcu); + + if (!payload_ty.hasRuntimeBitsIgnoreComptime(zcu)) { + return dg.renderUndefValue(writer, error_ty, location); + } + + if (!location.isInitializer()) { + try writer.writeByte('('); + try dg.renderType(writer, ty); + try writer.writeByte(')'); + } + + try writer.writeAll("{ .payload = "); + try dg.renderUndefValue(writer, payload_ty, initializer_type); + try writer.writeAll(", .error = "); + try dg.renderUndefValue(writer, error_ty, initializer_type); + try writer.writeAll(" }"); + }, + .Array, .Vector => { + const ai = ty.arrayInfo(zcu); + if (ai.elem_type.eql(Type.u8, zcu)) { + const c_len = ty.arrayLenIncludingSentinel(zcu); + var literal = stringLiteral(writer, c_len); + try literal.start(); + var index: u64 = 0; + while (index < c_len) : (index += 1) + try literal.writeChar(0xaa); + try literal.end(); + } else { + if (!location.isInitializer()) { + try writer.writeByte('('); + try dg.renderType(writer, ty); + try writer.writeByte(')'); + } + + try writer.writeByte('{'); + const c_len = ty.arrayLenIncludingSentinel(zcu); + var index: u64 = 0; + while (index < c_len) : (index += 1) { + if (index > 0) try writer.writeAll(", "); + try dg.renderUndefValue(writer, ty.childType(zcu), initializer_type); + } + try writer.writeByte('}'); + } + }, + .ComptimeInt, + .ComptimeFloat, + .Type, + .EnumLiteral, + .Void, + .NoReturn, + .Undefined, + .Null, + .Opaque, + => unreachable, + + .Fn, + .Frame, + .AnyFrame, + => |tag| return dg.fail("TODO: C backend: implement value of type {s}", .{ + @tagName(tag), + }), } } @@ -1583,14 +1642,14 @@ pub const DeclGen = struct { }, ) !void { const store = &dg.ctypes.set; - const mod = dg.module; - const ip = &mod.intern_pool; + const zcu = dg.zcu; + const ip = &zcu.intern_pool; - const fn_decl = mod.declPtr(fn_decl_index); - const fn_ty = fn_decl.typeOf(mod); + const fn_decl = zcu.declPtr(fn_decl_index); + const fn_ty = fn_decl.typeOf(zcu); const fn_cty_idx = try dg.typeToIndex(fn_ty, kind); - const fn_info = mod.typeToFunc(fn_ty).?; + const fn_info = zcu.typeToFunc(fn_ty).?; if (fn_info.cc == .Naked) { switch (kind) { .forward => try w.writeAll("zig_naked_decl "), @@ -1598,11 +1657,11 @@ pub const DeclGen = struct { else => unreachable, } } - if (fn_decl.val.getFunction(mod)) |func| if (func.analysis(ip).is_cold) + if (fn_decl.val.getFunction(zcu)) |func| if (func.analysis(ip).is_cold) try w.writeAll("zig_cold "); if (fn_info.return_type == .noreturn_type) try w.writeAll("zig_noreturn "); - var trailing = try renderTypePrefix(dg.pass, store.*, mod, w, fn_cty_idx, .suffix, .{}); + var trailing = try renderTypePrefix(dg.pass, store.*, zcu, w, fn_cty_idx, .suffix, .{}); if (toCallingConvention(fn_info.cc)) |call_conv| { try w.print("{}zig_callconv({s})", .{ trailing, call_conv }); @@ -1629,7 +1688,7 @@ pub const DeclGen = struct { try renderTypeSuffix( dg.pass, store.*, - mod, + zcu, w, fn_cty_idx, .suffix, @@ -1647,11 +1706,11 @@ pub const DeclGen = struct { } switch (name) { .export_index => |export_index| mangled: { - const maybe_exports = mod.decl_exports.get(fn_decl_index); + const maybe_exports = zcu.decl_exports.get(fn_decl_index); const external_name = ip.stringToSlice( if (maybe_exports) |exports| exports.items[export_index].opts.name - else if (fn_decl.isExtern(mod)) + else if (fn_decl.isExtern(zcu)) fn_decl.name else break :mangled, @@ -1694,15 +1753,15 @@ pub const DeclGen = struct { } fn typeToIndex(dg: *DeclGen, ty: Type, kind: CType.Kind) !CType.Index { - return dg.ctypes.typeToIndex(dg.gpa, ty, dg.module, kind); + return dg.ctypes.typeToIndex(dg.gpa, ty, dg.zcu, dg.mod, kind); } fn typeToCType(dg: *DeclGen, ty: Type, kind: CType.Kind) !CType { - return dg.ctypes.typeToCType(dg.gpa, ty, dg.module, kind); + return dg.ctypes.typeToCType(dg.gpa, ty, dg.zcu, dg.mod, kind); } fn byteSize(dg: *DeclGen, cty: CType) u64 { - return cty.byteSize(dg.ctypes.set, dg.module.getTarget()); + return cty.byteSize(dg.ctypes.set, dg.mod); } /// Renders a type as a single identifier, generating intermediate typedefs @@ -1722,9 +1781,9 @@ pub const DeclGen = struct { fn renderCType(dg: *DeclGen, w: anytype, idx: CType.Index) error{ OutOfMemory, AnalysisFail }!void { const store = &dg.ctypes.set; - const mod = dg.module; - _ = try renderTypePrefix(dg.pass, store.*, mod, w, idx, .suffix, .{}); - try renderTypeSuffix(dg.pass, store.*, mod, w, idx, .suffix, .{}); + const zcu = dg.zcu; + _ = try renderTypePrefix(dg.pass, store.*, zcu, w, idx, .suffix, .{}); + try renderTypeSuffix(dg.pass, store.*, zcu, w, idx, .suffix, .{}); } const IntCastContext = union(enum) { @@ -1737,15 +1796,13 @@ pub const DeclGen = struct { value: Value, }, - pub fn writeValue(self: *const IntCastContext, dg: *DeclGen, w: anytype, value_ty: Type, location: ValueRenderLocation) !void { + pub fn writeValue(self: *const IntCastContext, dg: *DeclGen, w: anytype, location: ValueRenderLocation) !void { switch (self.*) { .c_value => |v| { try v.f.writeCValue(w, v.value, location); try v.v.elem(v.f, w); }, - .value => |v| { - try dg.renderValue(w, value_ty, v.value, location); - }, + .value => |v| try dg.renderValue(w, v.value, location), } } }; @@ -1764,18 +1821,18 @@ pub const DeclGen = struct { /// | > 64 bit integer | < 64 bit integer | zig_make_(0, src) /// | > 64 bit integer | > 64 bit integer | zig_make_(zig_hi_(src), zig_lo_(src)) fn renderIntCast(dg: *DeclGen, w: anytype, dest_ty: Type, context: IntCastContext, src_ty: Type, location: ValueRenderLocation) !void { - const mod = dg.module; - const dest_bits = dest_ty.bitSize(mod); - const dest_int_info = dest_ty.intInfo(mod); + const zcu = dg.zcu; + const dest_bits = dest_ty.bitSize(zcu); + const dest_int_info = dest_ty.intInfo(zcu); - const src_is_ptr = src_ty.isPtrAtRuntime(mod); + const src_is_ptr = src_ty.isPtrAtRuntime(zcu); const src_eff_ty: Type = if (src_is_ptr) switch (dest_int_info.signedness) { .unsigned => Type.usize, .signed => Type.isize, } else src_ty; - const src_bits = src_eff_ty.bitSize(mod); - const src_int_info = if (src_eff_ty.isAbiInt(mod)) src_eff_ty.intInfo(mod) else null; + const src_bits = src_eff_ty.bitSize(zcu); + const src_int_info = if (src_eff_ty.isAbiInt(zcu)) src_eff_ty.intInfo(zcu) else null; if (dest_bits <= 64 and src_bits <= 64) { const needs_cast = src_int_info == null or (toCIntBits(dest_int_info.bits) != toCIntBits(src_int_info.?.bits) or @@ -1791,7 +1848,7 @@ pub const DeclGen = struct { try dg.renderType(w, src_eff_ty); try w.writeByte(')'); } - try context.writeValue(dg, w, src_ty, location); + try context.writeValue(dg, w, location); } else if (dest_bits <= 64 and src_bits > 64) { assert(!src_is_ptr); if (dest_bits < 64) { @@ -1802,7 +1859,7 @@ pub const DeclGen = struct { try w.writeAll("zig_lo_"); try dg.renderTypeForBuiltinFnName(w, src_eff_ty); try w.writeByte('('); - try context.writeValue(dg, w, src_ty, .FunctionArgument); + try context.writeValue(dg, w, .FunctionArgument); try w.writeByte(')'); } else if (dest_bits > 64 and src_bits <= 64) { try w.writeAll("zig_make_"); @@ -1813,7 +1870,7 @@ pub const DeclGen = struct { try dg.renderType(w, src_eff_ty); try w.writeByte(')'); } - try context.writeValue(dg, w, src_ty, .FunctionArgument); + try context.writeValue(dg, w, .FunctionArgument); try w.writeByte(')'); } else { assert(!src_is_ptr); @@ -1822,11 +1879,11 @@ pub const DeclGen = struct { try w.writeAll("(zig_hi_"); try dg.renderTypeForBuiltinFnName(w, src_eff_ty); try w.writeByte('('); - try context.writeValue(dg, w, src_ty, .FunctionArgument); + try context.writeValue(dg, w, .FunctionArgument); try w.writeAll("), zig_lo_"); try dg.renderTypeForBuiltinFnName(w, src_eff_ty); try w.writeByte('('); - try context.writeValue(dg, w, src_ty, .FunctionArgument); + try context.writeValue(dg, w, .FunctionArgument); try w.writeAll("))"); } } @@ -1848,8 +1905,8 @@ pub const DeclGen = struct { alignment: Alignment, kind: CType.Kind, ) error{ OutOfMemory, AnalysisFail }!void { - const mod = dg.module; - const alignas = CType.AlignAs.init(alignment, ty.abiAlignment(mod)); + const zcu = dg.zcu; + const alignas = CType.AlignAs.init(alignment, ty.abiAlignment(zcu)); try dg.renderCTypeAndName(w, try dg.typeToIndex(ty, kind), name, qualifiers, alignas); } @@ -1862,7 +1919,7 @@ pub const DeclGen = struct { alignas: CType.AlignAs, ) error{ OutOfMemory, AnalysisFail }!void { const store = &dg.ctypes.set; - const mod = dg.module; + const zcu = dg.zcu; switch (alignas.abiOrder()) { .lt => try w.print("zig_under_align({}) ", .{alignas.toByteUnits()}), @@ -1870,39 +1927,46 @@ pub const DeclGen = struct { .gt => try w.print("zig_align({}) ", .{alignas.toByteUnits()}), } - const trailing = try renderTypePrefix(dg.pass, store.*, mod, w, cty_idx, .suffix, qualifiers); + const trailing = try renderTypePrefix(dg.pass, store.*, zcu, w, cty_idx, .suffix, qualifiers); try w.print("{}", .{trailing}); - try dg.writeCValue(w, name); - try renderTypeSuffix(dg.pass, store.*, mod, w, cty_idx, .suffix, .{}); + try dg.writeName(w, name); + try renderTypeSuffix(dg.pass, store.*, zcu, w, cty_idx, .suffix, .{}); } fn declIsGlobal(dg: *DeclGen, val: Value) bool { - const mod = dg.module; - return switch (mod.intern_pool.indexToKey(val.ip_index)) { - .variable => |variable| mod.decl_exports.contains(variable.decl), + const zcu = dg.zcu; + return switch (zcu.intern_pool.indexToKey(val.toIntern())) { + .variable => |variable| zcu.decl_exports.contains(variable.decl), .extern_func => true, - .func => |func| mod.decl_exports.contains(func.owner_decl), + .func => |func| zcu.decl_exports.contains(func.owner_decl), else => unreachable, }; } + fn writeName(dg: *DeclGen, w: anytype, c_value: CValue) !void { + switch (c_value) { + .new_local, .local => |i| try w.print("t{d}", .{i}), + .constant => |val| try renderAnonDeclName(w, val), + .decl => |decl| try dg.renderDeclName(w, decl, 0), + .identifier => |ident| try w.print("{ }", .{fmtIdent(ident)}), + else => unreachable, + } + } + fn writeCValue(dg: *DeclGen, w: anytype, c_value: CValue) !void { switch (c_value) { - .none => unreachable, - .local, .new_local => |i| return w.print("t{d}", .{i}), - .local_ref => |i| return w.print("&t{d}", .{i}), - .constant => |val| return renderAnonDeclName(w, val), - .arg => |i| return w.print("a{d}", .{i}), - .arg_array => |i| return dg.writeCValueMember(w, .{ .arg = i }, .{ .identifier = "array" }), - .field => |i| return w.print("f{d}", .{i}), - .decl => |decl| return dg.renderDeclName(w, decl, 0), + .none, .new_local, .local, .local_ref => unreachable, + .constant => |val| try renderAnonDeclName(w, val), + .arg, .arg_array => unreachable, + .field => |i| try w.print("f{d}", .{i}), + .decl => |decl| try dg.renderDeclName(w, decl, 0), .decl_ref => |decl| { try w.writeByte('&'); - return dg.renderDeclName(w, decl, 0); + try dg.renderDeclName(w, decl, 0); }, - .undef => |ty| return dg.renderValue(w, ty, Value.undef, .Other), - .identifier => |ident| return w.print("{ }", .{fmtIdent(ident)}), - .payload_identifier => |ident| return w.print("{ }.{ }", .{ + .undef => |ty| try dg.renderUndefValue(w, ty, .Other), + .identifier => |ident| try w.print("{ }", .{fmtIdent(ident)}), + .payload_identifier => |ident| try w.print("{ }.{ }", .{ fmtIdent("payload"), fmtIdent(ident), }), @@ -1911,26 +1975,17 @@ pub const DeclGen = struct { fn writeCValueDeref(dg: *DeclGen, w: anytype, c_value: CValue) !void { switch (c_value) { - .none => unreachable, - .local, .new_local => |i| return w.print("(*t{d})", .{i}), - .local_ref => |i| return w.print("t{d}", .{i}), - .constant => unreachable, - .arg => |i| return w.print("(*a{d})", .{i}), - .arg_array => |i| { - try w.writeAll("(*"); - try dg.writeCValueMember(w, .{ .arg = i }, .{ .identifier = "array" }); - return w.writeByte(')'); - }, - .field => |i| return w.print("f{d}", .{i}), + .none, .new_local, .local, .local_ref, .constant, .arg, .arg_array => unreachable, + .field => |i| try w.print("f{d}", .{i}), .decl => |decl| { try w.writeAll("(*"); try dg.renderDeclName(w, decl, 0); - return w.writeByte(')'); + try w.writeByte(')'); }, - .decl_ref => |decl| return dg.renderDeclName(w, decl, 0), + .decl_ref => |decl| try dg.renderDeclName(w, decl, 0), .undef => unreachable, - .identifier => |ident| return w.print("(*{ })", .{fmtIdent(ident)}), - .payload_identifier => |ident| return w.print("(*{ }.{ })", .{ + .identifier => |ident| try w.print("(*{ })", .{fmtIdent(ident)}), + .payload_identifier => |ident| try w.print("(*{ }.{ })", .{ fmtIdent("payload"), fmtIdent(ident), }), @@ -1950,12 +2005,12 @@ pub const DeclGen = struct { fn writeCValueDerefMember(dg: *DeclGen, writer: anytype, c_value: CValue, member: CValue) !void { switch (c_value) { - .none, .constant, .field, .undef => unreachable, - .new_local, .local, .arg, .arg_array, .decl, .identifier, .payload_identifier => { + .none, .new_local, .local, .local_ref, .constant, .field, .undef, .arg, .arg_array => unreachable, + .decl, .identifier, .payload_identifier => { try dg.writeCValue(writer, c_value); try writer.writeAll("->"); }, - .local_ref, .decl_ref => { + .decl_ref => { try dg.writeCValueDeref(writer, c_value); try writer.writeByte('.'); }, @@ -1969,11 +2024,12 @@ pub const DeclGen = struct { variable: InternPool.Key.Variable, fwd_kind: enum { tentative, final }, ) !void { - const decl = dg.module.declPtr(decl_index); + const zcu = dg.zcu; + const decl = zcu.declPtr(decl_index); const fwd = dg.fwdDeclWriter(); const is_global = variable.is_extern or dg.declIsGlobal(decl.val); try fwd.writeAll(if (is_global) "zig_extern " else "static "); - const maybe_exports = dg.module.decl_exports.get(decl_index); + const maybe_exports = zcu.decl_exports.get(decl_index); const export_weak_linkage = if (maybe_exports) |exports| exports.items[0].opts.linkage == .weak else @@ -1982,14 +2038,14 @@ pub const DeclGen = struct { if (variable.is_threadlocal) try fwd.writeAll("zig_threadlocal "); try dg.renderTypeAndName( fwd, - decl.typeOf(dg.module), + decl.typeOf(zcu), .{ .decl = decl_index }, CQualifiers.init(.{ .@"const" = variable.is_const }), decl.alignment, .complete, ); mangled: { - const external_name = dg.module.intern_pool.stringToSlice(if (maybe_exports) |exports| + const external_name = zcu.intern_pool.stringToSlice(if (maybe_exports) |exports| exports.items[0].opts.name else if (variable.is_extern) decl.name @@ -2007,23 +2063,23 @@ pub const DeclGen = struct { } fn renderDeclName(dg: *DeclGen, writer: anytype, decl_index: InternPool.DeclIndex, export_index: u32) !void { - const mod = dg.module; - const decl = mod.declPtr(decl_index); + const zcu = dg.zcu; + const decl = zcu.declPtr(decl_index); - if (mod.decl_exports.get(decl_index)) |exports| { + if (zcu.decl_exports.get(decl_index)) |exports| { try writer.print("{ }", .{ - fmtIdent(mod.intern_pool.stringToSlice(exports.items[export_index].opts.name)), + fmtIdent(zcu.intern_pool.stringToSlice(exports.items[export_index].opts.name)), }); - } else if (decl.getExternDecl(mod).unwrap()) |extern_decl_index| { + } else if (decl.getExternDecl(zcu).unwrap()) |extern_decl_index| { try writer.print("{ }", .{ - fmtIdent(mod.intern_pool.stringToSlice(mod.declPtr(extern_decl_index).name)), + fmtIdent(zcu.intern_pool.stringToSlice(zcu.declPtr(extern_decl_index).name)), }); } else { // MSVC has a limit of 4095 character token length limit, and fmtIdent can (worst case), // expand to 3x the length of its input, but let's cut it off at a much shorter limit. var name: [100]u8 = undefined; var name_stream = std.io.fixedBufferStream(&name); - decl.renderFullyQualifiedName(mod, name_stream.writer()) catch |err| switch (err) { + decl.renderFullyQualifiedName(zcu, name_stream.writer()) catch |err| switch (err) { error.NoSpaceLeft => {}, }; try writer.print("{}__{d}", .{ @@ -2033,8 +2089,8 @@ pub const DeclGen = struct { } } - fn renderAnonDeclName(writer: anytype, anon_decl_val: InternPool.Index) !void { - return writer.print("__anon_{d}", .{@intFromEnum(anon_decl_val)}); + fn renderAnonDeclName(writer: anytype, anon_decl_val: Value) !void { + try writer.print("__anon_{d}", .{@intFromEnum(anon_decl_val.toIntern())}); } fn renderTypeForBuiltinFnName(dg: *DeclGen, writer: anytype, ty: Type) !void { @@ -2047,7 +2103,7 @@ pub const DeclGen = struct { if (cty.isBool()) signAbbrev(.unsigned) else if (cty.isInteger()) - signAbbrev(cty.signedness(dg.module.getTarget())) + signAbbrev(cty.signedness(dg.mod)) else if (cty.isFloat()) @as(u8, 'f') else if (cty.isPointer()) @@ -2056,7 +2112,7 @@ pub const DeclGen = struct { return dg.fail("TODO: CBE: implement renderTypeForBuiltinFnName for type {}", .{ cty.tag(), }), - if (cty.isFloat()) cty.floatActiveBits(dg.module.getTarget()) else dg.byteSize(cty) * 8, + if (cty.isFloat()) cty.floatActiveBits(dg.mod) else dg.byteSize(cty) * 8, }), .array => try writer.writeAll("big"), } @@ -2065,43 +2121,39 @@ pub const DeclGen = struct { fn renderBuiltinInfo(dg: *DeclGen, writer: anytype, ty: Type, info: BuiltinInfo) !void { const cty = try dg.typeToCType(ty, .complete); const is_big = cty.tag() == .array; - switch (info) { .none => if (!is_big) return, .bits => {}, } - const mod = dg.module; - const int_info = if (ty.isAbiInt(mod)) ty.intInfo(mod) else std.builtin.Type.Int{ + const zcu = dg.zcu; + const int_info = if (ty.isAbiInt(zcu)) ty.intInfo(zcu) else std.builtin.Type.Int{ .signedness = .unsigned, - .bits = @as(u16, @intCast(ty.bitSize(mod))), + .bits = @as(u16, @intCast(ty.bitSize(zcu))), }; if (is_big) try writer.print(", {}", .{int_info.signedness == .signed}); - - const bits_ty = if (is_big) Type.u16 else Type.u8; try writer.print(", {}", .{try dg.fmtIntLiteral( - bits_ty, - try mod.intValue(bits_ty, int_info.bits), + try zcu.intValue(if (is_big) Type.u16 else Type.u8, int_info.bits), .FunctionArgument, )}); } fn fmtIntLiteral( dg: *DeclGen, - ty: Type, val: Value, loc: ValueRenderLocation, ) !std.fmt.Formatter(formatIntLiteral) { - const mod = dg.module; + const zcu = dg.zcu; const kind: CType.Kind = switch (loc) { .FunctionArgument => .parameter, .Initializer, .Other => .complete, .StaticInitializer => .global, }; + const ty = val.typeOf(zcu); return std.fmt.Formatter(formatIntLiteral){ .data = .{ .dg = dg, - .int_info = ty.intInfo(mod), + .int_info = ty.intInfo(zcu), .kind = kind, .cty = try dg.typeToCType(ty, kind), .val = val, @@ -2133,7 +2185,7 @@ const RenderCTypeTrailing = enum { } }; fn renderTypeName( - mod: *Module, + zcu: *Zcu, w: anytype, idx: CType.Index, cty: CType, @@ -2157,7 +2209,7 @@ fn renderTypeName( try w.print("{s} {s}{}__{d}", .{ @tagName(tag)["fwd_".len..], attributes, - fmtIdent(mod.intern_pool.stringToSlice(mod.declPtr(owner_decl).name)), + fmtIdent(zcu.intern_pool.stringToSlice(zcu.declPtr(owner_decl).name)), @intFromEnum(owner_decl), }); }, @@ -2166,7 +2218,7 @@ fn renderTypeName( fn renderTypePrefix( pass: DeclGen.Pass, store: CType.Store.Set, - mod: *Module, + zcu: *Zcu, w: anytype, idx: CType.Index, parent_fix: CTypeFix, @@ -2224,7 +2276,7 @@ fn renderTypePrefix( const child_trailing = try renderTypePrefix( pass, store, - mod, + zcu, w, child_idx, .prefix, @@ -2247,7 +2299,7 @@ fn renderTypePrefix( => { const child_idx = cty.cast(CType.Payload.Sequence).?.data.elem_type; const child_trailing = - try renderTypePrefix(pass, store, mod, w, child_idx, .suffix, qualifiers); + try renderTypePrefix(pass, store, zcu, w, child_idx, .suffix, qualifiers); switch (parent_fix) { .prefix => { try w.print("{}(", .{child_trailing}); @@ -2262,12 +2314,12 @@ fn renderTypePrefix( => switch (pass) { .decl => |decl_index| try w.print("decl__{d}_{d}", .{ @intFromEnum(decl_index), idx }), .anon => |anon_decl| try w.print("anon__{d}_{d}", .{ @intFromEnum(anon_decl), idx }), - .flush => try renderTypeName(mod, w, idx, cty, ""), + .flush => try renderTypeName(zcu, w, idx, cty, ""), }, .fwd_struct, .fwd_union, - => try renderTypeName(mod, w, idx, cty, ""), + => try renderTypeName(zcu, w, idx, cty, ""), .unnamed_struct, .unnamed_union, @@ -2278,7 +2330,7 @@ fn renderTypePrefix( @tagName(tag)["unnamed_".len..], if (cty.isPacked()) "zig_packed(" else "", }); - try renderAggregateFields(mod, w, store, cty, 1); + try renderAggregateFields(zcu, w, store, cty, 1); if (cty.isPacked()) try w.writeByte(')'); }, @@ -2291,7 +2343,7 @@ fn renderTypePrefix( => return renderTypePrefix( pass, store, - mod, + zcu, w, cty.cast(CType.Payload.Aggregate).?.data.fwd_decl, parent_fix, @@ -2304,7 +2356,7 @@ fn renderTypePrefix( const child_trailing = try renderTypePrefix( pass, store, - mod, + zcu, w, cty.cast(CType.Payload.Function).?.data.return_type, .suffix, @@ -2331,7 +2383,7 @@ fn renderTypePrefix( fn renderTypeSuffix( pass: DeclGen.Pass, store: CType.Store.Set, - mod: *Module, + zcu: *Zcu, w: anytype, idx: CType.Index, parent_fix: CTypeFix, @@ -2385,7 +2437,7 @@ fn renderTypeSuffix( => try renderTypeSuffix( pass, store, - mod, + zcu, w, cty.cast(CType.Payload.Child).?.data, .prefix, @@ -2404,7 +2456,7 @@ fn renderTypeSuffix( try renderTypeSuffix( pass, store, - mod, + zcu, w, cty.cast(CType.Payload.Sequence).?.data.elem_type, .suffix, @@ -2444,9 +2496,9 @@ fn renderTypeSuffix( if (need_comma) try w.writeAll(", "); need_comma = true; const trailing = - try renderTypePrefix(pass, store, mod, w, param_type, .suffix, qualifiers); + try renderTypePrefix(pass, store, zcu, w, param_type, .suffix, qualifiers); if (qualifiers.contains(.@"const")) try w.print("{}a{d}", .{ trailing, param_i }); - try renderTypeSuffix(pass, store, mod, w, param_type, .suffix, .{}); + try renderTypeSuffix(pass, store, zcu, w, param_type, .suffix, .{}); } switch (tag) { .function => {}, @@ -2460,12 +2512,12 @@ fn renderTypeSuffix( if (!need_comma) try w.writeAll("void"); try w.writeByte(')'); - try renderTypeSuffix(pass, store, mod, w, data.return_type, .suffix, .{}); + try renderTypeSuffix(pass, store, zcu, w, data.return_type, .suffix, .{}); }, } } fn renderAggregateFields( - mod: *Module, + zcu: *Zcu, writer: anytype, store: CType.Store.Set, cty: CType, @@ -2480,9 +2532,9 @@ fn renderAggregateFields( .eq => {}, .gt => try writer.print("zig_align({}) ", .{field.alignas.toByteUnits()}), } - const trailing = try renderTypePrefix(.flush, store, mod, writer, field.type, .suffix, .{}); + const trailing = try renderTypePrefix(.flush, store, zcu, writer, field.type, .suffix, .{}); try writer.print("{}{ }", .{ trailing, fmtIdent(mem.span(field.name)) }); - try renderTypeSuffix(.flush, store, mod, writer, field.type, .suffix, .{}); + try renderTypeSuffix(.flush, store, zcu, writer, field.type, .suffix, .{}); try writer.writeAll(";\n"); } try writer.writeByteNTimes(' ', indent); @@ -2490,7 +2542,7 @@ fn renderAggregateFields( } pub fn genTypeDecl( - mod: *Module, + zcu: *Zcu, writer: anytype, global_store: CType.Store.Set, global_idx: CType.Index, @@ -2503,9 +2555,9 @@ pub fn genTypeDecl( switch (global_cty.tag()) { .fwd_anon_struct => if (pass != .flush) { try writer.writeAll("typedef "); - _ = try renderTypePrefix(.flush, global_store, mod, writer, global_idx, .suffix, .{}); + _ = try renderTypePrefix(.flush, global_store, zcu, writer, global_idx, .suffix, .{}); try writer.writeByte(' '); - _ = try renderTypePrefix(pass, decl_store, mod, writer, decl_idx, .suffix, .{}); + _ = try renderTypePrefix(pass, decl_store, zcu, writer, decl_idx, .suffix, .{}); try writer.writeAll(";\n"); }, @@ -2526,14 +2578,14 @@ pub fn genTypeDecl( _ = try renderTypePrefix( .flush, global_store, - mod, + zcu, writer, global_idx, .suffix, .{}, ); try writer.writeAll("; /* "); - try mod.declPtr(owner_decl).renderFullyQualifiedName(mod, writer); + try zcu.declPtr(owner_decl).renderFullyQualifiedName(zcu, writer); try writer.writeAll(" */\n"); }, @@ -2546,14 +2598,14 @@ pub fn genTypeDecl( => { const fwd_idx = global_cty.cast(CType.Payload.Aggregate).?.data.fwd_decl; try renderTypeName( - mod, + zcu, writer, fwd_idx, global_store.indexToCType(fwd_idx), if (global_cty.isPacked()) "zig_packed(" else "", ); try writer.writeByte(' '); - try renderAggregateFields(mod, writer, global_store, global_cty, 0); + try renderAggregateFields(zcu, writer, global_store, global_cty, 0); if (global_cty.isPacked()) try writer.writeByte(')'); try writer.writeAll(";\n"); }, @@ -2566,30 +2618,30 @@ pub fn genTypeDecl( } } -pub fn genGlobalAsm(mod: *Module, writer: anytype) !void { - for (mod.global_assembly.values()) |asm_source| { +pub fn genGlobalAsm(zcu: *Zcu, writer: anytype) !void { + for (zcu.global_assembly.values()) |asm_source| { try writer.print("__asm({s});\n", .{fmtStringLiteral(asm_source, null)}); } } pub fn genErrDecls(o: *Object) !void { - const mod = o.dg.module; - const ip = &mod.intern_pool; + const zcu = o.dg.zcu; + const ip = &zcu.intern_pool; const writer = o.writer(); var max_name_len: usize = 0; // do not generate an invalid empty enum when the global error set is empty - if (mod.global_error_set.keys().len > 1) { + if (zcu.global_error_set.keys().len > 1) { try writer.writeAll("enum {\n"); o.indent_writer.pushIndent(); - for (mod.global_error_set.keys()[1..], 1..) |name_nts, value| { + for (zcu.global_error_set.keys()[1..], 1..) |name_nts, value| { const name = ip.stringToSlice(name_nts); max_name_len = @max(name.len, max_name_len); - const err_val = try mod.intern(.{ .err = .{ + const err_val = try zcu.intern(.{ .err = .{ .ty = .anyerror_type, .name = name_nts, } }); - try o.dg.renderValue(writer, Type.anyerror, Value.fromInterned(err_val), .Other); + try o.dg.renderValue(writer, Value.fromInterned(err_val), .Other); try writer.print(" = {d}u,\n", .{value}); } o.indent_writer.popIndent(); @@ -2601,44 +2653,56 @@ pub fn genErrDecls(o: *Object) !void { defer o.dg.gpa.free(name_buf); @memcpy(name_buf[0..name_prefix.len], name_prefix); - for (mod.global_error_set.keys()) |name_ip| { + for (zcu.global_error_set.keys()) |name_ip| { const name = ip.stringToSlice(name_ip); @memcpy(name_buf[name_prefix.len..][0..name.len], name); const identifier = name_buf[0 .. name_prefix.len + name.len]; - const name_ty = try mod.arrayType(.{ + const name_ty = try zcu.arrayType(.{ .len = name.len, .child = .u8_type, .sentinel = .zero_u8, }); - const name_val = try mod.intern(.{ .aggregate = .{ + const name_val = try zcu.intern(.{ .aggregate = .{ .ty = name_ty.toIntern(), .storage = .{ .bytes = name }, } }); try writer.writeAll("static "); - try o.dg.renderTypeAndName(writer, name_ty, .{ .identifier = identifier }, Const, .none, .complete); + try o.dg.renderTypeAndName( + writer, + name_ty, + .{ .identifier = identifier }, + Const, + .none, + .complete, + ); try writer.writeAll(" = "); - try o.dg.renderValue(writer, name_ty, Value.fromInterned(name_val), .StaticInitializer); + try o.dg.renderValue(writer, Value.fromInterned(name_val), .StaticInitializer); try writer.writeAll(";\n"); } - const name_array_ty = try mod.arrayType(.{ - .len = mod.global_error_set.count(), + const name_array_ty = try zcu.arrayType(.{ + .len = zcu.global_error_set.count(), .child = .slice_const_u8_sentinel_0_type, }); try writer.writeAll("static "); - try o.dg.renderTypeAndName(writer, name_array_ty, .{ .identifier = array_identifier }, Const, .none, .complete); + try o.dg.renderTypeAndName( + writer, + name_array_ty, + .{ .identifier = array_identifier }, + Const, + .none, + .complete, + ); try writer.writeAll(" = {"); - for (mod.global_error_set.keys(), 0..) |name_nts, value| { + for (zcu.global_error_set.keys(), 0..) |name_nts, value| { const name = ip.stringToSlice(name_nts); if (value != 0) try writer.writeByte(','); - - const len_val = try mod.intValue(Type.usize, name.len); - try writer.print("{{" ++ name_prefix ++ "{}, {}}}", .{ - fmtIdent(name), try o.dg.fmtIntLiteral(Type.usize, len_val, .StaticInitializer), + fmtIdent(name), + try o.dg.fmtIntLiteral(try zcu.intValue(Type.usize, name.len), .StaticInitializer), }); } try writer.writeAll("};\n"); @@ -2648,16 +2712,16 @@ fn genExports(o: *Object) !void { const tracy = trace(@src()); defer tracy.end(); - const mod = o.dg.module; - const ip = &mod.intern_pool; + const zcu = o.dg.zcu; + const ip = &zcu.intern_pool; const decl_index = switch (o.dg.pass) { .decl => |decl| decl, .anon, .flush => return, }; - const decl = mod.declPtr(decl_index); + const decl = zcu.declPtr(decl_index); const fwd = o.dg.fwdDeclWriter(); - const exports = mod.decl_exports.get(decl_index) orelse return; + const exports = zcu.decl_exports.get(decl_index) orelse return; if (exports.items.len < 2) return; const is_variable_const = switch (ip.indexToKey(decl.val.toIntern())) { @@ -2685,7 +2749,7 @@ fn genExports(o: *Object) !void { const export_name = ip.stringToSlice(@"export".opts.name); try o.dg.renderTypeAndName( fwd, - decl.typeOf(mod), + decl.typeOf(zcu), .{ .identifier = export_name }, CQualifiers.init(.{ .@"const" = is_variable_const }), decl.alignment, @@ -2708,8 +2772,8 @@ fn genExports(o: *Object) !void { } pub fn genLazyFn(o: *Object, lazy_fn: LazyFnMap.Entry) !void { - const mod = o.dg.module; - const ip = &mod.intern_pool; + const zcu = o.dg.zcu; + const ip = &zcu.intern_pool; const w = o.writer(); const key = lazy_fn.key_ptr.*; const val = lazy_fn.value_ptr; @@ -2727,47 +2791,45 @@ pub fn genLazyFn(o: *Object, lazy_fn: LazyFnMap.Entry) !void { try w.writeByte('('); try o.dg.renderTypeAndName(w, enum_ty, .{ .identifier = "tag" }, Const, .none, .complete); try w.writeAll(") {\n switch (tag) {\n"); - const tag_names = enum_ty.enumFields(mod); + const tag_names = enum_ty.enumFields(zcu); for (0..tag_names.len) |tag_index| { const tag_name = ip.stringToSlice(tag_names.get(ip)[tag_index]); - const tag_val = try mod.enumValueFieldIndex(enum_ty, @intCast(tag_index)); + const tag_val = try zcu.enumValueFieldIndex(enum_ty, @intCast(tag_index)); - const int_val = try tag_val.intFromEnum(enum_ty, mod); - - const name_ty = try mod.arrayType(.{ + const name_ty = try zcu.arrayType(.{ .len = tag_name.len, .child = .u8_type, .sentinel = .zero_u8, }); - const name_val = try mod.intern(.{ .aggregate = .{ + const name_val = try zcu.intern(.{ .aggregate = .{ .ty = name_ty.toIntern(), .storage = .{ .bytes = tag_name }, } }); - const len_val = try mod.intValue(Type.usize, tag_name.len); try w.print(" case {}: {{\n static ", .{ - try o.dg.fmtIntLiteral(enum_ty, int_val, .Other), + try o.dg.fmtIntLiteral(try tag_val.intFromEnum(enum_ty, zcu), .Other), }); try o.dg.renderTypeAndName(w, name_ty, .{ .identifier = "name" }, Const, .none, .complete); try w.writeAll(" = "); - try o.dg.renderValue(w, name_ty, Value.fromInterned(name_val), .Initializer); + try o.dg.renderValue(w, Value.fromInterned(name_val), .Initializer); try w.writeAll(";\n return ("); try o.dg.renderType(w, name_slice_ty); try w.print("){{{}, {}}};\n", .{ - fmtIdent("name"), try o.dg.fmtIntLiteral(Type.usize, len_val, .Other), + fmtIdent("name"), + try o.dg.fmtIntLiteral(try zcu.intValue(Type.usize, tag_name.len), .Other), }); try w.writeAll(" }\n"); } try w.writeAll(" }\n while ("); - try o.dg.renderValue(w, Type.bool, Value.true, .Other); + try o.dg.renderValue(w, Value.true, .Other); try w.writeAll(") "); _ = try airBreakpoint(w); try w.writeAll("}\n"); }, .never_tail, .never_inline => |fn_decl_index| { - const fn_decl = mod.declPtr(fn_decl_index); - const fn_cty = try o.dg.typeToCType(fn_decl.typeOf(mod), .complete); + const fn_decl = zcu.declPtr(fn_decl_index); + const fn_cty = try o.dg.typeToCType(fn_decl.typeOf(zcu), .complete); const fn_info = fn_cty.cast(CType.Payload.Function).?.data; const fwd_decl_writer = o.dg.fwdDeclWriter(); @@ -2799,10 +2861,10 @@ pub fn genFunc(f: *Function) !void { defer tracy.end(); const o = &f.object; - const mod = o.dg.module; + const zcu = o.dg.zcu; const gpa = o.dg.gpa; const decl_index = o.dg.pass.decl; - const decl = mod.declPtr(decl_index); + const decl = zcu.declPtr(decl_index); o.code_header = std.ArrayList(u8).init(gpa); defer o.code_header.deinit(); @@ -2811,7 +2873,7 @@ pub fn genFunc(f: *Function) !void { const fwd_decl_writer = o.dg.fwdDeclWriter(); try fwd_decl_writer.writeAll(if (is_global) "zig_extern " else "static "); - if (mod.decl_exports.get(decl_index)) |exports| + if (zcu.decl_exports.get(decl_index)) |exports| if (exports.items[0].opts.linkage == .weak) try fwd_decl_writer.writeAll("zig_weak_linkage_fn "); try o.dg.renderFunctionSignature(fwd_decl_writer, decl_index, .forward, .{ .export_index = 0 }); try fwd_decl_writer.writeAll(";\n"); @@ -2819,6 +2881,8 @@ pub fn genFunc(f: *Function) !void { try o.indent_writer.insertNewline(); if (!is_global) try o.writer().writeAll("static "); + if (zcu.intern_pool.stringToSliceUnwrap(decl.@"linksection")) |s| + try o.writer().print("zig_linksection_fn({s}) ", .{fmtStringLiteral(s, null)}); try o.dg.renderFunctionSignature(o.writer(), decl_index, .complete, .{ .export_index = 0 }); try o.writer().writeByte(' '); @@ -2867,7 +2931,7 @@ pub fn genFunc(f: *Function) !void { for (free_locals.values()) |list| { for (list.keys()) |local_index| { const local = f.locals.items[local_index]; - try o.dg.renderCTypeAndName(w, local.cty_idx, .{ .local = local_index }, .{}, local.alignas); + try o.dg.renderCTypeAndName(w, local.cty_idx, .{ .local = local_index }, .{}, local.flags.alignas); try w.writeAll(";\n "); } } @@ -2884,43 +2948,41 @@ pub fn genDecl(o: *Object) !void { const tracy = trace(@src()); defer tracy.end(); - const mod = o.dg.module; + const zcu = o.dg.zcu; const decl_index = o.dg.pass.decl; - const decl = mod.declPtr(decl_index); - const decl_val = decl.val; - const decl_ty = decl_val.typeOf(mod); + const decl = zcu.declPtr(decl_index); + const decl_ty = decl.typeOf(zcu); - if (!decl_ty.isFnOrHasRuntimeBitsIgnoreComptime(mod)) return; - if (decl_val.getExternFunc(mod)) |_| { + if (!decl_ty.isFnOrHasRuntimeBitsIgnoreComptime(zcu)) return; + if (decl.val.getExternFunc(zcu)) |_| { const fwd_decl_writer = o.dg.fwdDeclWriter(); try fwd_decl_writer.writeAll("zig_extern "); try o.dg.renderFunctionSignature(fwd_decl_writer, decl_index, .forward, .{ .export_index = 0 }); try fwd_decl_writer.writeAll(";\n"); try genExports(o); - } else if (decl_val.getVariable(mod)) |variable| { + } else if (decl.val.getVariable(zcu)) |variable| { try o.dg.renderFwdDecl(decl_index, variable, .final); try genExports(o); if (variable.is_extern) return; - const is_global = variable.is_extern or o.dg.declIsGlobal(decl_val); + const is_global = variable.is_extern or o.dg.declIsGlobal(decl.val); const w = o.writer(); if (!is_global) try w.writeAll("static "); if (variable.is_weak_linkage) try w.writeAll("zig_weak_linkage "); if (variable.is_threadlocal) try w.writeAll("zig_threadlocal "); - if (mod.intern_pool.stringToSliceUnwrap(decl.@"linksection")) |s| - try w.print("zig_linksection(\"{s}\", ", .{s}); + if (zcu.intern_pool.stringToSliceUnwrap(decl.@"linksection")) |s| + try w.print("zig_linksection({s}) ", .{fmtStringLiteral(s, null)}); const decl_c_value = .{ .decl = decl_index }; try o.dg.renderTypeAndName(w, decl_ty, decl_c_value, .{}, decl.alignment, .complete); - if (decl.@"linksection" != .none) try w.writeAll(", read, write)"); try w.writeAll(" = "); - try o.dg.renderValue(w, decl_ty, Value.fromInterned(variable.init), .StaticInitializer); + try o.dg.renderValue(w, Value.fromInterned(variable.init), .StaticInitializer); try w.writeByte(';'); try o.indent_writer.insertNewline(); } else { - const is_global = o.dg.module.decl_exports.contains(decl_index); + const is_global = o.dg.zcu.decl_exports.contains(decl_index); const decl_c_value = .{ .decl = decl_index }; - try genDeclValue(o, decl_val, is_global, decl_c_value, decl.alignment, decl.@"linksection"); + try genDeclValue(o, decl.val, is_global, decl_c_value, decl.alignment, decl.@"linksection"); } } @@ -2930,19 +2992,19 @@ pub fn genDeclValue( is_global: bool, decl_c_value: CValue, alignment: Alignment, - link_section: InternPool.OptionalNullTerminatedString, + @"linksection": InternPool.OptionalNullTerminatedString, ) !void { - const mod = o.dg.module; + const zcu = o.dg.zcu; const fwd_decl_writer = o.dg.fwdDeclWriter(); - const ty = val.typeOf(mod); + const ty = val.typeOf(zcu); try fwd_decl_writer.writeAll(if (is_global) "zig_extern " else "static "); try o.dg.renderTypeAndName(fwd_decl_writer, ty, decl_c_value, Const, alignment, .complete); switch (o.dg.pass) { .decl => |decl_index| { - if (mod.decl_exports.get(decl_index)) |exports| { - const export_name = mod.intern_pool.stringToSlice(exports.items[0].opts.name); + if (zcu.decl_exports.get(decl_index)) |exports| { + const export_name = zcu.intern_pool.stringToSlice(exports.items[0].opts.name); if (isMangledIdent(export_name, true)) { try fwd_decl_writer.print(" zig_mangled_final({ }, {s})", .{ fmtIdent(export_name), fmtStringLiteral(export_name, null), @@ -2958,13 +3020,11 @@ pub fn genDeclValue( const w = o.writer(); if (!is_global) try w.writeAll("static "); - - if (mod.intern_pool.stringToSliceUnwrap(link_section)) |s| - try w.print("zig_linksection(\"{s}\", ", .{s}); + if (zcu.intern_pool.stringToSliceUnwrap(@"linksection")) |s| + try w.print("zig_linksection({s}) ", .{fmtStringLiteral(s, null)}); try o.dg.renderTypeAndName(w, ty, decl_c_value, Const, alignment, .complete); - if (link_section != .none) try w.writeAll(", read)"); try w.writeAll(" = "); - try o.dg.renderValue(w, ty, val, .StaticInitializer); + try o.dg.renderValue(w, val, .StaticInitializer); try w.writeAll(";\n"); } @@ -2972,12 +3032,12 @@ pub fn genHeader(dg: *DeclGen) error{ AnalysisFail, OutOfMemory }!void { const tracy = trace(@src()); defer tracy.end(); - const mod = dg.module; + const zcu = dg.zcu; const decl_index = dg.pass.decl; - const decl = mod.declPtr(decl_index); + const decl = zcu.declPtr(decl_index); const writer = dg.fwdDeclWriter(); - switch (decl.val.typeOf(mod).zigTypeTag(mod)) { + switch (decl.typeOf(zcu).zigTypeTag(zcu)) { .Fn => if (dg.declIsGlobal(decl.val)) { try writer.writeAll("zig_extern "); try dg.renderFunctionSignature(writer, dg.pass.decl, .complete, .{ .export_index = 0 }); @@ -3060,8 +3120,8 @@ fn genBodyResolveState(f: *Function, inst: Air.Inst.Index, leading_deaths: []con } fn genBodyInner(f: *Function, body: []const Air.Inst.Index) error{ AnalysisFail, OutOfMemory }!void { - const mod = f.object.dg.module; - const ip = &mod.intern_pool; + const zcu = f.object.dg.zcu; + const ip = &zcu.intern_pool; const air_tags = f.air.instructions.items(.tag); for (body) |inst| { @@ -3096,10 +3156,10 @@ fn genBodyInner(f: *Function, body: []const Air.Inst.Index) error{ AnalysisFail, .div_trunc, .div_exact => try airBinOp(f, inst, "/", "div_trunc", .none), .rem => blk: { const bin_op = f.air.instructions.items(.data)[@intFromEnum(inst)].bin_op; - const lhs_scalar_ty = f.typeOf(bin_op.lhs).scalarType(mod); + const lhs_scalar_ty = f.typeOf(bin_op.lhs).scalarType(zcu); // For binary operations @TypeOf(lhs)==@TypeOf(rhs), // so we only check one. - break :blk if (lhs_scalar_ty.isInt(mod)) + break :blk if (lhs_scalar_ty.isInt(zcu)) try airBinOp(f, inst, "%", "rem", .none) else try airBinFloatOp(f, inst, "fmod"); @@ -3359,10 +3419,10 @@ fn airSliceField(f: *Function, inst: Air.Inst.Index, is_ptr: bool, field_name: [ } fn airPtrElemVal(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const inst_ty = f.typeOfIndex(inst); const bin_op = f.air.instructions.items(.data)[@intFromEnum(inst)].bin_op; - if (!inst_ty.hasRuntimeBitsIgnoreComptime(mod)) { + if (!inst_ty.hasRuntimeBitsIgnoreComptime(zcu)) { try reap(f, inst, &.{ bin_op.lhs, bin_op.rhs }); return .none; } @@ -3385,14 +3445,17 @@ fn airPtrElemVal(f: *Function, inst: Air.Inst.Index) !CValue { } fn airPtrElemPtr(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const ty_pl = f.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl; const bin_op = f.air.extraData(Air.Bin, ty_pl.payload).data; const inst_ty = f.typeOfIndex(inst); const ptr_ty = f.typeOf(bin_op.lhs); - const elem_ty = ptr_ty.childType(mod); - const elem_has_bits = elem_ty.hasRuntimeBitsIgnoreComptime(mod); + const ptr_align = ptr_ty.ptrAlignment(zcu); + const elem_ty = ptr_ty.elemType2(zcu); + const elem_align = elem_ty.abiAlignment(zcu); + const is_under_aligned = ptr_align.compareStrict(.lt, elem_align); + const elem_has_bits = elem_ty.hasRuntimeBitsIgnoreComptime(zcu); const ptr = try f.resolveInst(bin_op.lhs); const index = try f.resolveInst(bin_op.rhs); @@ -3407,13 +3470,22 @@ fn airPtrElemPtr(f: *Function, inst: Air.Inst.Index) !CValue { try f.renderType(writer, inst_ty); try writer.writeByte(')'); if (elem_has_bits) try writer.writeByte('&'); - if (elem_has_bits and ptr_ty.ptrSize(mod) == .One) { + if (elem_has_bits and ptr_ty.ptrSize(zcu) == .One and !is_under_aligned) { // It's a pointer to an array, so we need to de-reference. try f.writeCValueDeref(writer, ptr); } else try f.writeCValue(writer, ptr, .Other); if (elem_has_bits) { try writer.writeByte('['); try f.writeCValue(writer, index, .Other); + if (is_under_aligned) { + const factor = @divExact(elem_align.toByteUnitsOptional().?, @min( + ptr_align.toByteUnitsOptional().?, + f.object.dg.mod.resolved_target.result.maxIntAlignment(), + )); + try writer.print(" * {}", .{ + try f.fmtIntLiteral(try zcu.intValue(Type.usize, factor)), + }); + } try writer.writeByte(']'); } try a.end(f, writer); @@ -3421,10 +3493,10 @@ fn airPtrElemPtr(f: *Function, inst: Air.Inst.Index) !CValue { } fn airSliceElemVal(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const inst_ty = f.typeOfIndex(inst); const bin_op = f.air.instructions.items(.data)[@intFromEnum(inst)].bin_op; - if (!inst_ty.hasRuntimeBitsIgnoreComptime(mod)) { + if (!inst_ty.hasRuntimeBitsIgnoreComptime(zcu)) { try reap(f, inst, &.{ bin_op.lhs, bin_op.rhs }); return .none; } @@ -3447,14 +3519,14 @@ fn airSliceElemVal(f: *Function, inst: Air.Inst.Index) !CValue { } fn airSliceElemPtr(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const ty_pl = f.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl; const bin_op = f.air.extraData(Air.Bin, ty_pl.payload).data; const inst_ty = f.typeOfIndex(inst); const slice_ty = f.typeOf(bin_op.lhs); - const elem_ty = slice_ty.elemType2(mod); - const elem_has_bits = elem_ty.hasRuntimeBitsIgnoreComptime(mod); + const elem_ty = slice_ty.elemType2(zcu); + const elem_has_bits = elem_ty.hasRuntimeBitsIgnoreComptime(zcu); const slice = try f.resolveInst(bin_op.lhs); const index = try f.resolveInst(bin_op.rhs); @@ -3477,10 +3549,10 @@ fn airSliceElemPtr(f: *Function, inst: Air.Inst.Index) !CValue { } fn airArrayElemVal(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const bin_op = f.air.instructions.items(.data)[@intFromEnum(inst)].bin_op; const inst_ty = f.typeOfIndex(inst); - if (!inst_ty.hasRuntimeBitsIgnoreComptime(mod)) { + if (!inst_ty.hasRuntimeBitsIgnoreComptime(zcu)) { try reap(f, inst, &.{ bin_op.lhs, bin_op.rhs }); return .none; } @@ -3503,33 +3575,33 @@ fn airArrayElemVal(f: *Function, inst: Air.Inst.Index) !CValue { } fn airAlloc(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const inst_ty = f.typeOfIndex(inst); - const elem_type = inst_ty.childType(mod); - if (!elem_type.isFnOrHasRuntimeBitsIgnoreComptime(mod)) return .{ .undef = inst_ty }; + const elem_type = inst_ty.childType(zcu); + if (!elem_type.isFnOrHasRuntimeBitsIgnoreComptime(zcu)) return .{ .undef = inst_ty }; const local = try f.allocLocalValue( elem_type, - inst_ty.ptrAlignment(mod), + inst_ty.ptrAlignment(zcu), ); log.debug("%{d}: allocated unfreeable t{d}", .{ inst, local.new_local }); - const gpa = f.object.dg.module.gpa; + const gpa = f.object.dg.zcu.gpa; try f.allocs.put(gpa, local.new_local, true); return .{ .local_ref = local.new_local }; } fn airRetPtr(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const inst_ty = f.typeOfIndex(inst); - const elem_ty = inst_ty.childType(mod); - if (!elem_ty.isFnOrHasRuntimeBitsIgnoreComptime(mod)) return .{ .undef = inst_ty }; + const elem_ty = inst_ty.childType(zcu); + if (!elem_ty.isFnOrHasRuntimeBitsIgnoreComptime(zcu)) return .{ .undef = inst_ty }; const local = try f.allocLocalValue( elem_ty, - inst_ty.ptrAlignment(mod), + inst_ty.ptrAlignment(zcu), ); log.debug("%{d}: allocated unfreeable t{d}", .{ inst, local.new_local }); - const gpa = f.object.dg.module.gpa; + const gpa = f.object.dg.zcu.gpa; try f.allocs.put(gpa, local.new_local, true); return .{ .local_ref = local.new_local }; } @@ -3559,15 +3631,15 @@ fn airArg(f: *Function, inst: Air.Inst.Index) !CValue { } fn airLoad(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const ty_op = f.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const ptr_ty = f.typeOf(ty_op.operand); - const ptr_scalar_ty = ptr_ty.scalarType(mod); - const ptr_info = ptr_scalar_ty.ptrInfo(mod); + const ptr_scalar_ty = ptr_ty.scalarType(zcu); + const ptr_info = ptr_scalar_ty.ptrInfo(zcu); const src_ty = Type.fromInterned(ptr_info.child); - if (!src_ty.hasRuntimeBitsIgnoreComptime(mod)) { + if (!src_ty.hasRuntimeBitsIgnoreComptime(zcu)) { try reap(f, inst, &.{ty_op.operand}); return .none; } @@ -3577,10 +3649,10 @@ fn airLoad(f: *Function, inst: Air.Inst.Index) !CValue { try reap(f, inst, &.{ty_op.operand}); const is_aligned = if (ptr_info.flags.alignment != .none) - ptr_info.flags.alignment.compare(.gte, src_ty.abiAlignment(mod)) + ptr_info.flags.alignment.compare(.gte, src_ty.abiAlignment(zcu)) else true; - const is_array = lowersToArray(src_ty, mod); + const is_array = lowersToArray(src_ty, zcu); const need_memcpy = !is_aligned or is_array; const writer = f.object.writer(); @@ -3600,12 +3672,12 @@ fn airLoad(f: *Function, inst: Air.Inst.Index) !CValue { try writer.writeAll("))"); } else if (ptr_info.packed_offset.host_size > 0 and ptr_info.flags.vector_index == .none) { const host_bits: u16 = ptr_info.packed_offset.host_size * 8; - const host_ty = try mod.intType(.unsigned, host_bits); + const host_ty = try zcu.intType(.unsigned, host_bits); - const bit_offset_ty = try mod.intType(.unsigned, Type.smallestUnsignedBits(host_bits - 1)); - const bit_offset_val = try mod.intValue(bit_offset_ty, ptr_info.packed_offset.bit_offset); + const bit_offset_ty = try zcu.intType(.unsigned, Type.smallestUnsignedBits(host_bits - 1)); + const bit_offset_val = try zcu.intValue(bit_offset_ty, ptr_info.packed_offset.bit_offset); - const field_ty = try mod.intType(.unsigned, @as(u16, @intCast(src_ty.bitSize(mod)))); + const field_ty = try zcu.intType(.unsigned, @as(u16, @intCast(src_ty.bitSize(zcu)))); try f.writeCValue(writer, local, .Other); try v.elem(f, writer); @@ -3616,9 +3688,9 @@ fn airLoad(f: *Function, inst: Air.Inst.Index) !CValue { try writer.writeAll("(("); try f.renderType(writer, field_ty); try writer.writeByte(')'); - const cant_cast = host_ty.isInt(mod) and host_ty.bitSize(mod) > 64; + const cant_cast = host_ty.isInt(zcu) and host_ty.bitSize(zcu) > 64; if (cant_cast) { - if (field_ty.bitSize(mod) > 64) return f.fail("TODO: C backend: implement casting between types > 64 bits", .{}); + if (field_ty.bitSize(zcu) > 64) return f.fail("TODO: C backend: implement casting between types > 64 bits", .{}); try writer.writeAll("zig_lo_"); try f.object.dg.renderTypeForBuiltinFnName(writer, host_ty); try writer.writeByte('('); @@ -3628,7 +3700,7 @@ fn airLoad(f: *Function, inst: Air.Inst.Index) !CValue { try writer.writeByte('('); try f.writeCValueDeref(writer, operand); try v.elem(f, writer); - try writer.print(", {})", .{try f.fmtIntLiteral(bit_offset_ty, bit_offset_val)}); + try writer.print(", {})", .{try f.fmtIntLiteral(bit_offset_val)}); if (cant_cast) try writer.writeByte(')'); try f.object.dg.renderBuiltinInfo(writer, field_ty, .bits); try writer.writeByte(')'); @@ -3646,22 +3718,22 @@ fn airLoad(f: *Function, inst: Air.Inst.Index) !CValue { } fn airRet(f: *Function, inst: Air.Inst.Index, is_ptr: bool) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const un_op = f.air.instructions.items(.data)[@intFromEnum(inst)].un_op; const writer = f.object.writer(); const op_inst = un_op.toIndex(); const op_ty = f.typeOf(un_op); - const ret_ty = if (is_ptr) op_ty.childType(mod) else op_ty; - const lowered_ret_ty = try lowerFnRetTy(ret_ty, mod); + const ret_ty = if (is_ptr) op_ty.childType(zcu) else op_ty; + const lowered_ret_ty = try lowerFnRetTy(ret_ty, zcu); if (op_inst != null and f.air.instructions.items(.tag)[@intFromEnum(op_inst.?)] == .call_always_tail) { try reap(f, inst, &.{un_op}); _ = try airCall(f, op_inst.?, .always_tail); - } else if (lowered_ret_ty.hasRuntimeBitsIgnoreComptime(mod)) { + } else if (lowered_ret_ty.hasRuntimeBitsIgnoreComptime(zcu)) { const operand = try f.resolveInst(un_op); try reap(f, inst, &.{un_op}); var deref = is_ptr; - const is_array = lowersToArray(ret_ty, mod); + const is_array = lowersToArray(ret_ty, zcu); const ret_val = if (is_array) ret_val: { const array_local = try f.allocLocal(inst, lowered_ret_ty); try writer.writeAll("memcpy("); @@ -3696,16 +3768,16 @@ fn airRet(f: *Function, inst: Air.Inst.Index, is_ptr: bool) !CValue { } fn airIntCast(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const ty_op = f.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const operand = try f.resolveInst(ty_op.operand); try reap(f, inst, &.{ty_op.operand}); const inst_ty = f.typeOfIndex(inst); - const inst_scalar_ty = inst_ty.scalarType(mod); + const inst_scalar_ty = inst_ty.scalarType(zcu); const operand_ty = f.typeOf(ty_op.operand); - const scalar_ty = operand_ty.scalarType(mod); + const scalar_ty = operand_ty.scalarType(zcu); const writer = f.object.writer(); const local = try f.allocLocal(inst, inst_ty); @@ -3722,20 +3794,20 @@ fn airIntCast(f: *Function, inst: Air.Inst.Index) !CValue { } fn airTrunc(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const ty_op = f.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const operand = try f.resolveInst(ty_op.operand); try reap(f, inst, &.{ty_op.operand}); const inst_ty = f.typeOfIndex(inst); - const inst_scalar_ty = inst_ty.scalarType(mod); - const dest_int_info = inst_scalar_ty.intInfo(mod); + const inst_scalar_ty = inst_ty.scalarType(zcu); + const dest_int_info = inst_scalar_ty.intInfo(zcu); const dest_bits = dest_int_info.bits; const dest_c_bits = toCIntBits(dest_int_info.bits) orelse return f.fail("TODO: C backend: implement integer types larger than 128 bits", .{}); const operand_ty = f.typeOf(ty_op.operand); - const scalar_ty = operand_ty.scalarType(mod); - const scalar_int_info = scalar_ty.intInfo(mod); + const scalar_ty = operand_ty.scalarType(zcu); + const scalar_int_info = scalar_ty.intInfo(zcu); const writer = f.object.writer(); const local = try f.allocLocal(inst, inst_ty); @@ -3763,18 +3835,19 @@ fn airTrunc(f: *Function, inst: Air.Inst.Index) !CValue { try v.elem(f, writer); } else switch (dest_int_info.signedness) { .unsigned => { - const mask_val = try inst_scalar_ty.maxIntScalar(mod, scalar_ty); try writer.writeAll("zig_and_"); try f.object.dg.renderTypeForBuiltinFnName(writer, scalar_ty); try writer.writeByte('('); try f.writeCValue(writer, operand, .FunctionArgument); try v.elem(f, writer); - try writer.print(", {x})", .{try f.fmtIntLiteral(scalar_ty, mask_val)}); + try writer.print(", {x})", .{ + try f.fmtIntLiteral(try inst_scalar_ty.maxIntScalar(zcu, scalar_ty)), + }); }, .signed => { const c_bits = toCIntBits(scalar_int_info.bits) orelse return f.fail("TODO: C backend: implement integer types larger than 128 bits", .{}); - const shift_val = try mod.intValue(Type.u8, c_bits - dest_bits); + const shift_val = try zcu.intValue(Type.u8, c_bits - dest_bits); try writer.writeAll("zig_shr_"); try f.object.dg.renderTypeForBuiltinFnName(writer, scalar_ty); @@ -3792,9 +3865,9 @@ fn airTrunc(f: *Function, inst: Air.Inst.Index) !CValue { try f.writeCValue(writer, operand, .FunctionArgument); try v.elem(f, writer); if (c_bits == 128) try writer.writeByte(')'); - try writer.print(", {})", .{try f.fmtIntLiteral(Type.u8, shift_val)}); + try writer.print(", {})", .{try f.fmtIntLiteral(shift_val)}); if (c_bits == 128) try writer.writeByte(')'); - try writer.print(", {})", .{try f.fmtIntLiteral(Type.u8, shift_val)}); + try writer.print(", {})", .{try f.fmtIntLiteral(shift_val)}); }, } @@ -3821,18 +3894,18 @@ fn airIntFromBool(f: *Function, inst: Air.Inst.Index) !CValue { } fn airStore(f: *Function, inst: Air.Inst.Index, safety: bool) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; // *a = b; const bin_op = f.air.instructions.items(.data)[@intFromEnum(inst)].bin_op; const ptr_ty = f.typeOf(bin_op.lhs); - const ptr_scalar_ty = ptr_ty.scalarType(mod); - const ptr_info = ptr_scalar_ty.ptrInfo(mod); + const ptr_scalar_ty = ptr_ty.scalarType(zcu); + const ptr_info = ptr_scalar_ty.ptrInfo(zcu); const ptr_val = try f.resolveInst(bin_op.lhs); const src_ty = f.typeOf(bin_op.rhs); - const val_is_undef = if (try f.air.value(bin_op.rhs, mod)) |v| v.isUndefDeep(mod) else false; + const val_is_undef = if (try f.air.value(bin_op.rhs, zcu)) |v| v.isUndefDeep(zcu) else false; if (val_is_undef) { try reap(f, inst, &.{ bin_op.lhs, bin_op.rhs }); @@ -3848,10 +3921,10 @@ fn airStore(f: *Function, inst: Air.Inst.Index, safety: bool) !CValue { } const is_aligned = if (ptr_info.flags.alignment != .none) - ptr_info.flags.alignment.compare(.gte, src_ty.abiAlignment(mod)) + ptr_info.flags.alignment.compare(.gte, src_ty.abiAlignment(zcu)) else true; - const is_array = lowersToArray(Type.fromInterned(ptr_info.child), mod); + const is_array = lowersToArray(Type.fromInterned(ptr_info.child), zcu); const need_memcpy = !is_aligned or is_array; const src_val = try f.resolveInst(bin_op.rhs); @@ -3863,7 +3936,7 @@ fn airStore(f: *Function, inst: Air.Inst.Index, safety: bool) !CValue { if (need_memcpy) { // For this memcpy to safely work we need the rhs to have the same // underlying type as the lhs (i.e. they must both be arrays of the same underlying type). - assert(src_ty.eql(Type.fromInterned(ptr_info.child), f.object.dg.module)); + assert(src_ty.eql(Type.fromInterned(ptr_info.child), f.object.dg.zcu)); // If the source is a constant, writeCValue will emit a brace initialization // so work around this by initializing into new local. @@ -3893,12 +3966,12 @@ fn airStore(f: *Function, inst: Air.Inst.Index, safety: bool) !CValue { } } else if (ptr_info.packed_offset.host_size > 0 and ptr_info.flags.vector_index == .none) { const host_bits = ptr_info.packed_offset.host_size * 8; - const host_ty = try mod.intType(.unsigned, host_bits); + const host_ty = try zcu.intType(.unsigned, host_bits); - const bit_offset_ty = try mod.intType(.unsigned, Type.smallestUnsignedBits(host_bits - 1)); - const bit_offset_val = try mod.intValue(bit_offset_ty, ptr_info.packed_offset.bit_offset); + const bit_offset_ty = try zcu.intType(.unsigned, Type.smallestUnsignedBits(host_bits - 1)); + const bit_offset_val = try zcu.intValue(bit_offset_ty, ptr_info.packed_offset.bit_offset); - const src_bits = src_ty.bitSize(mod); + const src_bits = src_ty.bitSize(zcu); const ExpectedContents = [BigInt.Managed.default_capacity]BigIntLimb; var stack align(@alignOf(ExpectedContents)) = @@ -3911,7 +3984,7 @@ fn airStore(f: *Function, inst: Air.Inst.Index, safety: bool) !CValue { try mask.shiftLeft(&mask, ptr_info.packed_offset.bit_offset); try mask.bitNotWrap(&mask, .unsigned, host_bits); - const mask_val = try mod.intValue_big(host_ty, mask.toConst()); + const mask_val = try zcu.intValue_big(host_ty, mask.toConst()); try f.writeCValueDeref(writer, ptr_val); try v.elem(f, writer); @@ -3922,12 +3995,12 @@ fn airStore(f: *Function, inst: Air.Inst.Index, safety: bool) !CValue { try writer.writeByte('('); try f.writeCValueDeref(writer, ptr_val); try v.elem(f, writer); - try writer.print(", {x}), zig_shl_", .{try f.fmtIntLiteral(host_ty, mask_val)}); + try writer.print(", {x}), zig_shl_", .{try f.fmtIntLiteral(mask_val)}); try f.object.dg.renderTypeForBuiltinFnName(writer, host_ty); try writer.writeByte('('); - const cant_cast = host_ty.isInt(mod) and host_ty.bitSize(mod) > 64; + const cant_cast = host_ty.isInt(zcu) and host_ty.bitSize(zcu) > 64; if (cant_cast) { - if (src_ty.bitSize(mod) > 64) return f.fail("TODO: C backend: implement casting between types > 64 bits", .{}); + if (src_ty.bitSize(zcu) > 64) return f.fail("TODO: C backend: implement casting between types > 64 bits", .{}); try writer.writeAll("zig_make_"); try f.object.dg.renderTypeForBuiltinFnName(writer, host_ty); try writer.writeAll("(0, "); @@ -3937,7 +4010,7 @@ fn airStore(f: *Function, inst: Air.Inst.Index, safety: bool) !CValue { try writer.writeByte(')'); } - if (src_ty.isPtrAtRuntime(mod)) { + if (src_ty.isPtrAtRuntime(zcu)) { try writer.writeByte('('); try f.renderType(writer, Type.usize); try writer.writeByte(')'); @@ -3945,7 +4018,7 @@ fn airStore(f: *Function, inst: Air.Inst.Index, safety: bool) !CValue { try f.writeCValue(writer, src_val, .Other); try v.elem(f, writer); if (cant_cast) try writer.writeByte(')'); - try writer.print(", {}))", .{try f.fmtIntLiteral(bit_offset_ty, bit_offset_val)}); + try writer.print(", {}))", .{try f.fmtIntLiteral(bit_offset_val)}); } else { try f.writeCValueDeref(writer, ptr_val); try v.elem(f, writer); @@ -3960,7 +4033,7 @@ fn airStore(f: *Function, inst: Air.Inst.Index, safety: bool) !CValue { } fn airOverflow(f: *Function, inst: Air.Inst.Index, operation: []const u8, info: BuiltinInfo) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const ty_pl = f.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl; const bin_op = f.air.extraData(Air.Bin, ty_pl.payload).data; @@ -3970,7 +4043,7 @@ fn airOverflow(f: *Function, inst: Air.Inst.Index, operation: []const u8, info: const inst_ty = f.typeOfIndex(inst); const operand_ty = f.typeOf(bin_op.lhs); - const scalar_ty = operand_ty.scalarType(mod); + const scalar_ty = operand_ty.scalarType(zcu); const w = f.object.writer(); const local = try f.allocLocal(inst, inst_ty); @@ -3998,11 +4071,11 @@ fn airOverflow(f: *Function, inst: Air.Inst.Index, operation: []const u8, info: } fn airNot(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const ty_op = f.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const operand_ty = f.typeOf(ty_op.operand); - const scalar_ty = operand_ty.scalarType(mod); - if (scalar_ty.ip_index != .bool_type) return try airUnBuiltinCall(f, inst, "not", .bits); + const scalar_ty = operand_ty.scalarType(zcu); + if (scalar_ty.toIntern() != .bool_type) return try airUnBuiltinCall(f, inst, "not", .bits); const op = try f.resolveInst(ty_op.operand); try reap(f, inst, &.{ty_op.operand}); @@ -4031,11 +4104,11 @@ fn airBinOp( operation: []const u8, info: BuiltinInfo, ) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const bin_op = f.air.instructions.items(.data)[@intFromEnum(inst)].bin_op; const operand_ty = f.typeOf(bin_op.lhs); - const scalar_ty = operand_ty.scalarType(mod); - if ((scalar_ty.isInt(mod) and scalar_ty.bitSize(mod) > 64) or scalar_ty.isRuntimeFloat()) + const scalar_ty = operand_ty.scalarType(zcu); + if ((scalar_ty.isInt(zcu) and scalar_ty.bitSize(zcu) > 64) or scalar_ty.isRuntimeFloat()) return try airBinBuiltinCall(f, inst, operation, info); const lhs = try f.resolveInst(bin_op.lhs); @@ -4069,12 +4142,12 @@ fn airCmpOp( data: anytype, operator: std.math.CompareOperator, ) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const lhs_ty = f.typeOf(data.lhs); - const scalar_ty = lhs_ty.scalarType(mod); + const scalar_ty = lhs_ty.scalarType(zcu); - const scalar_bits = scalar_ty.bitSize(mod); - if (scalar_ty.isInt(mod) and scalar_bits > 64) + const scalar_bits = scalar_ty.bitSize(zcu); + if (scalar_ty.isInt(zcu) and scalar_bits > 64) return airCmpBuiltinCall( f, inst, @@ -4092,7 +4165,7 @@ fn airCmpOp( try reap(f, inst, &.{ data.lhs, data.rhs }); const rhs_ty = f.typeOf(data.rhs); - const need_cast = lhs_ty.isSinglePointer(mod) or rhs_ty.isSinglePointer(mod); + const need_cast = lhs_ty.isSinglePointer(zcu) or rhs_ty.isSinglePointer(zcu); const writer = f.object.writer(); const local = try f.allocLocal(inst, inst_ty); const v = try Vectorize.start(f, inst, writer, lhs_ty); @@ -4117,12 +4190,12 @@ fn airEquality( inst: Air.Inst.Index, operator: std.math.CompareOperator, ) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const bin_op = f.air.instructions.items(.data)[@intFromEnum(inst)].bin_op; const operand_ty = f.typeOf(bin_op.lhs); - const operand_bits = operand_ty.bitSize(mod); - if (operand_ty.isInt(mod) and operand_bits > 64) + const operand_bits = operand_ty.bitSize(zcu); + if (operand_ty.isInt(zcu) and operand_bits > 64) return airCmpBuiltinCall( f, inst, @@ -4145,7 +4218,7 @@ fn airEquality( try f.writeCValue(writer, local, .Other); try a.assign(f, writer); - if (operand_ty.zigTypeTag(mod) == .Optional and !operand_ty.optionalReprIsPayload(mod)) { + if (operand_ty.zigTypeTag(zcu) == .Optional and !operand_ty.optionalReprIsPayload(zcu)) { try f.writeCValueMember(writer, lhs, .{ .identifier = "is_null" }); try writer.writeAll(" || "); try f.writeCValueMember(writer, rhs, .{ .identifier = "is_null" }); @@ -4184,7 +4257,7 @@ fn airCmpLtErrorsLen(f: *Function, inst: Air.Inst.Index) !CValue { } fn airPtrAddSub(f: *Function, inst: Air.Inst.Index, operator: u8) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const ty_pl = f.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl; const bin_op = f.air.extraData(Air.Bin, ty_pl.payload).data; @@ -4193,8 +4266,8 @@ fn airPtrAddSub(f: *Function, inst: Air.Inst.Index, operator: u8) !CValue { try reap(f, inst, &.{ bin_op.lhs, bin_op.rhs }); const inst_ty = f.typeOfIndex(inst); - const inst_scalar_ty = inst_ty.scalarType(mod); - const elem_ty = inst_scalar_ty.elemType2(mod); + const inst_scalar_ty = inst_ty.scalarType(zcu); + const elem_ty = inst_scalar_ty.elemType2(zcu); const local = try f.allocLocal(inst, inst_ty); const writer = f.object.writer(); @@ -4203,7 +4276,7 @@ fn airPtrAddSub(f: *Function, inst: Air.Inst.Index, operator: u8) !CValue { try v.elem(f, writer); try writer.writeAll(" = "); - if (elem_ty.hasRuntimeBitsIgnoreComptime(mod)) { + if (elem_ty.hasRuntimeBitsIgnoreComptime(zcu)) { // We must convert to and from integer types to prevent UB if the operation // results in a NULL pointer, or if LHS is NULL. The operation is only UB // if the result is NULL and then dereferenced. @@ -4232,13 +4305,13 @@ fn airPtrAddSub(f: *Function, inst: Air.Inst.Index, operator: u8) !CValue { } fn airMinMax(f: *Function, inst: Air.Inst.Index, operator: u8, operation: []const u8) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const bin_op = f.air.instructions.items(.data)[@intFromEnum(inst)].bin_op; const inst_ty = f.typeOfIndex(inst); - const inst_scalar_ty = inst_ty.scalarType(mod); + const inst_scalar_ty = inst_ty.scalarType(zcu); - if (inst_scalar_ty.isInt(mod) and inst_scalar_ty.bitSize(mod) > 64) + if (inst_scalar_ty.isInt(zcu) and inst_scalar_ty.bitSize(zcu) > 64) return try airBinBuiltinCall(f, inst, operation[1..], .none); if (inst_scalar_ty.isRuntimeFloat()) return try airBinFloatOp(f, inst, operation); @@ -4274,7 +4347,7 @@ fn airMinMax(f: *Function, inst: Air.Inst.Index, operator: u8, operation: []cons } fn airSlice(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const ty_pl = f.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl; const bin_op = f.air.extraData(Air.Bin, ty_pl.payload).data; @@ -4283,7 +4356,7 @@ fn airSlice(f: *Function, inst: Air.Inst.Index) !CValue { try reap(f, inst, &.{ bin_op.lhs, bin_op.rhs }); const inst_ty = f.typeOfIndex(inst); - const ptr_ty = inst_ty.slicePtrFieldType(mod); + const ptr_ty = inst_ty.slicePtrFieldType(zcu); const writer = f.object.writer(); const local = try f.allocLocal(inst, inst_ty); @@ -4291,9 +4364,6 @@ fn airSlice(f: *Function, inst: Air.Inst.Index) !CValue { const a = try Assignment.start(f, writer, ptr_ty); try f.writeCValueMember(writer, local, .{ .identifier = "ptr" }); try a.assign(f, writer); - try writer.writeByte('('); - try f.renderType(writer, ptr_ty); - try writer.writeByte(')'); try f.writeCValue(writer, ptr, .Other); try a.end(f, writer); } @@ -4301,7 +4371,7 @@ fn airSlice(f: *Function, inst: Air.Inst.Index) !CValue { const a = try Assignment.start(f, writer, Type.usize); try f.writeCValueMember(writer, local, .{ .identifier = "len" }); try a.assign(f, writer); - try f.writeCValue(writer, len, .Other); + try f.writeCValue(writer, len, .Initializer); try a.end(f, writer); } return local; @@ -4312,7 +4382,7 @@ fn airCall( inst: Air.Inst.Index, modifier: std.builtin.CallModifier, ) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; // Not even allowed to call panic in a naked function. if (f.object.dg.is_naked_fn) return .none; @@ -4334,7 +4404,7 @@ fn airCall( } resolved_arg.* = try f.resolveInst(arg); if (arg_cty != try f.typeToIndex(arg_ty, .complete)) { - const lowered_arg_ty = try lowerFnRetTy(arg_ty, mod); + const lowered_arg_ty = try lowerFnRetTy(arg_ty, zcu); const array_local = try f.allocLocal(inst, lowered_arg_ty); try writer.writeAll("memcpy("); @@ -4357,20 +4427,19 @@ fn airCall( } const callee_ty = f.typeOf(pl_op.operand); - const fn_ty = switch (callee_ty.zigTypeTag(mod)) { + const fn_info = zcu.typeToFunc(switch (callee_ty.zigTypeTag(zcu)) { .Fn => callee_ty, - .Pointer => callee_ty.childType(mod), + .Pointer => callee_ty.childType(zcu), else => unreachable, - }; - - const ret_ty = fn_ty.fnReturnType(mod); - const lowered_ret_ty = try lowerFnRetTy(ret_ty, mod); + }).?; + const ret_ty = Type.fromInterned(fn_info.return_type); + const lowered_ret_ty = try lowerFnRetTy(ret_ty, zcu); const result_local = result: { if (modifier == .always_tail) { try writer.writeAll("zig_always_tail return "); break :result .none; - } else if (!lowered_ret_ty.hasRuntimeBitsIgnoreComptime(mod)) { + } else if (!lowered_ret_ty.hasRuntimeBitsIgnoreComptime(zcu)) { break :result .none; } else if (f.liveness.isUnused(inst)) { try writer.writeByte('('); @@ -4388,8 +4457,8 @@ fn airCall( callee: { known: { const fn_decl = fn_decl: { - const callee_val = (try f.air.value(pl_op.operand, mod)) orelse break :known; - break :fn_decl switch (mod.intern_pool.indexToKey(callee_val.ip_index)) { + const callee_val = (try f.air.value(pl_op.operand, zcu)) orelse break :known; + break :fn_decl switch (zcu.intern_pool.indexToKey(callee_val.toIntern())) { .extern_func => |extern_func| extern_func.decl, .func => |func| func.owner_decl, .ptr => |ptr| switch (ptr.addr) { @@ -4420,18 +4489,21 @@ fn airCall( } try writer.writeByte('('); - var args_written: usize = 0; + var need_comma = false; for (resolved_args) |resolved_arg| { if (resolved_arg == .none) continue; - if (args_written != 0) try writer.writeAll(", "); + if (need_comma) try writer.writeAll(", "); + need_comma = true; try f.writeCValue(writer, resolved_arg, .FunctionArgument); - if (resolved_arg == .new_local) try freeLocal(f, inst, resolved_arg.new_local, null); - args_written += 1; + switch (resolved_arg) { + .new_local => |local| try freeLocal(f, inst, local, null), + else => {}, + } } try writer.writeAll(");\n"); const result = result: { - if (result_local == .none or !lowersToArray(ret_ty, mod)) + if (result_local == .none or !lowersToArray(ret_ty, zcu)) break :result result_local; const array_local = try f.allocLocal(inst, ret_ty); @@ -4465,22 +4537,22 @@ fn airDbgStmt(f: *Function, inst: Air.Inst.Index) !CValue { } fn airDbgInlineBlock(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const ty_pl = f.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl; const extra = f.air.extraData(Air.DbgInlineBlock, ty_pl.payload); - const owner_decl = mod.funcOwnerDeclPtr(extra.data.func); + const owner_decl = zcu.funcOwnerDeclPtr(extra.data.func); const writer = f.object.writer(); try writer.writeAll("/* "); - try owner_decl.renderFullyQualifiedName(mod, writer); + try owner_decl.renderFullyQualifiedName(zcu, writer); try writer.writeAll(" */ "); return lowerBlock(f, inst, @ptrCast(f.air.extra[extra.end..][0..extra.data.body_len])); } fn airDbgVar(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const pl_op = f.air.instructions.items(.data)[@intFromEnum(inst)].pl_op; const name = f.air.nullTerminatedString(pl_op.payload); - const operand_is_undef = if (try f.air.value(pl_op.operand, mod)) |v| v.isUndefDeep(mod) else false; + const operand_is_undef = if (try f.air.value(pl_op.operand, zcu)) |v| v.isUndefDeep(zcu) else false; if (!operand_is_undef) _ = try f.resolveInst(pl_op.operand); try reap(f, inst, &.{pl_op.operand}); @@ -4496,7 +4568,7 @@ fn airBlock(f: *Function, inst: Air.Inst.Index) !CValue { } fn lowerBlock(f: *Function, inst: Air.Inst.Index, body: []const Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const liveness_block = f.liveness.getBlock(inst); const block_id: usize = f.next_block_index; @@ -4504,7 +4576,7 @@ fn lowerBlock(f: *Function, inst: Air.Inst.Index, body: []const Air.Inst.Index) const writer = f.object.writer(); const inst_ty = f.typeOfIndex(inst); - const result = if (inst_ty.hasRuntimeBitsIgnoreComptime(mod) and !f.liveness.isUnused(inst)) + const result = if (inst_ty.hasRuntimeBitsIgnoreComptime(zcu) and !f.liveness.isUnused(inst)) try f.allocLocal(inst, inst_ty) else .none; @@ -4526,7 +4598,7 @@ fn lowerBlock(f: *Function, inst: Air.Inst.Index, body: []const Air.Inst.Index) try f.object.indent_writer.insertNewline(); // noreturn blocks have no `br` instructions reaching them, so we don't want a label - if (!f.typeOfIndex(inst).isNoReturn(mod)) { + if (!f.typeOfIndex(inst).isNoReturn(zcu)) { // label must be followed by an expression, include an empty one. try writer.print("zig_block_{d}:;\n", .{block_id}); } @@ -4543,11 +4615,11 @@ fn airTry(f: *Function, inst: Air.Inst.Index) !CValue { } fn airTryPtr(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const ty_pl = f.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl; const extra = f.air.extraData(Air.TryPtr, ty_pl.payload); const body: []const Air.Inst.Index = @ptrCast(f.air.extra[extra.end..][0..extra.data.body_len]); - const err_union_ty = f.typeOf(extra.data.ptr).childType(mod); + const err_union_ty = f.typeOf(extra.data.ptr).childType(zcu); return lowerTry(f, inst, extra.data.ptr, body, err_union_ty, true); } @@ -4559,15 +4631,15 @@ fn lowerTry( err_union_ty: Type, is_ptr: bool, ) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const err_union = try f.resolveInst(operand); const inst_ty = f.typeOfIndex(inst); const liveness_condbr = f.liveness.getCondBr(inst); const writer = f.object.writer(); - const payload_ty = err_union_ty.errorUnionPayload(mod); - const payload_has_bits = payload_ty.hasRuntimeBitsIgnoreComptime(mod); + const payload_ty = err_union_ty.errorUnionPayload(zcu); + const payload_has_bits = payload_ty.hasRuntimeBitsIgnoreComptime(zcu); - if (!err_union_ty.errorUnionSet(mod).errorSetIsEmpty(mod)) { + if (!err_union_ty.errorUnionSet(zcu).errorSetIsEmpty(zcu)) { try writer.writeAll("if ("); if (!payload_has_bits) { if (is_ptr) @@ -4661,7 +4733,7 @@ const LocalResult = struct { need_free: bool, fn move(lr: LocalResult, f: *Function, inst: Air.Inst.Index, dest_ty: Type) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; if (lr.need_free) { // Move the freshly allocated local to be owned by this instruction, @@ -4673,7 +4745,7 @@ const LocalResult = struct { try lr.free(f); const writer = f.object.writer(); try f.writeCValue(writer, local, .Other); - if (dest_ty.isAbiInt(mod)) { + if (dest_ty.isAbiInt(zcu)) { try writer.writeAll(" = "); } else { try writer.writeAll(" = ("); @@ -4693,13 +4765,13 @@ const LocalResult = struct { }; fn bitcast(f: *Function, dest_ty: Type, operand: CValue, operand_ty: Type) !LocalResult { - const mod = f.object.dg.module; - const target = mod.getTarget(); + const zcu = f.object.dg.zcu; + const target = &f.object.dg.mod.resolved_target.result; const writer = f.object.writer(); - if (operand_ty.isAbiInt(mod) and dest_ty.isAbiInt(mod)) { - const src_info = dest_ty.intInfo(mod); - const dest_info = operand_ty.intInfo(mod); + if (operand_ty.isAbiInt(zcu) and dest_ty.isAbiInt(zcu)) { + const src_info = dest_ty.intInfo(zcu); + const dest_info = operand_ty.intInfo(zcu); if (src_info.signedness == dest_info.signedness and src_info.bits == dest_info.bits) { @@ -4710,7 +4782,7 @@ fn bitcast(f: *Function, dest_ty: Type, operand: CValue, operand_ty: Type) !Loca } } - if (dest_ty.isPtrAtRuntime(mod) and operand_ty.isPtrAtRuntime(mod)) { + if (dest_ty.isPtrAtRuntime(zcu) and operand_ty.isPtrAtRuntime(zcu)) { const local = try f.allocLocal(null, dest_ty); try f.writeCValue(writer, local, .Other); try writer.writeAll(" = ("); @@ -4727,7 +4799,7 @@ fn bitcast(f: *Function, dest_ty: Type, operand: CValue, operand_ty: Type) !Loca const operand_lval = if (operand == .constant) blk: { const operand_local = try f.allocLocal(null, operand_ty); try f.writeCValue(writer, operand_local, .Other); - if (operand_ty.isAbiInt(mod)) { + if (operand_ty.isAbiInt(zcu)) { try writer.writeAll(" = "); } else { try writer.writeAll(" = ("); @@ -4747,14 +4819,14 @@ fn bitcast(f: *Function, dest_ty: Type, operand: CValue, operand_ty: Type) !Loca try writer.writeAll(", sizeof("); try f.renderType( writer, - if (dest_ty.abiSize(mod) <= operand_ty.abiSize(mod)) dest_ty else operand_ty, + if (dest_ty.abiSize(zcu) <= operand_ty.abiSize(zcu)) dest_ty else operand_ty, ); try writer.writeAll("));\n"); // Ensure padding bits have the expected value. - if (dest_ty.isAbiInt(mod)) { + if (dest_ty.isAbiInt(zcu)) { const dest_cty = try f.typeToCType(dest_ty, .complete); - const dest_info = dest_ty.intInfo(mod); + const dest_info = dest_ty.intInfo(zcu); var bits: u16 = dest_info.bits; var wrap_cty: ?CType = null; var need_bitcasts = false; @@ -4779,7 +4851,7 @@ fn bitcast(f: *Function, dest_ty: Type, operand: CValue, operand_ty: Type) !Loca try writer.writeByte('('); } try writer.writeAll("zig_wrap_"); - const info_ty = try mod.intType(dest_info.signedness, bits); + const info_ty = try zcu.intType(dest_info.signedness, bits); if (wrap_cty) |cty| try f.object.dg.renderCTypeForBuiltinFnName(writer, cty) else @@ -4912,7 +4984,7 @@ fn airCondBr(f: *Function, inst: Air.Inst.Index) !CValue { } fn airSwitchBr(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const pl_op = f.air.instructions.items(.data)[@intFromEnum(inst)].pl_op; const condition = try f.resolveInst(pl_op.operand); try reap(f, inst, &.{pl_op.operand}); @@ -4921,11 +4993,11 @@ fn airSwitchBr(f: *Function, inst: Air.Inst.Index) !CValue { const writer = f.object.writer(); try writer.writeAll("switch ("); - if (condition_ty.zigTypeTag(mod) == .Bool) { + if (condition_ty.zigTypeTag(zcu) == .Bool) { try writer.writeByte('('); try f.renderType(writer, Type.u1); try writer.writeByte(')'); - } else if (condition_ty.isPtrAtRuntime(mod)) { + } else if (condition_ty.isPtrAtRuntime(zcu)) { try writer.writeByte('('); try f.renderType(writer, Type.usize); try writer.writeByte(')'); @@ -4952,12 +5024,12 @@ fn airSwitchBr(f: *Function, inst: Air.Inst.Index) !CValue { for (items) |item| { try f.object.indent_writer.insertNewline(); try writer.writeAll("case "); - if (condition_ty.isPtrAtRuntime(mod)) { + if (condition_ty.isPtrAtRuntime(zcu)) { try writer.writeByte('('); try f.renderType(writer, Type.usize); try writer.writeByte(')'); } - try f.object.dg.renderValue(writer, condition_ty, (try f.air.value(item, mod)).?, .Other); + try f.object.dg.renderValue(writer, (try f.air.value(item, zcu)).?, .Other); try writer.writeByte(':'); } try writer.writeByte(' '); @@ -4994,13 +5066,13 @@ fn airSwitchBr(f: *Function, inst: Air.Inst.Index) !CValue { } fn asmInputNeedsLocal(f: *Function, constraint: []const u8, value: CValue) bool { - const target = f.object.dg.module.getTarget(); + const target = &f.object.dg.mod.resolved_target.result; return switch (constraint[0]) { '{' => true, 'i', 'r' => false, 'I' => !target.cpu.arch.isArmOrThumb(), else => switch (value) { - .constant => |val| switch (f.object.dg.module.intern_pool.indexToKey(val)) { + .constant => |val| switch (f.object.dg.zcu.intern_pool.indexToKey(val.toIntern())) { .ptr => |ptr| switch (ptr.addr) { .decl => false, else => true, @@ -5013,7 +5085,7 @@ fn asmInputNeedsLocal(f: *Function, constraint: []const u8, value: CValue) bool } fn airAsm(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const ty_pl = f.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl; const extra = f.air.extraData(Air.Asm, ty_pl.payload); const is_volatile = @as(u1, @truncate(extra.data.flags >> 31)) != 0; @@ -5028,7 +5100,7 @@ fn airAsm(f: *Function, inst: Air.Inst.Index) !CValue { const result = result: { const writer = f.object.writer(); const inst_ty = f.typeOfIndex(inst); - const local = if (inst_ty.hasRuntimeBitsIgnoreComptime(mod)) local: { + const local = if (inst_ty.hasRuntimeBitsIgnoreComptime(zcu)) local: { const local = try f.allocLocal(inst, inst_ty); if (f.wantSafety()) { try f.writeCValue(writer, local, .Other); @@ -5057,7 +5129,7 @@ fn airAsm(f: *Function, inst: Air.Inst.Index) !CValue { const is_reg = constraint[1] == '{'; if (is_reg) { - const output_ty = if (output == .none) inst_ty else f.typeOf(output).childType(mod); + const output_ty = if (output == .none) inst_ty else f.typeOf(output).childType(zcu); try writer.writeAll("register "); const alignment: Alignment = .none; const local_value = try f.allocLocalValue(output_ty, alignment); @@ -5275,7 +5347,7 @@ fn airIsNull( operator: []const u8, is_ptr: bool, ) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const un_op = f.air.instructions.items(.data)[@intFromEnum(inst)].un_op; const writer = f.object.writer(); @@ -5292,22 +5364,22 @@ fn airIsNull( } const operand_ty = f.typeOf(un_op); - const optional_ty = if (is_ptr) operand_ty.childType(mod) else operand_ty; - const payload_ty = optional_ty.optionalChild(mod); - const err_int_ty = try mod.errorIntType(); + const optional_ty = if (is_ptr) operand_ty.childType(zcu) else operand_ty; + const payload_ty = optional_ty.optionalChild(zcu); + const err_int_ty = try zcu.errorIntType(); - const rhs = if (!payload_ty.hasRuntimeBitsIgnoreComptime(mod)) + const rhs = if (!payload_ty.hasRuntimeBitsIgnoreComptime(zcu)) Value.true - else if (optional_ty.isPtrLikeOptional(mod)) + else if (optional_ty.isPtrLikeOptional(zcu)) // operand is a regular pointer, test `operand !=/== NULL` - try mod.getCoerced(Value.null, optional_ty) - else if (payload_ty.zigTypeTag(mod) == .ErrorSet) - try mod.intValue(err_int_ty, 0) - else if (payload_ty.isSlice(mod) and optional_ty.optionalReprIsPayload(mod)) rhs: { + try zcu.getCoerced(Value.null, optional_ty) + else if (payload_ty.zigTypeTag(zcu) == .ErrorSet) + try zcu.intValue(err_int_ty, 0) + else if (payload_ty.isSlice(zcu) and optional_ty.optionalReprIsPayload(zcu)) rhs: { try writer.writeAll(".ptr"); - const slice_ptr_ty = payload_ty.slicePtrFieldType(mod); - const opt_slice_ptr_ty = try mod.optionalType(slice_ptr_ty.toIntern()); - break :rhs try mod.nullValue(opt_slice_ptr_ty); + const slice_ptr_ty = payload_ty.slicePtrFieldType(zcu); + const opt_slice_ptr_ty = try zcu.optionalType(slice_ptr_ty.toIntern()); + break :rhs try zcu.nullValue(opt_slice_ptr_ty); } else rhs: { try writer.writeAll(".is_null"); break :rhs Value.true; @@ -5315,22 +5387,22 @@ fn airIsNull( try writer.writeByte(' '); try writer.writeAll(operator); try writer.writeByte(' '); - try f.object.dg.renderValue(writer, rhs.typeOf(mod), rhs, .Other); + try f.object.dg.renderValue(writer, rhs, .Other); try writer.writeAll(";\n"); return local; } fn airOptionalPayload(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const ty_op = f.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const operand = try f.resolveInst(ty_op.operand); try reap(f, inst, &.{ty_op.operand}); const opt_ty = f.typeOf(ty_op.operand); - const payload_ty = opt_ty.optionalChild(mod); + const payload_ty = opt_ty.optionalChild(zcu); - if (!payload_ty.hasRuntimeBitsIgnoreComptime(mod)) { + if (!payload_ty.hasRuntimeBitsIgnoreComptime(zcu)) { return .none; } @@ -5338,7 +5410,7 @@ fn airOptionalPayload(f: *Function, inst: Air.Inst.Index) !CValue { const writer = f.object.writer(); const local = try f.allocLocal(inst, inst_ty); - if (opt_ty.optionalReprIsPayload(mod)) { + if (opt_ty.optionalReprIsPayload(zcu)) { try f.writeCValue(writer, local, .Other); try writer.writeAll(" = "); try f.writeCValue(writer, operand, .Other); @@ -5355,24 +5427,24 @@ fn airOptionalPayload(f: *Function, inst: Air.Inst.Index) !CValue { } fn airOptionalPayloadPtr(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const ty_op = f.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const writer = f.object.writer(); const operand = try f.resolveInst(ty_op.operand); try reap(f, inst, &.{ty_op.operand}); const ptr_ty = f.typeOf(ty_op.operand); - const opt_ty = ptr_ty.childType(mod); + const opt_ty = ptr_ty.childType(zcu); const inst_ty = f.typeOfIndex(inst); - if (!inst_ty.childType(mod).hasRuntimeBitsIgnoreComptime(mod)) { + if (!inst_ty.childType(zcu).hasRuntimeBitsIgnoreComptime(zcu)) { return .{ .undef = inst_ty }; } const local = try f.allocLocal(inst, inst_ty); try f.writeCValue(writer, local, .Other); - if (opt_ty.optionalReprIsPayload(mod)) { + if (opt_ty.optionalReprIsPayload(zcu)) { // the operand is just a regular pointer, no need to do anything special. // *?*T -> **T and ?*T -> *T are **T -> **T and *T -> *T in C try writer.writeAll(" = "); @@ -5386,18 +5458,18 @@ fn airOptionalPayloadPtr(f: *Function, inst: Air.Inst.Index) !CValue { } fn airOptionalPayloadPtrSet(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const ty_op = f.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const writer = f.object.writer(); const operand = try f.resolveInst(ty_op.operand); try reap(f, inst, &.{ty_op.operand}); const operand_ty = f.typeOf(ty_op.operand); - const opt_ty = operand_ty.childType(mod); + const opt_ty = operand_ty.childType(zcu); const inst_ty = f.typeOfIndex(inst); - if (opt_ty.optionalReprIsPayload(mod)) { + if (opt_ty.optionalReprIsPayload(zcu)) { if (f.liveness.isUnused(inst)) { return .none; } @@ -5412,7 +5484,7 @@ fn airOptionalPayloadPtrSet(f: *Function, inst: Air.Inst.Index) !CValue { } else { try f.writeCValueDeref(writer, operand); try writer.writeAll(".is_null = "); - try f.object.dg.renderValue(writer, Type.bool, Value.false, .Initializer); + try f.object.dg.renderValue(writer, Value.false, .Initializer); try writer.writeAll(";\n"); if (f.liveness.isUnused(inst)) { @@ -5432,50 +5504,50 @@ fn fieldLocation( container_ptr_ty: Type, field_ptr_ty: Type, field_index: u32, - mod: *Module, + zcu: *Zcu, ) union(enum) { begin: void, field: CValue, byte_offset: u32, end: void, } { - const ip = &mod.intern_pool; - const container_ty = container_ptr_ty.childType(mod); - return switch (container_ty.zigTypeTag(mod)) { + const ip = &zcu.intern_pool; + const container_ty = container_ptr_ty.childType(zcu); + return switch (container_ty.zigTypeTag(zcu)) { .Struct => blk: { - if (mod.typeToPackedStruct(container_ty)) |struct_type| { - if (field_ptr_ty.ptrInfo(mod).packed_offset.host_size == 0) - break :blk .{ .byte_offset = @divExact(mod.structPackedFieldBitOffset(struct_type, field_index) + container_ptr_ty.ptrInfo(mod).packed_offset.bit_offset, 8) } + if (zcu.typeToPackedStruct(container_ty)) |struct_type| { + if (field_ptr_ty.ptrInfo(zcu).packed_offset.host_size == 0) + break :blk .{ .byte_offset = @divExact(zcu.structPackedFieldBitOffset(struct_type, field_index) + container_ptr_ty.ptrInfo(zcu).packed_offset.bit_offset, 8) } else break :blk .begin; } - for (field_index..container_ty.structFieldCount(mod)) |next_field_index_usize| { + for (field_index..container_ty.structFieldCount(zcu)) |next_field_index_usize| { const next_field_index: u32 = @intCast(next_field_index_usize); - if (container_ty.structFieldIsComptime(next_field_index, mod)) continue; - const field_ty = container_ty.structFieldType(next_field_index, mod); - if (!field_ty.hasRuntimeBitsIgnoreComptime(mod)) continue; + if (container_ty.structFieldIsComptime(next_field_index, zcu)) continue; + const field_ty = container_ty.structFieldType(next_field_index, zcu); + if (!field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; - break :blk .{ .field = if (container_ty.isSimpleTuple(mod)) + break :blk .{ .field = if (container_ty.isSimpleTuple(zcu)) .{ .field = next_field_index } else - .{ .identifier = ip.stringToSlice(container_ty.legacyStructFieldName(next_field_index, mod)) } }; + .{ .identifier = ip.stringToSlice(container_ty.legacyStructFieldName(next_field_index, zcu)) } }; } - break :blk if (container_ty.hasRuntimeBitsIgnoreComptime(mod)) .end else .begin; + break :blk if (container_ty.hasRuntimeBitsIgnoreComptime(zcu)) .end else .begin; }, .Union => { - const union_obj = mod.typeToUnion(container_ty).?; + const union_obj = zcu.typeToUnion(container_ty).?; return switch (union_obj.getLayout(ip)) { .auto, .@"extern" => { const field_ty = Type.fromInterned(union_obj.field_types.get(ip)[field_index]); - if (!field_ty.hasRuntimeBitsIgnoreComptime(mod)) - return if (container_ty.unionTagTypeSafety(mod) != null and - !container_ty.unionHasAllZeroBitFieldTypes(mod)) + if (!field_ty.hasRuntimeBitsIgnoreComptime(zcu)) + return if (container_ty.unionTagTypeSafety(zcu) != null and + !container_ty.unionHasAllZeroBitFieldTypes(zcu)) .{ .field = .{ .identifier = "payload" } } else .begin; const field_name = union_obj.loadTagType(ip).names.get(ip)[field_index]; - return .{ .field = if (container_ty.unionTagTypeSafety(mod)) |_| + return .{ .field = if (container_ty.unionTagTypeSafety(zcu)) |_| .{ .payload_identifier = ip.stringToSlice(field_name) } else .{ .identifier = ip.stringToSlice(field_name) } }; @@ -5483,7 +5555,7 @@ fn fieldLocation( .@"packed" => .begin, }; }, - .Pointer => switch (container_ty.ptrSize(mod)) { + .Pointer => switch (container_ty.ptrSize(zcu)) { .Slice => switch (field_index) { 0 => .{ .field = .{ .identifier = "ptr" } }, 1 => .{ .field = .{ .identifier = "len" } }, @@ -5515,12 +5587,12 @@ fn airStructFieldPtrIndex(f: *Function, inst: Air.Inst.Index, index: u8) !CValue } fn airFieldParentPtr(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const ty_pl = f.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl; const extra = f.air.extraData(Air.FieldParentPtr, ty_pl.payload).data; const container_ptr_ty = f.typeOfIndex(inst); - const container_ty = container_ptr_ty.childType(mod); + const container_ty = container_ptr_ty.childType(zcu); const field_ptr_ty = f.typeOf(extra.field_ptr); const field_ptr_val = try f.resolveInst(extra.field_ptr); @@ -5533,10 +5605,10 @@ fn airFieldParentPtr(f: *Function, inst: Air.Inst.Index) !CValue { try f.renderType(writer, container_ptr_ty); try writer.writeByte(')'); - switch (fieldLocation(container_ptr_ty, field_ptr_ty, extra.field_index, mod)) { + switch (fieldLocation(container_ptr_ty, field_ptr_ty, extra.field_index, zcu)) { .begin => try f.writeCValue(writer, field_ptr_val, .Initializer), .field => |field| { - const u8_ptr_ty = try mod.adjustPtrTypeChild(field_ptr_ty, Type.u8); + const u8_ptr_ty = try zcu.adjustPtrTypeChild(field_ptr_ty, Type.u8); try writer.writeAll("(("); try f.renderType(writer, u8_ptr_ty); @@ -5549,19 +5621,19 @@ fn airFieldParentPtr(f: *Function, inst: Air.Inst.Index) !CValue { try writer.writeAll("))"); }, .byte_offset => |byte_offset| { - const u8_ptr_ty = try mod.adjustPtrTypeChild(field_ptr_ty, Type.u8); - - const byte_offset_val = try mod.intValue(Type.usize, byte_offset); + const u8_ptr_ty = try zcu.adjustPtrTypeChild(field_ptr_ty, Type.u8); try writer.writeAll("(("); try f.renderType(writer, u8_ptr_ty); try writer.writeByte(')'); try f.writeCValue(writer, field_ptr_val, .Other); - try writer.print(" - {})", .{try f.fmtIntLiteral(Type.usize, byte_offset_val)}); + try writer.print(" - {})", .{ + try f.fmtIntLiteral(try zcu.intValue(Type.usize, byte_offset)), + }); }, .end => { try f.writeCValue(writer, field_ptr_val, .Other); - try writer.print(" - {}", .{try f.fmtIntLiteral(Type.usize, try mod.intValue(Type.usize, 1))}); + try writer.print(" - {}", .{try f.fmtIntLiteral(try zcu.intValue(Type.usize, 1))}); }, } @@ -5576,8 +5648,8 @@ fn fieldPtr( container_ptr_val: CValue, field_index: u32, ) !CValue { - const mod = f.object.dg.module; - const container_ty = container_ptr_ty.childType(mod); + const zcu = f.object.dg.zcu; + const container_ty = container_ptr_ty.childType(zcu); const field_ptr_ty = f.typeOfIndex(inst); // Ensure complete type definition is visible before accessing fields. @@ -5590,27 +5662,27 @@ fn fieldPtr( try f.renderType(writer, field_ptr_ty); try writer.writeByte(')'); - switch (fieldLocation(container_ptr_ty, field_ptr_ty, field_index, mod)) { + switch (fieldLocation(container_ptr_ty, field_ptr_ty, field_index, zcu)) { .begin => try f.writeCValue(writer, container_ptr_val, .Initializer), .field => |field| { try writer.writeByte('&'); try f.writeCValueDerefMember(writer, container_ptr_val, field); }, .byte_offset => |byte_offset| { - const u8_ptr_ty = try mod.adjustPtrTypeChild(field_ptr_ty, Type.u8); - - const byte_offset_val = try mod.intValue(Type.usize, byte_offset); + const u8_ptr_ty = try zcu.adjustPtrTypeChild(field_ptr_ty, Type.u8); try writer.writeAll("(("); try f.renderType(writer, u8_ptr_ty); try writer.writeByte(')'); try f.writeCValue(writer, container_ptr_val, .Other); - try writer.print(" + {})", .{try f.fmtIntLiteral(Type.usize, byte_offset_val)}); + try writer.print(" + {})", .{ + try f.fmtIntLiteral(try zcu.intValue(Type.usize, byte_offset)), + }); }, .end => { try writer.writeByte('('); try f.writeCValue(writer, container_ptr_val, .Other); - try writer.print(" + {})", .{try f.fmtIntLiteral(Type.usize, try mod.intValue(Type.usize, 1))}); + try writer.print(" + {})", .{try f.fmtIntLiteral(try zcu.intValue(Type.usize, 1))}); }, } @@ -5619,13 +5691,13 @@ fn fieldPtr( } fn airStructFieldVal(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; - const ip = &mod.intern_pool; + const zcu = f.object.dg.zcu; + const ip = &zcu.intern_pool; const ty_pl = f.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl; const extra = f.air.extraData(Air.StructField, ty_pl.payload).data; const inst_ty = f.typeOfIndex(inst); - if (!inst_ty.hasRuntimeBitsIgnoreComptime(mod)) { + if (!inst_ty.hasRuntimeBitsIgnoreComptime(zcu)) { try reap(f, inst, &.{extra.struct_operand}); return .none; } @@ -5638,26 +5710,25 @@ fn airStructFieldVal(f: *Function, inst: Air.Inst.Index) !CValue { // Ensure complete type definition is visible before accessing fields. _ = try f.typeToIndex(struct_ty, .complete); - const field_name: CValue = switch (mod.intern_pool.indexToKey(struct_ty.ip_index)) { - .struct_type => switch (struct_ty.containerLayout(mod)) { - .auto, .@"extern" => if (struct_ty.isSimpleTuple(mod)) + const field_name: CValue = switch (zcu.intern_pool.indexToKey(struct_ty.toIntern())) { + .struct_type => switch (struct_ty.containerLayout(zcu)) { + .auto, .@"extern" => if (struct_ty.isSimpleTuple(zcu)) .{ .field = extra.field_index } else - .{ .identifier = ip.stringToSlice(struct_ty.legacyStructFieldName(extra.field_index, mod)) }, + .{ .identifier = ip.stringToSlice(struct_ty.legacyStructFieldName(extra.field_index, zcu)) }, .@"packed" => { - const struct_type = mod.typeToStruct(struct_ty).?; - const int_info = struct_ty.intInfo(mod); + const struct_type = zcu.typeToStruct(struct_ty).?; + const int_info = struct_ty.intInfo(zcu); - const bit_offset_ty = try mod.intType(.unsigned, Type.smallestUnsignedBits(int_info.bits - 1)); + const bit_offset_ty = try zcu.intType(.unsigned, Type.smallestUnsignedBits(int_info.bits - 1)); - const bit_offset = mod.structPackedFieldBitOffset(struct_type, extra.field_index); - const bit_offset_val = try mod.intValue(bit_offset_ty, bit_offset); + const bit_offset = zcu.structPackedFieldBitOffset(struct_type, extra.field_index); - const field_int_signedness = if (inst_ty.isAbiInt(mod)) - inst_ty.intInfo(mod).signedness + const field_int_signedness = if (inst_ty.isAbiInt(zcu)) + inst_ty.intInfo(zcu).signedness else .unsigned; - const field_int_ty = try mod.intType(field_int_signedness, @as(u16, @intCast(inst_ty.bitSize(mod)))); + const field_int_ty = try zcu.intType(field_int_signedness, @as(u16, @intCast(inst_ty.bitSize(zcu)))); const temp_local = try f.allocLocal(inst, field_int_ty); try f.writeCValue(writer, temp_local, .Other); @@ -5668,7 +5739,7 @@ fn airStructFieldVal(f: *Function, inst: Air.Inst.Index) !CValue { try writer.writeByte(')'); const cant_cast = int_info.bits > 64; if (cant_cast) { - if (field_int_ty.bitSize(mod) > 64) return f.fail("TODO: C backend: implement casting between types > 64 bits", .{}); + if (field_int_ty.bitSize(zcu) > 64) return f.fail("TODO: C backend: implement casting between types > 64 bits", .{}); try writer.writeAll("zig_lo_"); try f.object.dg.renderTypeForBuiltinFnName(writer, struct_ty); try writer.writeByte('('); @@ -5681,13 +5752,13 @@ fn airStructFieldVal(f: *Function, inst: Air.Inst.Index) !CValue { try f.writeCValue(writer, struct_byval, .Other); if (bit_offset > 0) { try writer.writeAll(", "); - try f.object.dg.renderValue(writer, bit_offset_ty, bit_offset_val, .FunctionArgument); + try f.object.dg.renderValue(writer, try zcu.intValue(bit_offset_ty, bit_offset), .FunctionArgument); try writer.writeByte(')'); } if (cant_cast) try writer.writeByte(')'); try f.object.dg.renderBuiltinInfo(writer, field_int_ty, .bits); try writer.writeAll(");\n"); - if (inst_ty.eql(field_int_ty, f.object.dg.module)) return temp_local; + if (inst_ty.eql(field_int_ty, f.object.dg.zcu)) return temp_local; const local = try f.allocLocal(inst, inst_ty); try writer.writeAll("memcpy("); @@ -5705,7 +5776,7 @@ fn airStructFieldVal(f: *Function, inst: Air.Inst.Index) !CValue { .anon_struct_type => |anon_struct_type| if (anon_struct_type.names.len == 0) .{ .field = extra.field_index } else - .{ .identifier = ip.stringToSlice(struct_ty.legacyStructFieldName(extra.field_index, mod)) }, + .{ .identifier = ip.stringToSlice(struct_ty.legacyStructFieldName(extra.field_index, zcu)) }, .union_type => field_name: { const union_obj = ip.loadUnionType(struct_ty.toIntern()); @@ -5757,7 +5828,7 @@ fn airStructFieldVal(f: *Function, inst: Air.Inst.Index) !CValue { /// *(E!T) -> E /// Note that the result is never a pointer. fn airUnwrapErrUnionErr(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const ty_op = f.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const inst_ty = f.typeOfIndex(inst); @@ -5765,13 +5836,13 @@ fn airUnwrapErrUnionErr(f: *Function, inst: Air.Inst.Index) !CValue { const operand_ty = f.typeOf(ty_op.operand); try reap(f, inst, &.{ty_op.operand}); - const operand_is_ptr = operand_ty.zigTypeTag(mod) == .Pointer; - const error_union_ty = if (operand_is_ptr) operand_ty.childType(mod) else operand_ty; - const error_ty = error_union_ty.errorUnionSet(mod); - const payload_ty = error_union_ty.errorUnionPayload(mod); + const operand_is_ptr = operand_ty.zigTypeTag(zcu) == .Pointer; + const error_union_ty = if (operand_is_ptr) operand_ty.childType(zcu) else operand_ty; + const error_ty = error_union_ty.errorUnionSet(zcu); + const payload_ty = error_union_ty.errorUnionPayload(zcu); const local = try f.allocLocal(inst, inst_ty); - if (!payload_ty.hasRuntimeBits(mod) and operand == .local and operand.local == local.new_local) { + if (!payload_ty.hasRuntimeBits(zcu) and operand == .local and operand.local == local.new_local) { // The store will be 'x = x'; elide it. return local; } @@ -5780,35 +5851,32 @@ fn airUnwrapErrUnionErr(f: *Function, inst: Air.Inst.Index) !CValue { try f.writeCValue(writer, local, .Other); try writer.writeAll(" = "); - if (!payload_ty.hasRuntimeBits(mod)) { - try f.writeCValue(writer, operand, .Other); - } else { - if (!error_ty.errorSetIsEmpty(mod)) - if (operand_is_ptr) - try f.writeCValueDerefMember(writer, operand, .{ .identifier = "error" }) - else - try f.writeCValueMember(writer, operand, .{ .identifier = "error" }) - else { - const err_int_ty = try mod.errorIntType(); - try f.object.dg.renderValue(writer, err_int_ty, try mod.intValue(err_int_ty, 0), .Initializer); - } - } + if (!payload_ty.hasRuntimeBits(zcu)) + try f.writeCValue(writer, operand, .Other) + else if (error_ty.errorSetIsEmpty(zcu)) + try writer.print("{}", .{ + try f.fmtIntLiteral(try zcu.intValue(try zcu.errorIntType(), 0)), + }) + else if (operand_is_ptr) + try f.writeCValueDerefMember(writer, operand, .{ .identifier = "error" }) + else + try f.writeCValueMember(writer, operand, .{ .identifier = "error" }); try writer.writeAll(";\n"); return local; } fn airUnwrapErrUnionPay(f: *Function, inst: Air.Inst.Index, is_ptr: bool) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const ty_op = f.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const inst_ty = f.typeOfIndex(inst); const operand = try f.resolveInst(ty_op.operand); try reap(f, inst, &.{ty_op.operand}); const operand_ty = f.typeOf(ty_op.operand); - const error_union_ty = if (is_ptr) operand_ty.childType(mod) else operand_ty; + const error_union_ty = if (is_ptr) operand_ty.childType(zcu) else operand_ty; const writer = f.object.writer(); - if (!error_union_ty.errorUnionPayload(mod).hasRuntimeBits(mod)) { + if (!error_union_ty.errorUnionPayload(zcu).hasRuntimeBits(zcu)) { if (!is_ptr) return .none; const local = try f.allocLocal(inst, inst_ty); @@ -5834,11 +5902,11 @@ fn airUnwrapErrUnionPay(f: *Function, inst: Air.Inst.Index, is_ptr: bool) !CValu } fn airWrapOptional(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const ty_op = f.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const inst_ty = f.typeOfIndex(inst); - const repr_is_payload = inst_ty.optionalReprIsPayload(mod); + const repr_is_payload = inst_ty.optionalReprIsPayload(zcu); const payload_ty = f.typeOf(ty_op.operand); const payload = try f.resolveInst(ty_op.operand); try reap(f, inst, &.{ty_op.operand}); @@ -5859,20 +5927,20 @@ fn airWrapOptional(f: *Function, inst: Air.Inst.Index) !CValue { const a = try Assignment.start(f, writer, Type.bool); try f.writeCValueMember(writer, local, .{ .identifier = "is_null" }); try a.assign(f, writer); - try f.object.dg.renderValue(writer, Type.bool, Value.false, .Other); + try f.object.dg.renderValue(writer, Value.false, .Other); try a.end(f, writer); } return local; } fn airWrapErrUnionErr(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const ty_op = f.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const inst_ty = f.typeOfIndex(inst); - const payload_ty = inst_ty.errorUnionPayload(mod); - const repr_is_err = !payload_ty.hasRuntimeBitsIgnoreComptime(mod); - const err_ty = inst_ty.errorUnionSet(mod); + const payload_ty = inst_ty.errorUnionPayload(zcu); + const repr_is_err = !payload_ty.hasRuntimeBitsIgnoreComptime(zcu); + const err_ty = inst_ty.errorUnionSet(zcu); const err = try f.resolveInst(ty_op.operand); try reap(f, inst, &.{ty_op.operand}); @@ -5888,7 +5956,7 @@ fn airWrapErrUnionErr(f: *Function, inst: Air.Inst.Index) !CValue { const a = try Assignment.start(f, writer, payload_ty); try f.writeCValueMember(writer, local, .{ .identifier = "payload" }); try a.assign(f, writer); - try f.object.dg.renderValue(writer, payload_ty, Value.undef, .Other); + try f.object.dg.renderUndefValue(writer, payload_ty, .Other); try a.end(f, writer); } { @@ -5905,29 +5973,25 @@ fn airWrapErrUnionErr(f: *Function, inst: Air.Inst.Index) !CValue { } fn airErrUnionPayloadPtrSet(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const writer = f.object.writer(); const ty_op = f.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const operand = try f.resolveInst(ty_op.operand); - const error_union_ty = f.typeOf(ty_op.operand).childType(mod); + const error_union_ty = f.typeOf(ty_op.operand).childType(zcu); - const payload_ty = error_union_ty.errorUnionPayload(mod); - const err_int_ty = try mod.errorIntType(); + const payload_ty = error_union_ty.errorUnionPayload(zcu); + const err_int_ty = try zcu.errorIntType(); + const no_err = try zcu.intValue(err_int_ty, 0); // First, set the non-error value. - if (!payload_ty.hasRuntimeBitsIgnoreComptime(mod)) { + if (!payload_ty.hasRuntimeBitsIgnoreComptime(zcu)) { try f.writeCValueDeref(writer, operand); - try writer.writeAll(" = "); - try f.object.dg.renderValue(writer, err_int_ty, try mod.intValue(err_int_ty, 0), .Other); - try writer.writeAll(";\n "); - + try writer.print(" = {};\n", .{try f.fmtIntLiteral(no_err)}); return operand; } try reap(f, inst, &.{ty_op.operand}); try f.writeCValueDeref(writer, operand); - try writer.writeAll(".error = "); - try f.object.dg.renderValue(writer, err_int_ty, try mod.intValue(err_int_ty, 0), .Other); - try writer.writeAll(";\n"); + try writer.print(".error = {};\n", .{try f.fmtIntLiteral(no_err)}); // Then return the payload pointer (only if it is used) if (f.liveness.isUnused(inst)) return .none; @@ -5956,14 +6020,14 @@ fn airSaveErrReturnTraceIndex(f: *Function, inst: Air.Inst.Index) !CValue { } fn airWrapErrUnionPay(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const ty_op = f.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const inst_ty = f.typeOfIndex(inst); - const payload_ty = inst_ty.errorUnionPayload(mod); + const payload_ty = inst_ty.errorUnionPayload(zcu); const payload = try f.resolveInst(ty_op.operand); - const repr_is_err = !payload_ty.hasRuntimeBitsIgnoreComptime(mod); - const err_ty = inst_ty.errorUnionSet(mod); + const repr_is_err = !payload_ty.hasRuntimeBitsIgnoreComptime(zcu); + const err_ty = inst_ty.errorUnionSet(zcu); try reap(f, inst, &.{ty_op.operand}); const writer = f.object.writer(); @@ -5982,15 +6046,14 @@ fn airWrapErrUnionPay(f: *Function, inst: Air.Inst.Index) !CValue { else try f.writeCValueMember(writer, local, .{ .identifier = "error" }); try a.assign(f, writer); - const err_int_ty = try mod.errorIntType(); - try f.object.dg.renderValue(writer, err_int_ty, try mod.intValue(err_int_ty, 0), .Other); + try f.object.dg.renderValue(writer, try zcu.intValue(try zcu.errorIntType(), 0), .Other); try a.end(f, writer); } return local; } fn airIsErr(f: *Function, inst: Air.Inst.Index, is_ptr: bool, operator: []const u8) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const un_op = f.air.instructions.items(.data)[@intFromEnum(inst)].un_op; const writer = f.object.writer(); @@ -5998,16 +6061,16 @@ fn airIsErr(f: *Function, inst: Air.Inst.Index, is_ptr: bool, operator: []const try reap(f, inst, &.{un_op}); const operand_ty = f.typeOf(un_op); const local = try f.allocLocal(inst, Type.bool); - const err_union_ty = if (is_ptr) operand_ty.childType(mod) else operand_ty; - const payload_ty = err_union_ty.errorUnionPayload(mod); - const error_ty = err_union_ty.errorUnionSet(mod); + const err_union_ty = if (is_ptr) operand_ty.childType(zcu) else operand_ty; + const payload_ty = err_union_ty.errorUnionPayload(zcu); + const error_ty = err_union_ty.errorUnionSet(zcu); + const a = try Assignment.start(f, writer, Type.bool); try f.writeCValue(writer, local, .Other); - try writer.writeAll(" = "); - - const err_int_ty = try mod.errorIntType(); - if (!error_ty.errorSetIsEmpty(mod)) - if (payload_ty.hasRuntimeBits(mod)) + try a.assign(f, writer); + const err_int_ty = try zcu.errorIntType(); + if (!error_ty.errorSetIsEmpty(zcu)) + if (payload_ty.hasRuntimeBits(zcu)) if (is_ptr) try f.writeCValueDerefMember(writer, operand, .{ .identifier = "error" }) else @@ -6015,63 +6078,84 @@ fn airIsErr(f: *Function, inst: Air.Inst.Index, is_ptr: bool, operator: []const else try f.writeCValue(writer, operand, .Other) else - try f.object.dg.renderValue(writer, err_int_ty, try mod.intValue(err_int_ty, 0), .Other); + try f.object.dg.renderValue(writer, try zcu.intValue(err_int_ty, 0), .Other); try writer.writeByte(' '); try writer.writeAll(operator); try writer.writeByte(' '); - try f.object.dg.renderValue(writer, err_int_ty, try mod.intValue(err_int_ty, 0), .Other); - try writer.writeAll(";\n"); + try f.object.dg.renderValue(writer, try zcu.intValue(err_int_ty, 0), .Other); + try a.end(f, writer); return local; } fn airArrayToSlice(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const ty_op = f.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const operand = try f.resolveInst(ty_op.operand); try reap(f, inst, &.{ty_op.operand}); const inst_ty = f.typeOfIndex(inst); + const ptr_ty = inst_ty.slicePtrFieldType(zcu); const writer = f.object.writer(); const local = try f.allocLocal(inst, inst_ty); - const array_ty = f.typeOf(ty_op.operand).childType(mod); - - try f.writeCValueMember(writer, local, .{ .identifier = "ptr" }); - try writer.writeAll(" = "); - // Unfortunately, C does not support any equivalent to - // &(*(void *)p)[0], although LLVM does via GetElementPtr - if (operand == .undef) { - try f.writeCValue(writer, .{ .undef = inst_ty.slicePtrFieldType(mod) }, .Initializer); - } else if (array_ty.hasRuntimeBitsIgnoreComptime(mod)) { - try writer.writeAll("&("); - try f.writeCValueDeref(writer, operand); - try writer.print(")[{}]", .{try f.fmtIntLiteral(Type.usize, try mod.intValue(Type.usize, 0))}); - } else try f.writeCValue(writer, operand, .Initializer); - try writer.writeAll("; "); + const operand_ty = f.typeOf(ty_op.operand); + const array_ty = operand_ty.childType(zcu); - const len_val = try mod.intValue(Type.usize, array_ty.arrayLen(mod)); - try f.writeCValueMember(writer, local, .{ .identifier = "len" }); - try writer.print(" = {};\n", .{try f.fmtIntLiteral(Type.usize, len_val)}); + { + const a = try Assignment.start(f, writer, ptr_ty); + try f.writeCValueMember(writer, local, .{ .identifier = "ptr" }); + try a.assign(f, writer); + if (operand == .undef) { + try f.writeCValue(writer, .{ .undef = inst_ty.slicePtrFieldType(zcu) }, .Initializer); + } else { + const ptr_cty = try f.typeToIndex(ptr_ty, .complete); + const ptr_child_cty = f.indexToCType(ptr_cty).cast(CType.Payload.Child).?.data; + const elem_ty = array_ty.childType(zcu); + const elem_cty = try f.typeToIndex(elem_ty, .complete); + if (ptr_child_cty != elem_cty) { + try writer.writeByte('('); + try f.renderCType(writer, ptr_cty); + try writer.writeByte(')'); + } + const operand_cty = try f.typeToCType(operand_ty, .complete); + const operand_child_cty = operand_cty.cast(CType.Payload.Child).?.data; + if (f.indexToCType(operand_child_cty).tag() == .array) { + try writer.writeByte('&'); + try f.writeCValueDeref(writer, operand); + try writer.print("[{}]", .{try f.fmtIntLiteral(try zcu.intValue(Type.usize, 0))}); + } else try f.writeCValue(writer, operand, .Initializer); + } + try a.end(f, writer); + } + { + const a = try Assignment.start(f, writer, Type.usize); + try f.writeCValueMember(writer, local, .{ .identifier = "len" }); + try a.assign(f, writer); + try writer.print("{}", .{ + try f.fmtIntLiteral(try zcu.intValue(Type.usize, array_ty.arrayLen(zcu))), + }); + try a.end(f, writer); + } return local; } fn airFloatCast(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const ty_op = f.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const inst_ty = f.typeOfIndex(inst); - const inst_scalar_ty = inst_ty.scalarType(mod); + const inst_scalar_ty = inst_ty.scalarType(zcu); const operand = try f.resolveInst(ty_op.operand); try reap(f, inst, &.{ty_op.operand}); const operand_ty = f.typeOf(ty_op.operand); - const scalar_ty = operand_ty.scalarType(mod); - const target = f.object.dg.module.getTarget(); + const scalar_ty = operand_ty.scalarType(zcu); + const target = &f.object.dg.mod.resolved_target.result; const operation = if (inst_scalar_ty.isRuntimeFloat() and scalar_ty.isRuntimeFloat()) - if (inst_scalar_ty.floatBits(target) < scalar_ty.floatBits(target)) "trunc" else "extend" - else if (inst_scalar_ty.isInt(mod) and scalar_ty.isRuntimeFloat()) - if (inst_scalar_ty.isSignedInt(mod)) "fix" else "fixuns" - else if (inst_scalar_ty.isRuntimeFloat() and scalar_ty.isInt(mod)) - if (scalar_ty.isSignedInt(mod)) "float" else "floatun" + if (inst_scalar_ty.floatBits(target.*) < scalar_ty.floatBits(target.*)) "trunc" else "extend" + else if (inst_scalar_ty.isInt(zcu) and scalar_ty.isRuntimeFloat()) + if (inst_scalar_ty.isSignedInt(zcu)) "fix" else "fixuns" + else if (inst_scalar_ty.isRuntimeFloat() and scalar_ty.isInt(zcu)) + if (scalar_ty.isSignedInt(zcu)) "float" else "floatun" else unreachable; @@ -6082,20 +6166,20 @@ fn airFloatCast(f: *Function, inst: Air.Inst.Index) !CValue { try f.writeCValue(writer, local, .Other); try v.elem(f, writer); try a.assign(f, writer); - if (inst_scalar_ty.isInt(mod) and scalar_ty.isRuntimeFloat()) { + if (inst_scalar_ty.isInt(zcu) and scalar_ty.isRuntimeFloat()) { try writer.writeAll("zig_wrap_"); try f.object.dg.renderTypeForBuiltinFnName(writer, inst_scalar_ty); try writer.writeByte('('); } try writer.writeAll("zig_"); try writer.writeAll(operation); - try writer.writeAll(compilerRtAbbrev(scalar_ty, mod)); - try writer.writeAll(compilerRtAbbrev(inst_scalar_ty, mod)); + try writer.writeAll(compilerRtAbbrev(scalar_ty, zcu, target.*)); + try writer.writeAll(compilerRtAbbrev(inst_scalar_ty, zcu, target.*)); try writer.writeByte('('); try f.writeCValue(writer, operand, .FunctionArgument); try v.elem(f, writer); try writer.writeByte(')'); - if (inst_scalar_ty.isInt(mod) and scalar_ty.isRuntimeFloat()) { + if (inst_scalar_ty.isInt(zcu) and scalar_ty.isRuntimeFloat()) { try f.object.dg.renderBuiltinInfo(writer, inst_scalar_ty, .bits); try writer.writeByte(')'); } @@ -6106,7 +6190,7 @@ fn airFloatCast(f: *Function, inst: Air.Inst.Index) !CValue { } fn airIntFromPtr(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const un_op = f.air.instructions.items(.data)[@intFromEnum(inst)].un_op; const operand = try f.resolveInst(un_op); @@ -6120,7 +6204,7 @@ fn airIntFromPtr(f: *Function, inst: Air.Inst.Index) !CValue { try writer.writeAll(" = ("); try f.renderType(writer, inst_ty); try writer.writeByte(')'); - if (operand_ty.isSlice(mod)) { + if (operand_ty.isSlice(zcu)) { try f.writeCValueMember(writer, operand, .{ .identifier = "ptr" }); } else { try f.writeCValue(writer, operand, .Other); @@ -6135,15 +6219,15 @@ fn airUnBuiltinCall( operation: []const u8, info: BuiltinInfo, ) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const ty_op = f.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const operand = try f.resolveInst(ty_op.operand); try reap(f, inst, &.{ty_op.operand}); const inst_ty = f.typeOfIndex(inst); - const inst_scalar_ty = inst_ty.scalarType(mod); + const inst_scalar_ty = inst_ty.scalarType(zcu); const operand_ty = f.typeOf(ty_op.operand); - const scalar_ty = operand_ty.scalarType(mod); + const scalar_ty = operand_ty.scalarType(zcu); const inst_scalar_cty = try f.typeToCType(inst_scalar_ty, .complete); const ref_ret = inst_scalar_cty.tag() == .array; @@ -6179,7 +6263,7 @@ fn airBinBuiltinCall( operation: []const u8, info: BuiltinInfo, ) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const bin_op = f.air.instructions.items(.data)[@intFromEnum(inst)].bin_op; const operand_ty = f.typeOf(bin_op.lhs); @@ -6191,8 +6275,8 @@ fn airBinBuiltinCall( if (!is_big) try reap(f, inst, &.{ bin_op.lhs, bin_op.rhs }); const inst_ty = f.typeOfIndex(inst); - const inst_scalar_ty = inst_ty.scalarType(mod); - const scalar_ty = operand_ty.scalarType(mod); + const inst_scalar_ty = inst_ty.scalarType(zcu); + const scalar_ty = operand_ty.scalarType(zcu); const inst_scalar_cty = try f.typeToCType(inst_scalar_ty, .complete); const ref_ret = inst_scalar_cty.tag() == .array; @@ -6234,15 +6318,15 @@ fn airCmpBuiltinCall( operation: enum { cmp, operator }, info: BuiltinInfo, ) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const lhs = try f.resolveInst(data.lhs); const rhs = try f.resolveInst(data.rhs); try reap(f, inst, &.{ data.lhs, data.rhs }); const inst_ty = f.typeOfIndex(inst); - const inst_scalar_ty = inst_ty.scalarType(mod); + const inst_scalar_ty = inst_ty.scalarType(zcu); const operand_ty = f.typeOf(data.lhs); - const scalar_ty = operand_ty.scalarType(mod); + const scalar_ty = operand_ty.scalarType(zcu); const inst_scalar_cty = try f.typeToCType(inst_scalar_ty, .complete); const ref_ret = inst_scalar_cty.tag() == .array; @@ -6275,7 +6359,7 @@ fn airCmpBuiltinCall( try writer.writeByte(')'); if (!ref_ret) try writer.print("{s}{}", .{ compareOperatorC(operator), - try f.fmtIntLiteral(Type.i32, try mod.intValue(Type.i32, 0)), + try f.fmtIntLiteral(try zcu.intValue(Type.i32, 0)), }); try writer.writeAll(";\n"); try v.end(f, inst, writer); @@ -6284,7 +6368,7 @@ fn airCmpBuiltinCall( } fn airCmpxchg(f: *Function, inst: Air.Inst.Index, flavor: [*:0]const u8) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const ty_pl = f.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl; const extra = f.air.extraData(Air.Cmpxchg, ty_pl.payload).data; const inst_ty = f.typeOfIndex(inst); @@ -6292,19 +6376,19 @@ fn airCmpxchg(f: *Function, inst: Air.Inst.Index, flavor: [*:0]const u8) !CValue const expected_value = try f.resolveInst(extra.expected_value); const new_value = try f.resolveInst(extra.new_value); const ptr_ty = f.typeOf(extra.ptr); - const ty = ptr_ty.childType(mod); + const ty = ptr_ty.childType(zcu); const writer = f.object.writer(); const new_value_mat = try Materialize.start(f, inst, writer, ty, new_value); try reap(f, inst, &.{ extra.ptr, extra.expected_value, extra.new_value }); const repr_ty = if (ty.isRuntimeFloat()) - mod.intType(.unsigned, @as(u16, @intCast(ty.abiSize(mod) * 8))) catch unreachable + zcu.intType(.unsigned, @as(u16, @intCast(ty.abiSize(zcu) * 8))) catch unreachable else ty; const local = try f.allocLocal(inst, inst_ty); - if (inst_ty.isPtrLikeOptional(mod)) { + if (inst_ty.isPtrLikeOptional(zcu)) { { const a = try Assignment.start(f, writer, ty); try f.writeCValue(writer, local, .Other); @@ -6317,7 +6401,7 @@ fn airCmpxchg(f: *Function, inst: Air.Inst.Index, flavor: [*:0]const u8) !CValue try writer.print("zig_cmpxchg_{s}((zig_atomic(", .{flavor}); try f.renderType(writer, ty); try writer.writeByte(')'); - if (ptr_ty.isVolatilePtr(mod)) try writer.writeAll(" volatile"); + if (ptr_ty.isVolatilePtr(zcu)) try writer.writeAll(" volatile"); try writer.writeAll(" *)"); try f.writeCValue(writer, ptr, .Other); try writer.writeAll(", "); @@ -6331,7 +6415,7 @@ fn airCmpxchg(f: *Function, inst: Air.Inst.Index, flavor: [*:0]const u8) !CValue try writer.writeAll(", "); try f.object.dg.renderTypeForBuiltinFnName(writer, ty); try writer.writeAll(", "); - try f.object.dg.renderType(writer, repr_ty); + try f.renderType(writer, repr_ty); try writer.writeByte(')'); try writer.writeAll(") {\n"); f.object.indent_writer.pushIndent(); @@ -6359,7 +6443,7 @@ fn airCmpxchg(f: *Function, inst: Air.Inst.Index, flavor: [*:0]const u8) !CValue try writer.print("zig_cmpxchg_{s}((zig_atomic(", .{flavor}); try f.renderType(writer, ty); try writer.writeByte(')'); - if (ptr_ty.isVolatilePtr(mod)) try writer.writeAll(" volatile"); + if (ptr_ty.isVolatilePtr(zcu)) try writer.writeAll(" volatile"); try writer.writeAll(" *)"); try f.writeCValue(writer, ptr, .Other); try writer.writeAll(", "); @@ -6373,7 +6457,7 @@ fn airCmpxchg(f: *Function, inst: Air.Inst.Index, flavor: [*:0]const u8) !CValue try writer.writeAll(", "); try f.object.dg.renderTypeForBuiltinFnName(writer, ty); try writer.writeAll(", "); - try f.object.dg.renderType(writer, repr_ty); + try f.renderType(writer, repr_ty); try writer.writeByte(')'); try a.end(f, writer); } @@ -6389,12 +6473,12 @@ fn airCmpxchg(f: *Function, inst: Air.Inst.Index, flavor: [*:0]const u8) !CValue } fn airAtomicRmw(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const pl_op = f.air.instructions.items(.data)[@intFromEnum(inst)].pl_op; const extra = f.air.extraData(Air.AtomicRmw, pl_op.payload).data; const inst_ty = f.typeOfIndex(inst); const ptr_ty = f.typeOf(pl_op.operand); - const ty = ptr_ty.childType(mod); + const ty = ptr_ty.childType(zcu); const ptr = try f.resolveInst(pl_op.operand); const operand = try f.resolveInst(extra.operand); @@ -6402,10 +6486,10 @@ fn airAtomicRmw(f: *Function, inst: Air.Inst.Index) !CValue { const operand_mat = try Materialize.start(f, inst, writer, ty, operand); try reap(f, inst, &.{ pl_op.operand, extra.operand }); - const repr_bits = @as(u16, @intCast(ty.abiSize(mod) * 8)); + const repr_bits = @as(u16, @intCast(ty.abiSize(zcu) * 8)); const is_float = ty.isRuntimeFloat(); const is_128 = repr_bits == 128; - const repr_ty = if (is_float) mod.intType(.unsigned, repr_bits) catch unreachable else ty; + const repr_ty = if (is_float) zcu.intType(.unsigned, repr_bits) catch unreachable else ty; const local = try f.allocLocal(inst, inst_ty); try writer.print("zig_atomicrmw_{s}", .{toAtomicRmwSuffix(extra.op())}); @@ -6421,7 +6505,7 @@ fn airAtomicRmw(f: *Function, inst: Air.Inst.Index) !CValue { if (use_atomic) try writer.writeAll("zig_atomic("); try f.renderType(writer, ty); if (use_atomic) try writer.writeByte(')'); - if (ptr_ty.isVolatilePtr(mod)) try writer.writeAll(" volatile"); + if (ptr_ty.isVolatilePtr(zcu)) try writer.writeAll(" volatile"); try writer.writeAll(" *)"); try f.writeCValue(writer, ptr, .Other); try writer.writeAll(", "); @@ -6431,7 +6515,7 @@ fn airAtomicRmw(f: *Function, inst: Air.Inst.Index) !CValue { try writer.writeAll(", "); try f.object.dg.renderTypeForBuiltinFnName(writer, ty); try writer.writeAll(", "); - try f.object.dg.renderType(writer, repr_ty); + try f.renderType(writer, repr_ty); try writer.writeAll(");\n"); try operand_mat.end(f, inst); @@ -6444,15 +6528,15 @@ fn airAtomicRmw(f: *Function, inst: Air.Inst.Index) !CValue { } fn airAtomicLoad(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const atomic_load = f.air.instructions.items(.data)[@intFromEnum(inst)].atomic_load; const ptr = try f.resolveInst(atomic_load.ptr); try reap(f, inst, &.{atomic_load.ptr}); const ptr_ty = f.typeOf(atomic_load.ptr); - const ty = ptr_ty.childType(mod); + const ty = ptr_ty.childType(zcu); const repr_ty = if (ty.isRuntimeFloat()) - mod.intType(.unsigned, @as(u16, @intCast(ty.abiSize(mod) * 8))) catch unreachable + zcu.intType(.unsigned, @as(u16, @intCast(ty.abiSize(zcu) * 8))) catch unreachable else ty; @@ -6465,7 +6549,7 @@ fn airAtomicLoad(f: *Function, inst: Air.Inst.Index) !CValue { try writer.writeAll(", (zig_atomic("); try f.renderType(writer, ty); try writer.writeByte(')'); - if (ptr_ty.isVolatilePtr(mod)) try writer.writeAll(" volatile"); + if (ptr_ty.isVolatilePtr(zcu)) try writer.writeAll(" volatile"); try writer.writeAll(" *)"); try f.writeCValue(writer, ptr, .Other); try writer.writeAll(", "); @@ -6473,17 +6557,17 @@ fn airAtomicLoad(f: *Function, inst: Air.Inst.Index) !CValue { try writer.writeAll(", "); try f.object.dg.renderTypeForBuiltinFnName(writer, ty); try writer.writeAll(", "); - try f.object.dg.renderType(writer, repr_ty); + try f.renderType(writer, repr_ty); try writer.writeAll(");\n"); return local; } fn airAtomicStore(f: *Function, inst: Air.Inst.Index, order: [*:0]const u8) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const bin_op = f.air.instructions.items(.data)[@intFromEnum(inst)].bin_op; const ptr_ty = f.typeOf(bin_op.lhs); - const ty = ptr_ty.childType(mod); + const ty = ptr_ty.childType(zcu); const ptr = try f.resolveInst(bin_op.lhs); const element = try f.resolveInst(bin_op.rhs); @@ -6492,14 +6576,14 @@ fn airAtomicStore(f: *Function, inst: Air.Inst.Index, order: [*:0]const u8) !CVa try reap(f, inst, &.{ bin_op.lhs, bin_op.rhs }); const repr_ty = if (ty.isRuntimeFloat()) - mod.intType(.unsigned, @as(u16, @intCast(ty.abiSize(mod) * 8))) catch unreachable + zcu.intType(.unsigned, @as(u16, @intCast(ty.abiSize(zcu) * 8))) catch unreachable else ty; try writer.writeAll("zig_atomic_store((zig_atomic("); try f.renderType(writer, ty); try writer.writeByte(')'); - if (ptr_ty.isVolatilePtr(mod)) try writer.writeAll(" volatile"); + if (ptr_ty.isVolatilePtr(zcu)) try writer.writeAll(" volatile"); try writer.writeAll(" *)"); try f.writeCValue(writer, ptr, .Other); try writer.writeAll(", "); @@ -6507,7 +6591,7 @@ fn airAtomicStore(f: *Function, inst: Air.Inst.Index, order: [*:0]const u8) !CVa try writer.print(", {s}, ", .{order}); try f.object.dg.renderTypeForBuiltinFnName(writer, ty); try writer.writeAll(", "); - try f.object.dg.renderType(writer, repr_ty); + try f.renderType(writer, repr_ty); try writer.writeAll(");\n"); try element_mat.end(f, inst); @@ -6515,8 +6599,8 @@ fn airAtomicStore(f: *Function, inst: Air.Inst.Index, order: [*:0]const u8) !CVa } fn writeSliceOrPtr(f: *Function, writer: anytype, ptr: CValue, ptr_ty: Type) !void { - const mod = f.object.dg.module; - if (ptr_ty.isSlice(mod)) { + const zcu = f.object.dg.zcu; + if (ptr_ty.isSlice(zcu)) { try f.writeCValueMember(writer, ptr, .{ .identifier = "ptr" }); } else { try f.writeCValue(writer, ptr, .FunctionArgument); @@ -6524,14 +6608,14 @@ fn writeSliceOrPtr(f: *Function, writer: anytype, ptr: CValue, ptr_ty: Type) !vo } fn airMemset(f: *Function, inst: Air.Inst.Index, safety: bool) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const bin_op = f.air.instructions.items(.data)[@intFromEnum(inst)].bin_op; const dest_ty = f.typeOf(bin_op.lhs); const dest_slice = try f.resolveInst(bin_op.lhs); const value = try f.resolveInst(bin_op.rhs); const elem_ty = f.typeOf(bin_op.rhs); - const elem_abi_size = elem_ty.abiSize(mod); - const val_is_undef = if (try f.air.value(bin_op.rhs, mod)) |val| val.isUndefDeep(mod) else false; + const elem_abi_size = elem_ty.abiSize(zcu); + const val_is_undef = if (try f.air.value(bin_op.rhs, zcu)) |val| val.isUndefDeep(zcu) else false; const writer = f.object.writer(); if (val_is_undef) { @@ -6541,7 +6625,7 @@ fn airMemset(f: *Function, inst: Air.Inst.Index, safety: bool) !CValue { } try writer.writeAll("memset("); - switch (dest_ty.ptrSize(mod)) { + switch (dest_ty.ptrSize(zcu)) { .Slice => { try f.writeCValueMember(writer, dest_slice, .{ .identifier = "ptr" }); try writer.writeAll(", 0xaa, "); @@ -6553,8 +6637,8 @@ fn airMemset(f: *Function, inst: Air.Inst.Index, safety: bool) !CValue { } }, .One => { - const array_ty = dest_ty.childType(mod); - const len = array_ty.arrayLen(mod) * elem_abi_size; + const array_ty = dest_ty.childType(zcu); + const len = array_ty.arrayLen(zcu) * elem_abi_size; try f.writeCValue(writer, dest_slice, .FunctionArgument); try writer.print(", 0xaa, {d});\n", .{len}); @@ -6565,12 +6649,12 @@ fn airMemset(f: *Function, inst: Air.Inst.Index, safety: bool) !CValue { return .none; } - if (elem_abi_size > 1 or dest_ty.isVolatilePtr(mod)) { + if (elem_abi_size > 1 or dest_ty.isVolatilePtr(zcu)) { // For the assignment in this loop, the array pointer needs to get // casted to a regular pointer, otherwise an error like this occurs: // error: array type 'uint32_t[20]' (aka 'unsigned int[20]') is not assignable - const elem_ptr_ty = try mod.ptrType(.{ - .child = elem_ty.ip_index, + const elem_ptr_ty = try zcu.ptrType(.{ + .child = elem_ty.toIntern(), .flags = .{ .size = .C, }, @@ -6581,17 +6665,17 @@ fn airMemset(f: *Function, inst: Air.Inst.Index, safety: bool) !CValue { try writer.writeAll("for ("); try f.writeCValue(writer, index, .Other); try writer.writeAll(" = "); - try f.object.dg.renderValue(writer, Type.usize, try mod.intValue(Type.usize, 0), .Initializer); + try f.object.dg.renderValue(writer, try zcu.intValue(Type.usize, 0), .Initializer); try writer.writeAll("; "); try f.writeCValue(writer, index, .Other); try writer.writeAll(" != "); - switch (dest_ty.ptrSize(mod)) { + switch (dest_ty.ptrSize(zcu)) { .Slice => { try f.writeCValueMember(writer, dest_slice, .{ .identifier = "len" }); }, .One => { - const array_ty = dest_ty.childType(mod); - try writer.print("{d}", .{array_ty.arrayLen(mod)}); + const array_ty = dest_ty.childType(zcu); + try writer.print("{d}", .{array_ty.arrayLen(zcu)}); }, .Many, .C => unreachable, } @@ -6620,7 +6704,7 @@ fn airMemset(f: *Function, inst: Air.Inst.Index, safety: bool) !CValue { const bitcasted = try bitcast(f, Type.u8, value, elem_ty); try writer.writeAll("memset("); - switch (dest_ty.ptrSize(mod)) { + switch (dest_ty.ptrSize(zcu)) { .Slice => { try f.writeCValueMember(writer, dest_slice, .{ .identifier = "ptr" }); try writer.writeAll(", "); @@ -6630,8 +6714,8 @@ fn airMemset(f: *Function, inst: Air.Inst.Index, safety: bool) !CValue { try writer.writeAll(");\n"); }, .One => { - const array_ty = dest_ty.childType(mod); - const len = array_ty.arrayLen(mod) * elem_abi_size; + const array_ty = dest_ty.childType(zcu); + const len = array_ty.arrayLen(zcu) * elem_abi_size; try f.writeCValue(writer, dest_slice, .FunctionArgument); try writer.writeAll(", "); @@ -6646,7 +6730,7 @@ fn airMemset(f: *Function, inst: Air.Inst.Index, safety: bool) !CValue { } fn airMemcpy(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const bin_op = f.air.instructions.items(.data)[@intFromEnum(inst)].bin_op; const dest_ptr = try f.resolveInst(bin_op.lhs); const src_ptr = try f.resolveInst(bin_op.rhs); @@ -6659,10 +6743,10 @@ fn airMemcpy(f: *Function, inst: Air.Inst.Index) !CValue { try writer.writeAll(", "); try writeSliceOrPtr(f, writer, src_ptr, src_ty); try writer.writeAll(", "); - switch (dest_ty.ptrSize(mod)) { + switch (dest_ty.ptrSize(zcu)) { .Slice => { - const elem_ty = dest_ty.childType(mod); - const elem_abi_size = elem_ty.abiSize(mod); + const elem_ty = dest_ty.childType(zcu); + const elem_abi_size = elem_ty.abiSize(zcu); try f.writeCValueMember(writer, dest_ptr, .{ .identifier = "len" }); if (elem_abi_size > 1) { try writer.print(" * {d});\n", .{elem_abi_size}); @@ -6671,10 +6755,10 @@ fn airMemcpy(f: *Function, inst: Air.Inst.Index) !CValue { } }, .One => { - const array_ty = dest_ty.childType(mod); - const elem_ty = array_ty.childType(mod); - const elem_abi_size = elem_ty.abiSize(mod); - const len = array_ty.arrayLen(mod) * elem_abi_size; + const array_ty = dest_ty.childType(zcu); + const elem_ty = array_ty.childType(zcu); + const elem_abi_size = elem_ty.abiSize(zcu); + const len = array_ty.arrayLen(zcu) * elem_abi_size; try writer.print("{d});\n", .{len}); }, .Many, .C => unreachable, @@ -6685,16 +6769,16 @@ fn airMemcpy(f: *Function, inst: Air.Inst.Index) !CValue { } fn airSetUnionTag(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const bin_op = f.air.instructions.items(.data)[@intFromEnum(inst)].bin_op; const union_ptr = try f.resolveInst(bin_op.lhs); const new_tag = try f.resolveInst(bin_op.rhs); try reap(f, inst, &.{ bin_op.lhs, bin_op.rhs }); - const union_ty = f.typeOf(bin_op.lhs).childType(mod); - const layout = union_ty.unionGetLayout(mod); + const union_ty = f.typeOf(bin_op.lhs).childType(zcu); + const layout = union_ty.unionGetLayout(zcu); if (layout.tag_size == 0) return .none; - const tag_ty = union_ty.unionTagTypeSafety(mod).?; + const tag_ty = union_ty.unionTagTypeSafety(zcu).?; const writer = f.object.writer(); const a = try Assignment.start(f, writer, tag_ty); @@ -6706,14 +6790,14 @@ fn airSetUnionTag(f: *Function, inst: Air.Inst.Index) !CValue { } fn airGetUnionTag(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const ty_op = f.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const operand = try f.resolveInst(ty_op.operand); try reap(f, inst, &.{ty_op.operand}); const union_ty = f.typeOf(ty_op.operand); - const layout = union_ty.unionGetLayout(mod); + const layout = union_ty.unionGetLayout(zcu); if (layout.tag_size == 0) return .none; const inst_ty = f.typeOfIndex(inst); @@ -6728,7 +6812,7 @@ fn airGetUnionTag(f: *Function, inst: Air.Inst.Index) !CValue { } fn airTagName(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const un_op = f.air.instructions.items(.data)[@intFromEnum(inst)].un_op; const inst_ty = f.typeOfIndex(inst); @@ -6740,7 +6824,7 @@ fn airTagName(f: *Function, inst: Air.Inst.Index) !CValue { const local = try f.allocLocal(inst, inst_ty); try f.writeCValue(writer, local, .Other); try writer.print(" = {s}(", .{ - try f.getLazyFnName(.{ .tag_name = enum_ty.getOwnerDecl(mod) }, .{ .tag_name = enum_ty }), + try f.getLazyFnName(.{ .tag_name = enum_ty.getOwnerDecl(zcu) }, .{ .tag_name = enum_ty }), }); try f.writeCValue(writer, operand, .Other); try writer.writeAll(");\n"); @@ -6765,14 +6849,14 @@ fn airErrorName(f: *Function, inst: Air.Inst.Index) !CValue { } fn airSplat(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const ty_op = f.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const operand = try f.resolveInst(ty_op.operand); try reap(f, inst, &.{ty_op.operand}); const inst_ty = f.typeOfIndex(inst); - const inst_scalar_ty = inst_ty.scalarType(mod); + const inst_scalar_ty = inst_ty.scalarType(zcu); const writer = f.object.writer(); const local = try f.allocLocal(inst, inst_ty); @@ -6820,7 +6904,7 @@ fn airSelect(f: *Function, inst: Air.Inst.Index) !CValue { } fn airShuffle(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const ty_pl = f.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl; const extra = f.air.extraData(Air.Shuffle, ty_pl.payload).data; @@ -6836,15 +6920,15 @@ fn airShuffle(f: *Function, inst: Air.Inst.Index) !CValue { for (0..extra.mask_len) |index| { try f.writeCValue(writer, local, .Other); try writer.writeByte('['); - try f.object.dg.renderValue(writer, Type.usize, try mod.intValue(Type.usize, index), .Other); + try f.object.dg.renderValue(writer, try zcu.intValue(Type.usize, index), .Other); try writer.writeAll("] = "); - const mask_elem = (try mask.elemValue(mod, index)).toSignedInt(mod); - const src_val = try mod.intValue(Type.usize, @as(u64, @intCast(mask_elem ^ mask_elem >> 63))); + const mask_elem = (try mask.elemValue(zcu, index)).toSignedInt(zcu); + const src_val = try zcu.intValue(Type.usize, @as(u64, @intCast(mask_elem ^ mask_elem >> 63))); try f.writeCValue(writer, if (mask_elem >= 0) lhs else rhs, .Other); try writer.writeByte('['); - try f.object.dg.renderValue(writer, Type.usize, src_val, .Other); + try f.object.dg.renderValue(writer, src_val, .Other); try writer.writeAll("];\n"); } @@ -6852,7 +6936,7 @@ fn airShuffle(f: *Function, inst: Air.Inst.Index) !CValue { } fn airReduce(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const reduce = f.air.instructions.items(.data)[@intFromEnum(inst)].reduce; const scalar_ty = f.typeOfIndex(inst); @@ -6861,7 +6945,7 @@ fn airReduce(f: *Function, inst: Air.Inst.Index) !CValue { const operand_ty = f.typeOf(reduce.operand); const writer = f.object.writer(); - const use_operator = scalar_ty.bitSize(mod) <= 64; + const use_operator = scalar_ty.bitSize(zcu) <= 64; const op: union(enum) { const Func = struct { operation: []const u8, info: BuiltinInfo = .none }; float_op: Func, @@ -6872,28 +6956,28 @@ fn airReduce(f: *Function, inst: Air.Inst.Index) !CValue { .And => if (use_operator) .{ .infix = " &= " } else .{ .builtin = .{ .operation = "and" } }, .Or => if (use_operator) .{ .infix = " |= " } else .{ .builtin = .{ .operation = "or" } }, .Xor => if (use_operator) .{ .infix = " ^= " } else .{ .builtin = .{ .operation = "xor" } }, - .Min => switch (scalar_ty.zigTypeTag(mod)) { + .Min => switch (scalar_ty.zigTypeTag(zcu)) { .Int => if (use_operator) .{ .ternary = " < " } else .{ .builtin = .{ .operation = "min" }, }, .Float => .{ .float_op = .{ .operation = "fmin" } }, else => unreachable, }, - .Max => switch (scalar_ty.zigTypeTag(mod)) { + .Max => switch (scalar_ty.zigTypeTag(zcu)) { .Int => if (use_operator) .{ .ternary = " > " } else .{ .builtin = .{ .operation = "max" }, }, .Float => .{ .float_op = .{ .operation = "fmax" } }, else => unreachable, }, - .Add => switch (scalar_ty.zigTypeTag(mod)) { + .Add => switch (scalar_ty.zigTypeTag(zcu)) { .Int => if (use_operator) .{ .infix = " += " } else .{ .builtin = .{ .operation = "addw", .info = .bits }, }, .Float => .{ .builtin = .{ .operation = "add" } }, else => unreachable, }, - .Mul => switch (scalar_ty.zigTypeTag(mod)) { + .Mul => switch (scalar_ty.zigTypeTag(zcu)) { .Int => if (use_operator) .{ .infix = " *= " } else .{ .builtin = .{ .operation = "mulw", .info = .bits }, }, @@ -6908,7 +6992,7 @@ fn airReduce(f: *Function, inst: Air.Inst.Index) !CValue { // Equivalent to: // reduce: { // var accum: T = init; - // for (vec) : (elem) { + // for (vec) |elem| { // accum = func(accum, elem); // } // break :reduce accum; @@ -6918,40 +7002,40 @@ fn airReduce(f: *Function, inst: Air.Inst.Index) !CValue { try f.writeCValue(writer, accum, .Other); try writer.writeAll(" = "); - try f.object.dg.renderValue(writer, scalar_ty, switch (reduce.operation) { - .Or, .Xor => switch (scalar_ty.zigTypeTag(mod)) { + try f.object.dg.renderValue(writer, switch (reduce.operation) { + .Or, .Xor => switch (scalar_ty.zigTypeTag(zcu)) { .Bool => Value.false, - .Int => try mod.intValue(scalar_ty, 0), + .Int => try zcu.intValue(scalar_ty, 0), else => unreachable, }, - .And => switch (scalar_ty.zigTypeTag(mod)) { + .And => switch (scalar_ty.zigTypeTag(zcu)) { .Bool => Value.true, - .Int => switch (scalar_ty.intInfo(mod).signedness) { - .unsigned => try scalar_ty.maxIntScalar(mod, scalar_ty), - .signed => try mod.intValue(scalar_ty, -1), + .Int => switch (scalar_ty.intInfo(zcu).signedness) { + .unsigned => try scalar_ty.maxIntScalar(zcu, scalar_ty), + .signed => try zcu.intValue(scalar_ty, -1), }, else => unreachable, }, - .Add => switch (scalar_ty.zigTypeTag(mod)) { - .Int => try mod.intValue(scalar_ty, 0), - .Float => try mod.floatValue(scalar_ty, 0.0), + .Add => switch (scalar_ty.zigTypeTag(zcu)) { + .Int => try zcu.intValue(scalar_ty, 0), + .Float => try zcu.floatValue(scalar_ty, 0.0), else => unreachable, }, - .Mul => switch (scalar_ty.zigTypeTag(mod)) { - .Int => try mod.intValue(scalar_ty, 1), - .Float => try mod.floatValue(scalar_ty, 1.0), + .Mul => switch (scalar_ty.zigTypeTag(zcu)) { + .Int => try zcu.intValue(scalar_ty, 1), + .Float => try zcu.floatValue(scalar_ty, 1.0), else => unreachable, }, - .Min => switch (scalar_ty.zigTypeTag(mod)) { + .Min => switch (scalar_ty.zigTypeTag(zcu)) { .Bool => Value.true, - .Int => try scalar_ty.maxIntScalar(mod, scalar_ty), - .Float => try mod.floatValue(scalar_ty, std.math.nan(f128)), + .Int => try scalar_ty.maxIntScalar(zcu, scalar_ty), + .Float => try zcu.floatValue(scalar_ty, std.math.nan(f128)), else => unreachable, }, - .Max => switch (scalar_ty.zigTypeTag(mod)) { + .Max => switch (scalar_ty.zigTypeTag(zcu)) { .Bool => Value.false, - .Int => try scalar_ty.minIntScalar(mod, scalar_ty), - .Float => try mod.floatValue(scalar_ty, std.math.nan(f128)), + .Int => try scalar_ty.minIntScalar(zcu, scalar_ty), + .Float => try zcu.floatValue(scalar_ty, std.math.nan(f128)), else => unreachable, }, }, .Initializer); @@ -7007,11 +7091,11 @@ fn airReduce(f: *Function, inst: Air.Inst.Index) !CValue { } fn airAggregateInit(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; - const ip = &mod.intern_pool; + const zcu = f.object.dg.zcu; + const ip = &zcu.intern_pool; const ty_pl = f.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl; const inst_ty = f.typeOfIndex(inst); - const len = @as(usize, @intCast(inst_ty.arrayLen(mod))); + const len = @as(usize, @intCast(inst_ty.arrayLen(zcu))); const elements = @as([]const Air.Inst.Ref, @ptrCast(f.air.extra[ty_pl.payload..][0..len])); const gpa = f.object.dg.gpa; const resolved_elements = try gpa.alloc(CValue, elements.len); @@ -7028,10 +7112,9 @@ fn airAggregateInit(f: *Function, inst: Air.Inst.Index) !CValue { const writer = f.object.writer(); const local = try f.allocLocal(inst, inst_ty); - switch (inst_ty.zigTypeTag(mod)) { + switch (inst_ty.zigTypeTag(zcu)) { .Array, .Vector => { - const elem_ty = inst_ty.childType(mod); - const a = try Assignment.init(f, elem_ty); + const a = try Assignment.init(f, inst_ty.childType(zcu)); for (resolved_elements, 0..) |element, i| { try a.restart(f, writer); try f.writeCValue(writer, local, .Other); @@ -7040,26 +7123,26 @@ fn airAggregateInit(f: *Function, inst: Air.Inst.Index) !CValue { try f.writeCValue(writer, element, .Other); try a.end(f, writer); } - if (inst_ty.sentinel(mod)) |sentinel| { + if (inst_ty.sentinel(zcu)) |sentinel| { try a.restart(f, writer); try f.writeCValue(writer, local, .Other); try writer.print("[{d}]", .{resolved_elements.len}); try a.assign(f, writer); - try f.object.dg.renderValue(writer, elem_ty, sentinel, .Other); + try f.object.dg.renderValue(writer, sentinel, .Other); try a.end(f, writer); } }, - .Struct => switch (inst_ty.containerLayout(mod)) { + .Struct => switch (inst_ty.containerLayout(zcu)) { .auto, .@"extern" => for (resolved_elements, 0..) |element, field_index| { - if (inst_ty.structFieldIsComptime(field_index, mod)) continue; - const field_ty = inst_ty.structFieldType(field_index, mod); - if (!field_ty.hasRuntimeBitsIgnoreComptime(mod)) continue; + if (inst_ty.structFieldIsComptime(field_index, zcu)) continue; + const field_ty = inst_ty.structFieldType(field_index, zcu); + if (!field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; const a = try Assignment.start(f, writer, field_ty); - try f.writeCValueMember(writer, local, if (inst_ty.isSimpleTuple(mod)) + try f.writeCValueMember(writer, local, if (inst_ty.isSimpleTuple(zcu)) .{ .field = field_index } else - .{ .identifier = ip.stringToSlice(inst_ty.legacyStructFieldName(@intCast(field_index), mod)) }); + .{ .identifier = ip.stringToSlice(inst_ty.legacyStructFieldName(@intCast(field_index), zcu)) }); try a.assign(f, writer); try f.writeCValue(writer, element, .Other); try a.end(f, writer); @@ -7067,17 +7150,17 @@ fn airAggregateInit(f: *Function, inst: Air.Inst.Index) !CValue { .@"packed" => { try f.writeCValue(writer, local, .Other); try writer.writeAll(" = "); - const int_info = inst_ty.intInfo(mod); + const int_info = inst_ty.intInfo(zcu); - const bit_offset_ty = try mod.intType(.unsigned, Type.smallestUnsignedBits(int_info.bits - 1)); + const bit_offset_ty = try zcu.intType(.unsigned, Type.smallestUnsignedBits(int_info.bits - 1)); var bit_offset: u64 = 0; var empty = true; for (0..elements.len) |field_index| { - if (inst_ty.structFieldIsComptime(field_index, mod)) continue; - const field_ty = inst_ty.structFieldType(field_index, mod); - if (!field_ty.hasRuntimeBitsIgnoreComptime(mod)) continue; + if (inst_ty.structFieldIsComptime(field_index, zcu)) continue; + const field_ty = inst_ty.structFieldType(field_index, zcu); + if (!field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; if (!empty) { try writer.writeAll("zig_or_"); @@ -7088,9 +7171,9 @@ fn airAggregateInit(f: *Function, inst: Air.Inst.Index) !CValue { } empty = true; for (resolved_elements, 0..) |element, field_index| { - if (inst_ty.structFieldIsComptime(field_index, mod)) continue; - const field_ty = inst_ty.structFieldType(field_index, mod); - if (!field_ty.hasRuntimeBitsIgnoreComptime(mod)) continue; + if (inst_ty.structFieldIsComptime(field_index, zcu)) continue; + const field_ty = inst_ty.structFieldType(field_index, zcu); + if (!field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; if (!empty) try writer.writeAll(", "); // TODO: Skip this entire shift if val is 0? @@ -7098,13 +7181,13 @@ fn airAggregateInit(f: *Function, inst: Air.Inst.Index) !CValue { try f.object.dg.renderTypeForBuiltinFnName(writer, inst_ty); try writer.writeByte('('); - if (inst_ty.isAbiInt(mod) and (field_ty.isAbiInt(mod) or field_ty.isPtrAtRuntime(mod))) { + if (inst_ty.isAbiInt(zcu) and (field_ty.isAbiInt(zcu) or field_ty.isPtrAtRuntime(zcu))) { try f.renderIntCast(writer, inst_ty, element, .{}, field_ty, .FunctionArgument); } else { try writer.writeByte('('); try f.renderType(writer, inst_ty); try writer.writeByte(')'); - if (field_ty.isPtrAtRuntime(mod)) { + if (field_ty.isPtrAtRuntime(zcu)) { try writer.writeByte('('); try f.renderType(writer, switch (int_info.signedness) { .unsigned => Type.usize, @@ -7115,14 +7198,14 @@ fn airAggregateInit(f: *Function, inst: Air.Inst.Index) !CValue { try f.writeCValue(writer, element, .Other); } - try writer.writeAll(", "); - const bit_offset_val = try mod.intValue(bit_offset_ty, bit_offset); - try f.object.dg.renderValue(writer, bit_offset_ty, bit_offset_val, .FunctionArgument); + try writer.print(", {}", .{ + try f.fmtIntLiteral(try zcu.intValue(bit_offset_ty, bit_offset)), + }); try f.object.dg.renderBuiltinInfo(writer, inst_ty, .bits); try writer.writeByte(')'); if (!empty) try writer.writeByte(')'); - bit_offset += field_ty.bitSize(mod); + bit_offset += field_ty.bitSize(zcu); empty = false; } @@ -7136,13 +7219,13 @@ fn airAggregateInit(f: *Function, inst: Air.Inst.Index) !CValue { } fn airUnionInit(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; - const ip = &mod.intern_pool; + const zcu = f.object.dg.zcu; + const ip = &zcu.intern_pool; const ty_pl = f.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl; const extra = f.air.extraData(Air.UnionInit, ty_pl.payload).data; const union_ty = f.typeOfIndex(inst); - const union_obj = mod.typeToUnion(union_ty).?; + const union_obj = zcu.typeToUnion(union_ty).?; const field_name = union_obj.loadTagType(ip).names.get(ip)[extra.field_index]; const payload_ty = f.typeOf(extra.init); const payload = try f.resolveInst(extra.init); @@ -7158,19 +7241,16 @@ fn airUnionInit(f: *Function, inst: Air.Inst.Index) !CValue { return local; } - const field: CValue = if (union_ty.unionTagTypeSafety(mod)) |tag_ty| field: { - const layout = union_ty.unionGetLayout(mod); + const field: CValue = if (union_ty.unionTagTypeSafety(zcu)) |tag_ty| field: { + const layout = union_ty.unionGetLayout(zcu); if (layout.tag_size != 0) { - const field_index = tag_ty.enumFieldIndex(field_name, mod).?; - - const tag_val = try mod.enumValueFieldIndex(tag_ty, field_index); - - const int_val = try tag_val.intFromEnum(tag_ty, mod); + const field_index = tag_ty.enumFieldIndex(field_name, zcu).?; + const tag_val = try zcu.enumValueFieldIndex(tag_ty, field_index); const a = try Assignment.start(f, writer, tag_ty); try f.writeCValueMember(writer, local, .{ .identifier = "tag" }); try a.assign(f, writer); - try writer.print("{}", .{try f.fmtIntLiteral(tag_ty, int_val)}); + try writer.print("{}", .{try f.fmtIntLiteral(try tag_val.intFromEnum(tag_ty, zcu))}); try a.end(f, writer); } break :field .{ .payload_identifier = ip.stringToSlice(field_name) }; @@ -7185,7 +7265,7 @@ fn airUnionInit(f: *Function, inst: Air.Inst.Index) !CValue { } fn airPrefetch(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const prefetch = f.air.instructions.items(.data)[@intFromEnum(inst)].prefetch; const ptr_ty = f.typeOf(prefetch.ptr); @@ -7196,7 +7276,7 @@ fn airPrefetch(f: *Function, inst: Air.Inst.Index) !CValue { switch (prefetch.cache) { .data => { try writer.writeAll("zig_prefetch("); - if (ptr_ty.isSlice(mod)) + if (ptr_ty.isSlice(zcu)) try f.writeCValueMember(writer, ptr, .{ .identifier = "ptr" }) else try f.writeCValue(writer, ptr, .FunctionArgument); @@ -7242,14 +7322,14 @@ fn airWasmMemoryGrow(f: *Function, inst: Air.Inst.Index) !CValue { } fn airFloatNeg(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const un_op = f.air.instructions.items(.data)[@intFromEnum(inst)].un_op; const operand = try f.resolveInst(un_op); try reap(f, inst, &.{un_op}); const operand_ty = f.typeOf(un_op); - const scalar_ty = operand_ty.scalarType(mod); + const scalar_ty = operand_ty.scalarType(zcu); const writer = f.object.writer(); const local = try f.allocLocal(inst, operand_ty); @@ -7268,15 +7348,15 @@ fn airFloatNeg(f: *Function, inst: Air.Inst.Index) !CValue { } fn airAbs(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const ty_op = f.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const operand = try f.resolveInst(ty_op.operand); const ty = f.typeOf(ty_op.operand); - const scalar_ty = ty.scalarType(mod); + const scalar_ty = ty.scalarType(zcu); - switch (scalar_ty.zigTypeTag(mod)) { - .Int => if (ty.zigTypeTag(mod) == .Vector) { - return f.fail("TODO implement airAbs for '{}'", .{ty.fmt(mod)}); + switch (scalar_ty.zigTypeTag(zcu)) { + .Int => if (ty.zigTypeTag(zcu) == .Vector) { + return f.fail("TODO implement airAbs for '{}'", .{ty.fmt(zcu)}); } else { return airUnBuiltinCall(f, inst, "abs", .none); }, @@ -7286,8 +7366,8 @@ fn airAbs(f: *Function, inst: Air.Inst.Index) !CValue { } fn unFloatOp(f: *Function, inst: Air.Inst.Index, operand: CValue, ty: Type, operation: []const u8) !CValue { - const mod = f.object.dg.module; - const scalar_ty = ty.scalarType(mod); + const zcu = f.object.dg.zcu; + const scalar_ty = ty.scalarType(zcu); const writer = f.object.writer(); const local = try f.allocLocal(inst, ty); @@ -7316,7 +7396,7 @@ fn airUnFloatOp(f: *Function, inst: Air.Inst.Index, operation: []const u8) !CVal } fn airBinFloatOp(f: *Function, inst: Air.Inst.Index, operation: []const u8) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const bin_op = f.air.instructions.items(.data)[@intFromEnum(inst)].bin_op; const lhs = try f.resolveInst(bin_op.lhs); @@ -7324,7 +7404,7 @@ fn airBinFloatOp(f: *Function, inst: Air.Inst.Index, operation: []const u8) !CVa try reap(f, inst, &.{ bin_op.lhs, bin_op.rhs }); const inst_ty = f.typeOfIndex(inst); - const inst_scalar_ty = inst_ty.scalarType(mod); + const inst_scalar_ty = inst_ty.scalarType(zcu); const writer = f.object.writer(); const local = try f.allocLocal(inst, inst_ty); @@ -7346,7 +7426,7 @@ fn airBinFloatOp(f: *Function, inst: Air.Inst.Index, operation: []const u8) !CVa } fn airMulAdd(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const pl_op = f.air.instructions.items(.data)[@intFromEnum(inst)].pl_op; const bin_op = f.air.extraData(Air.Bin, pl_op.payload).data; @@ -7356,7 +7436,7 @@ fn airMulAdd(f: *Function, inst: Air.Inst.Index) !CValue { try reap(f, inst, &.{ bin_op.lhs, bin_op.rhs, pl_op.operand }); const inst_ty = f.typeOfIndex(inst); - const inst_scalar_ty = inst_ty.scalarType(mod); + const inst_scalar_ty = inst_ty.scalarType(zcu); const writer = f.object.writer(); const local = try f.allocLocal(inst, inst_ty); @@ -7381,11 +7461,11 @@ fn airMulAdd(f: *Function, inst: Air.Inst.Index) !CValue { } fn airCVaStart(f: *Function, inst: Air.Inst.Index) !CValue { - const mod = f.object.dg.module; + const zcu = f.object.dg.zcu; const inst_ty = f.typeOfIndex(inst); const decl_index = f.object.dg.pass.decl; - const decl = mod.declPtr(decl_index); - const fn_cty = try f.typeToCType(decl.typeOf(mod), .complete); + const decl = zcu.declPtr(decl_index); + const fn_cty = try f.typeToCType(decl.typeOf(zcu), .complete); const param_len = fn_cty.castTag(.varargs_function).?.data.param_types.len; const writer = f.object.writer(); @@ -7589,9 +7669,8 @@ fn signAbbrev(signedness: std.builtin.Signedness) u8 { }; } -fn compilerRtAbbrev(ty: Type, mod: *Module) []const u8 { - const target = mod.getTarget(); - return if (ty.isInt(mod)) switch (ty.intInfo(mod).bits) { +fn compilerRtAbbrev(ty: Type, zcu: *Zcu, target: std.Target) []const u8 { + return if (ty.isInt(zcu)) switch (ty.intInfo(zcu).bits) { 1...32 => "si", 33...64 => "di", 65...128 => "ti", @@ -7753,8 +7832,8 @@ fn formatIntLiteral( options: std.fmt.FormatOptions, writer: anytype, ) @TypeOf(writer).Error!void { - const mod = data.dg.module; - const target = mod.getTarget(); + const zcu = data.dg.zcu; + const target = &data.dg.mod.resolved_target.result; const ExpectedContents = struct { const base = 10; @@ -7774,7 +7853,7 @@ fn formatIntLiteral( defer allocator.free(undef_limbs); var int_buf: Value.BigIntSpace = undefined; - const int = if (data.val.isUndefDeep(mod)) blk: { + const int = if (data.val.isUndefDeep(zcu)) blk: { undef_limbs = try allocator.alloc(BigIntLimb, BigInt.calcTwosCompLimbCount(data.int_info.bits)); @memset(undef_limbs, undefPattern(BigIntLimb)); @@ -7785,10 +7864,10 @@ fn formatIntLiteral( }; undef_int.truncate(undef_int.toConst(), data.int_info.signedness, data.int_info.bits); break :blk undef_int.toConst(); - } else data.val.toBigInt(&int_buf, mod); + } else data.val.toBigInt(&int_buf, zcu); assert(int.fitsInTwosComp(data.int_info.signedness, data.int_info.bits)); - const c_bits: usize = @intCast(data.cty.byteSize(data.dg.ctypes.set, target) * 8); + const c_bits: usize = @intCast(data.cty.byteSize(data.dg.ctypes.set, data.dg.mod) * 8); var one_limbs: [BigInt.calcLimbLen(1)]BigIntLimb = undefined; const one = BigInt.Mutable.init(&one_limbs, 1).toConst(); @@ -7919,7 +7998,7 @@ fn formatIntLiteral( .int_info = c_limb_int_info, .kind = data.kind, .cty = c_limb_cty, - .val = try mod.intValue_big(Type.comptime_int, c_limb_mut.toConst()), + .val = try zcu.intValue_big(Type.comptime_int, c_limb_mut.toConst()), }, fmt, options, writer); } } @@ -8016,21 +8095,17 @@ const Vectorize = struct { index: CValue = .none, pub fn start(f: *Function, inst: Air.Inst.Index, writer: anytype, ty: Type) !Vectorize { - const mod = f.object.dg.module; - return if (ty.zigTypeTag(mod) == .Vector) index: { - const len_val = try mod.intValue(Type.usize, ty.vectorLen(mod)); - + const zcu = f.object.dg.zcu; + return if (ty.zigTypeTag(zcu) == .Vector) index: { const local = try f.allocLocal(inst, Type.usize); try writer.writeAll("for ("); try f.writeCValue(writer, local, .Other); - try writer.print(" = {d}; ", .{try f.fmtIntLiteral(Type.usize, try mod.intValue(Type.usize, 0))}); + try writer.print(" = {d}; ", .{try f.fmtIntLiteral(try zcu.intValue(Type.usize, 0))}); try f.writeCValue(writer, local, .Other); - try writer.print(" < {d}; ", .{ - try f.fmtIntLiteral(Type.usize, len_val), - }); + try writer.print(" < {d}; ", .{try f.fmtIntLiteral(try zcu.intValue(Type.usize, ty.vectorLen(zcu)))}); try f.writeCValue(writer, local, .Other); - try writer.print(" += {d}) {{\n", .{try f.fmtIntLiteral(Type.usize, try mod.intValue(Type.usize, 1))}); + try writer.print(" += {d}) {{\n", .{try f.fmtIntLiteral(try zcu.intValue(Type.usize, 1))}); f.object.indent_writer.pushIndent(); break :index .{ .index = local }; @@ -8054,16 +8129,16 @@ const Vectorize = struct { } }; -fn lowerFnRetTy(ret_ty: Type, mod: *Module) !Type { - if (ret_ty.ip_index == .noreturn_type) return Type.noreturn; +fn lowerFnRetTy(ret_ty: Type, zcu: *Zcu) !Type { + if (ret_ty.toIntern() == .noreturn_type) return Type.noreturn; - if (lowersToArray(ret_ty, mod)) { - const gpa = mod.gpa; - const ip = &mod.intern_pool; + if (lowersToArray(ret_ty, zcu)) { + const gpa = zcu.gpa; + const ip = &zcu.intern_pool; const names = [1]InternPool.NullTerminatedString{ try ip.getOrPutString(gpa, "array"), }; - const types = [1]InternPool.Index{ret_ty.ip_index}; + const types = [1]InternPool.Index{ret_ty.toIntern()}; const values = [1]InternPool.Index{.none}; const interned = try ip.getAnonStructType(gpa, .{ .names = &names, @@ -8073,13 +8148,13 @@ fn lowerFnRetTy(ret_ty: Type, mod: *Module) !Type { return Type.fromInterned(interned); } - return if (ret_ty.hasRuntimeBitsIgnoreComptime(mod)) ret_ty else Type.void; + return if (ret_ty.hasRuntimeBitsIgnoreComptime(zcu)) ret_ty else Type.void; } -fn lowersToArray(ty: Type, mod: *Module) bool { - return switch (ty.zigTypeTag(mod)) { +fn lowersToArray(ty: Type, zcu: *Zcu) bool { + return switch (ty.zigTypeTag(zcu)) { .Array, .Vector => return true, - else => return ty.isAbiInt(mod) and toCIntBits(@as(u32, @intCast(ty.bitSize(mod)))) == null, + else => return ty.isAbiInt(zcu) and toCIntBits(@as(u32, @intCast(ty.bitSize(zcu)))) == null, }; } @@ -8098,7 +8173,7 @@ fn die(f: *Function, inst: Air.Inst.Index, ref: Air.Inst.Ref) !void { const ref_inst = ref.toIndex() orelse return; const c_value = (f.value_map.fetchRemove(ref) orelse return).value; const local_index = switch (c_value) { - .local, .new_local => |l| l, + .new_local, .local => |l| l, else => return, }; try freeLocal(f, inst, local_index, ref_inst); diff --git a/src/codegen/c/type.zig b/src/codegen/c/type.zig index 66f92c930d99..a75f5e8f1564 100644 --- a/src/codegen/c/type.zig +++ b/src/codegen/c/type.zig @@ -3,10 +3,10 @@ const mem = std.mem; const Allocator = mem.Allocator; const assert = std.debug.assert; const autoHash = std.hash.autoHash; -const Target = std.Target; const Alignment = @import("../../InternPool.zig").Alignment; -const Module = @import("../../Module.zig"); +const Zcu = @import("../../Module.zig"); +const Module = @import("../../Package/Module.zig"); const InternPool = @import("../../InternPool.zig"); const Type = @import("../../type.zig").Type; @@ -280,7 +280,7 @@ pub const CType = extern union { }; }; - pub const AlignAs = struct { + pub const AlignAs = packed struct { @"align": Alignment, abi: Alignment, @@ -298,19 +298,19 @@ pub const CType = extern union { Alignment.fromNonzeroByteUnits(abi_alignment), ); } - pub fn abiAlign(ty: Type, mod: *Module) AlignAs { - const abi_align = ty.abiAlignment(mod); + pub fn abiAlign(ty: Type, zcu: *Zcu) AlignAs { + const abi_align = ty.abiAlignment(zcu); return init(abi_align, abi_align); } - pub fn fieldAlign(struct_ty: Type, field_i: usize, mod: *Module) AlignAs { + pub fn fieldAlign(struct_ty: Type, field_i: usize, zcu: *Zcu) AlignAs { return init( - struct_ty.structFieldAlign(field_i, mod), - struct_ty.structFieldType(field_i, mod).abiAlignment(mod), + struct_ty.structFieldAlign(field_i, zcu), + struct_ty.structFieldType(field_i, zcu).abiAlignment(zcu), ); } - pub fn unionPayloadAlign(union_ty: Type, mod: *Module) AlignAs { - const union_obj = mod.typeToUnion(union_ty).?; - const union_payload_align = mod.unionAbiAlignment(union_obj); + pub fn unionPayloadAlign(union_ty: Type, zcu: *Zcu) AlignAs { + const union_obj = zcu.typeToUnion(union_ty).?; + const union_payload_align = zcu.unionAbiAlignment(union_obj); return init(union_payload_align, union_payload_align); } @@ -356,8 +356,8 @@ pub const CType = extern union { return self.map.entries.items(.hash)[index - Tag.no_payload_count]; } - pub fn typeToIndex(self: Set, ty: Type, mod: *Module, kind: Kind) ?Index { - const lookup = Convert.Lookup{ .imm = .{ .set = &self, .mod = mod } }; + pub fn typeToIndex(self: Set, ty: Type, zcu: *Zcu, mod: *Module, kind: Kind) ?Index { + const lookup = Convert.Lookup{ .imm = .{ .set = &self, .zcu = zcu, .mod = mod } }; var convert: Convert = undefined; convert.initType(ty, kind, lookup) catch unreachable; @@ -398,10 +398,11 @@ pub const CType = extern union { pub fn typeToIndex( self: *Promoted, ty: Type, + zcu: *Zcu, mod: *Module, kind: Kind, ) Allocator.Error!Index { - const lookup = Convert.Lookup{ .mut = .{ .promoted = self, .mod = mod } }; + const lookup = Convert.Lookup{ .mut = .{ .promoted = self, .zcu = zcu, .mod = mod } }; var convert: Convert = undefined; try convert.initType(ty, kind, lookup); @@ -417,7 +418,7 @@ pub const CType = extern union { ); if (!gop.found_existing) { errdefer _ = self.set.map.pop(); - gop.key_ptr.* = try createFromConvert(self, ty, lookup.getModule(), kind, convert); + gop.key_ptr.* = try createFromConvert(self, ty, zcu, mod, kind, convert); } if (std.debug.runtime_safety) { const adapter = TypeAdapter64{ @@ -457,15 +458,15 @@ pub const CType = extern union { return promoted.cTypeToIndex(cty); } - pub fn typeToCType(self: *Store, gpa: Allocator, ty: Type, mod: *Module, kind: Kind) !CType { - const idx = try self.typeToIndex(gpa, ty, mod, kind); + pub fn typeToCType(self: *Store, gpa: Allocator, ty: Type, zcu: *Zcu, mod: *Module, kind: Kind) !CType { + const idx = try self.typeToIndex(gpa, ty, zcu, mod, kind); return self.indexToCType(idx); } - pub fn typeToIndex(self: *Store, gpa: Allocator, ty: Type, mod: *Module, kind: Kind) !Index { + pub fn typeToIndex(self: *Store, gpa: Allocator, ty: Type, zcu: *Zcu, mod: *Module, kind: Kind) !Index { var promoted = self.promote(gpa); defer self.demote(promoted); - return promoted.typeToIndex(ty, mod, kind); + return promoted.typeToIndex(ty, zcu, mod, kind); } pub fn clearRetainingCapacity(self: *Store, gpa: Allocator) void { @@ -549,9 +550,9 @@ pub const CType = extern union { }; } - pub fn signedness(self: CType, target: std.Target) std.builtin.Signedness { + pub fn signedness(self: CType, mod: *Module) std.builtin.Signedness { return switch (self.tag()) { - .char => target.charSignedness(), + .char => mod.resolved_target.result.charSignedness(), .@"signed char", .short, .int, @@ -854,7 +855,8 @@ pub const CType = extern union { } } - pub fn floatActiveBits(self: CType, target: Target) u16 { + pub fn floatActiveBits(self: CType, mod: *Module) u16 { + const target = &mod.resolved_target.result; return switch (self.tag()) { .float => target.c_type_bit_size(.float), .double => target.c_type_bit_size(.double), @@ -868,7 +870,8 @@ pub const CType = extern union { }; } - pub fn byteSize(self: CType, store: Store.Set, target: Target) u64 { + pub fn byteSize(self: CType, store: Store.Set, mod: *Module) u64 { + const target = &mod.resolved_target.result; return switch (self.tag()) { .void => 0, .char, .@"signed char", ._Bool, .@"unsigned char", .bool, .uint8_t, .int8_t => 1, @@ -906,7 +909,7 @@ pub const CType = extern union { .vector, => { const data = self.cast(Payload.Sequence).?.data; - return data.len * store.indexToCType(data.elem_type).byteSize(store, target); + return data.len * store.indexToCType(data.elem_type).byteSize(store, mod); }, .fwd_anon_struct, @@ -1248,13 +1251,18 @@ pub const CType = extern union { } pub const Lookup = union(enum) { - fail: *Module, + fail: struct { + zcu: *Zcu, + mod: *Module, + }, imm: struct { set: *const Store.Set, + zcu: *Zcu, mod: *Module, }, mut: struct { promoted: *Store.Promoted, + zcu: *Zcu, mod: *Module, }, @@ -1265,15 +1273,15 @@ pub const CType = extern union { }; } - pub fn getTarget(self: @This()) Target { - return self.getModule().getTarget(); + pub fn getZcu(self: @This()) *Zcu { + return switch (self) { + inline else => |pl| pl.zcu, + }; } pub fn getModule(self: @This()) *Module { return switch (self) { - .fail => |mod| mod, - .imm => |imm| imm.mod, - .mut => |mut| mut.mod, + inline else => |pl| pl.mod, }; } @@ -1288,8 +1296,8 @@ pub const CType = extern union { pub fn typeToIndex(self: @This(), ty: Type, kind: Kind) !?Index { return switch (self) { .fail => null, - .imm => |imm| imm.set.typeToIndex(ty, imm.mod, kind), - .mut => |mut| try mut.promoted.typeToIndex(ty, mut.mod, kind), + .imm => |imm| imm.set.typeToIndex(ty, imm.zcu, imm.mod, kind), + .mut => |mut| try mut.promoted.typeToIndex(ty, mut.zcu, mut.mod, kind), }; } @@ -1300,7 +1308,7 @@ pub const CType = extern union { pub fn freeze(self: @This()) @This() { return switch (self) { .fail, .imm => self, - .mut => |mut| .{ .imm = .{ .set = &mut.promoted.set, .mod = mut.mod } }, + .mut => |mut| .{ .imm = .{ .set = &mut.promoted.set, .zcu = mut.zcu, .mod = mut.mod } }, }; } }; @@ -1354,7 +1362,7 @@ pub const CType = extern union { self.storage.anon.fields[0] = .{ .name = "array", .type = array_idx, - .alignas = AlignAs.abiAlign(ty, lookup.getModule()), + .alignas = AlignAs.abiAlign(ty, lookup.getZcu()), }; self.initAnon(kind, fwd_idx, 1); } else self.init(switch (kind) { @@ -1366,13 +1374,13 @@ pub const CType = extern union { } pub fn initType(self: *@This(), ty: Type, kind: Kind, lookup: Lookup) !void { - const mod = lookup.getModule(); - const ip = &mod.intern_pool; + const zcu = lookup.getZcu(); + const ip = &zcu.intern_pool; self.* = undefined; - if (!ty.isFnOrHasRuntimeBitsIgnoreComptime(mod)) + if (!ty.isFnOrHasRuntimeBitsIgnoreComptime(zcu)) self.init(.void) - else if (ty.isAbiInt(mod)) switch (ty.ip_index) { + else if (ty.isAbiInt(zcu)) switch (ty.ip_index) { .usize_type => self.init(.uintptr_t), .isize_type => self.init(.intptr_t), .c_char_type => self.init(.char), @@ -1384,13 +1392,13 @@ pub const CType = extern union { .c_ulong_type => self.init(.@"unsigned long"), .c_longlong_type => self.init(.@"long long"), .c_ulonglong_type => self.init(.@"unsigned long long"), - else => switch (tagFromIntInfo(ty.intInfo(mod))) { + else => switch (tagFromIntInfo(ty.intInfo(zcu))) { .void => unreachable, else => |t| self.init(t), .array => switch (kind) { .forward, .complete, .global => { - const abi_size = ty.abiSize(mod); - const abi_align = ty.abiAlignment(mod).toByteUnits(0); + const abi_size = ty.abiSize(zcu); + const abi_align = ty.abiAlignment(zcu).toByteUnits(0); self.storage = .{ .seq = .{ .base = .{ .tag = .array }, .data = .{ .len = @divExact(abi_size, abi_align), .elem_type = tagFromIntInfo(.{ @@ -1406,7 +1414,7 @@ pub const CType = extern union { .payload => unreachable, }, }, - } else switch (ty.zigTypeTag(mod)) { + } else switch (ty.zigTypeTag(zcu)) { .Frame => unreachable, .AnyFrame => unreachable, @@ -1436,7 +1444,7 @@ pub const CType = extern union { }), .Pointer => { - const info = ty.ptrInfo(mod); + const info = ty.ptrInfo(zcu); switch (info.flags.size) { .Slice => { if (switch (kind) { @@ -1444,18 +1452,18 @@ pub const CType = extern union { .complete, .parameter, .global => try lookup.typeToIndex(ty, .forward), .payload => unreachable, }) |fwd_idx| { - const ptr_ty = ty.slicePtrFieldType(mod); + const ptr_ty = ty.slicePtrFieldType(zcu); if (try lookup.typeToIndex(ptr_ty, kind)) |ptr_idx| { self.storage = .{ .anon = undefined }; self.storage.anon.fields[0] = .{ .name = "ptr", .type = ptr_idx, - .alignas = AlignAs.abiAlign(ptr_ty, mod), + .alignas = AlignAs.abiAlign(ptr_ty, zcu), }; self.storage.anon.fields[1] = .{ .name = "len", .type = Tag.uintptr_t.toIndex(), - .alignas = AlignAs.abiAlign(Type.usize, mod), + .alignas = AlignAs.abiAlign(Type.usize, zcu), }; self.initAnon(kind, fwd_idx, 2); } else self.init(switch (kind) { @@ -1478,11 +1486,16 @@ pub const CType = extern union { }, }; - const pointee_ty = if (info.packed_offset.host_size > 0 and - info.flags.vector_index == .none) - try mod.intType(.unsigned, info.packed_offset.host_size * 8) + const pointee_ty = if (info.packed_offset.host_size > 0 and info.flags.vector_index == .none) + try zcu.intType(.unsigned, info.packed_offset.host_size * 8) + else if (info.flags.alignment == .none or + info.flags.alignment.compareStrict(.gte, Type.fromInterned(info.child).abiAlignment(zcu))) + Type.fromInterned(info.child) else - Type.fromInterned(info.child); + try zcu.intType(.unsigned, @min( + info.flags.alignment.toByteUnitsOptional().?, + lookup.getModule().resolved_target.result.maxIntAlignment(), + ) * 8); if (try lookup.typeToIndex(pointee_ty, .forward)) |child_idx| { self.storage = .{ .child = .{ @@ -1495,24 +1508,24 @@ pub const CType = extern union { } }, - .Struct, .Union => |zig_ty_tag| if (ty.containerLayout(mod) == .@"packed") { - if (mod.typeToPackedStruct(ty)) |packed_struct| { + .Struct, .Union => |zig_ty_tag| if (ty.containerLayout(zcu) == .@"packed") { + if (zcu.typeToPackedStruct(ty)) |packed_struct| { try self.initType(Type.fromInterned(packed_struct.backingIntType(ip).*), kind, lookup); } else { - const bits: u16 = @intCast(ty.bitSize(mod)); - const int_ty = try mod.intType(.unsigned, bits); + const bits: u16 = @intCast(ty.bitSize(zcu)); + const int_ty = try zcu.intType(.unsigned, bits); try self.initType(int_ty, kind, lookup); } - } else if (ty.isTupleOrAnonStruct(mod)) { + } else if (ty.isTupleOrAnonStruct(zcu)) { if (lookup.isMutable()) { for (0..switch (zig_ty_tag) { - .Struct => ty.structFieldCount(mod), - .Union => mod.typeToUnion(ty).?.field_types.len, + .Struct => ty.structFieldCount(zcu), + .Union => zcu.typeToUnion(ty).?.field_types.len, else => unreachable, }) |field_i| { - const field_ty = ty.structFieldType(field_i, mod); - if ((zig_ty_tag == .Struct and ty.structFieldIsComptime(field_i, mod)) or - !field_ty.hasRuntimeBitsIgnoreComptime(mod)) continue; + const field_ty = ty.structFieldType(field_i, zcu); + if ((zig_ty_tag == .Struct and ty.structFieldIsComptime(field_i, zcu)) or + !field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; _ = try lookup.typeToIndex(field_ty, switch (kind) { .forward, .forward_parameter => .forward, .complete, .parameter => .complete, @@ -1540,14 +1553,14 @@ pub const CType = extern union { .payload => unreachable, }); } else { - const tag_ty = ty.unionTagTypeSafety(mod); + const tag_ty = ty.unionTagTypeSafety(zcu); const is_tagged_union_wrapper = kind != .payload and tag_ty != null; const is_struct = zig_ty_tag == .Struct or is_tagged_union_wrapper; switch (kind) { .forward, .forward_parameter => { self.storage = .{ .fwd = .{ .base = .{ .tag = if (is_struct) .fwd_struct else .fwd_union }, - .data = ty.getOwnerDecl(mod), + .data = ty.getOwnerDecl(zcu), } }; self.value = .{ .cty = initPayload(&self.storage.fwd) }; }, @@ -1562,7 +1575,7 @@ pub const CType = extern union { self.storage.anon.fields[field_count] = .{ .name = "payload", .type = payload_idx.?, - .alignas = AlignAs.unionPayloadAlign(ty, mod), + .alignas = AlignAs.unionPayloadAlign(ty, zcu), }; field_count += 1; } @@ -1570,7 +1583,7 @@ pub const CType = extern union { self.storage.anon.fields[field_count] = .{ .name = "tag", .type = tag_idx.?, - .alignas = AlignAs.abiAlign(tag_ty.?, mod), + .alignas = AlignAs.abiAlign(tag_ty.?, zcu), }; field_count += 1; } @@ -1583,19 +1596,19 @@ pub const CType = extern union { } }; self.value = .{ .cty = initPayload(&self.storage.anon.pl.complete) }; } else self.init(.@"struct"); - } else if (kind == .payload and ty.unionHasAllZeroBitFieldTypes(mod)) { + } else if (kind == .payload and ty.unionHasAllZeroBitFieldTypes(zcu)) { self.init(.void); } else { var is_packed = false; for (0..switch (zig_ty_tag) { - .Struct => ty.structFieldCount(mod), - .Union => mod.typeToUnion(ty).?.field_types.len, + .Struct => ty.structFieldCount(zcu), + .Union => zcu.typeToUnion(ty).?.field_types.len, else => unreachable, }) |field_i| { - const field_ty = ty.structFieldType(field_i, mod); - if (!field_ty.hasRuntimeBitsIgnoreComptime(mod)) continue; + const field_ty = ty.structFieldType(field_i, zcu); + if (!field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; - const field_align = AlignAs.fieldAlign(ty, field_i, mod); + const field_align = AlignAs.fieldAlign(ty, field_i, zcu); if (field_align.abiOrder().compare(.lt)) { is_packed = true; if (!lookup.isMutable()) break; @@ -1634,9 +1647,9 @@ pub const CType = extern union { .Vector => .vector, else => unreachable, }; - if (try lookup.typeToIndex(ty.childType(mod), kind)) |child_idx| { + if (try lookup.typeToIndex(ty.childType(zcu), kind)) |child_idx| { self.storage = .{ .seq = .{ .base = .{ .tag = t }, .data = .{ - .len = ty.arrayLenIncludingSentinel(mod), + .len = ty.arrayLenIncludingSentinel(zcu), .elem_type = child_idx, } } }; self.value = .{ .cty = initPayload(&self.storage.seq) }; @@ -1648,9 +1661,9 @@ pub const CType = extern union { }, .Optional => { - const payload_ty = ty.optionalChild(mod); - if (payload_ty.hasRuntimeBitsIgnoreComptime(mod)) { - if (ty.optionalReprIsPayload(mod)) { + const payload_ty = ty.optionalChild(zcu); + if (payload_ty.hasRuntimeBitsIgnoreComptime(zcu)) { + if (ty.optionalReprIsPayload(zcu)) { try self.initType(payload_ty, kind, lookup); } else if (switch (kind) { .forward, .forward_parameter => @as(Index, undefined), @@ -1667,12 +1680,12 @@ pub const CType = extern union { self.storage.anon.fields[0] = .{ .name = "payload", .type = payload_idx, - .alignas = AlignAs.abiAlign(payload_ty, mod), + .alignas = AlignAs.abiAlign(payload_ty, zcu), }; self.storage.anon.fields[1] = .{ .name = "is_null", .type = Tag.bool.toIndex(), - .alignas = AlignAs.abiAlign(Type.bool, mod), + .alignas = AlignAs.abiAlign(Type.bool, zcu), }; self.initAnon(kind, fwd_idx, 2); } else self.init(switch (kind) { @@ -1690,14 +1703,14 @@ pub const CType = extern union { .complete, .parameter, .global => try lookup.typeToIndex(ty, .forward), .payload => unreachable, }) |fwd_idx| { - const payload_ty = ty.errorUnionPayload(mod); + const payload_ty = ty.errorUnionPayload(zcu); if (try lookup.typeToIndex(payload_ty, switch (kind) { .forward, .forward_parameter => .forward, .complete, .parameter => .complete, .global => .global, .payload => unreachable, })) |payload_idx| { - const error_ty = ty.errorUnionSet(mod); + const error_ty = ty.errorUnionSet(zcu); if (payload_idx == Tag.void.toIndex()) { try self.initType(error_ty, kind, lookup); } else if (try lookup.typeToIndex(error_ty, kind)) |error_idx| { @@ -1705,12 +1718,12 @@ pub const CType = extern union { self.storage.anon.fields[0] = .{ .name = "payload", .type = payload_idx, - .alignas = AlignAs.abiAlign(payload_ty, mod), + .alignas = AlignAs.abiAlign(payload_ty, zcu), }; self.storage.anon.fields[1] = .{ .name = "error", .type = error_idx, - .alignas = AlignAs.abiAlign(error_ty, mod), + .alignas = AlignAs.abiAlign(error_ty, zcu), }; self.initAnon(kind, fwd_idx, 2); } else self.init(switch (kind) { @@ -1729,7 +1742,7 @@ pub const CType = extern union { .Opaque => self.init(.void), .Fn => { - const info = mod.typeToFunc(ty).?; + const info = zcu.typeToFunc(ty).?; if (!info.is_generic) { if (lookup.isMutable()) { const param_kind: Kind = switch (kind) { @@ -1739,7 +1752,7 @@ pub const CType = extern union { }; _ = try lookup.typeToIndex(Type.fromInterned(info.return_type), param_kind); for (info.param_types.get(ip)) |param_type| { - if (!Type.fromInterned(param_type).hasRuntimeBitsIgnoreComptime(mod)) continue; + if (!Type.fromInterned(param_type).hasRuntimeBitsIgnoreComptime(zcu)) continue; _ = try lookup.typeToIndex(Type.fromInterned(param_type), param_kind); } } @@ -1906,20 +1919,21 @@ pub const CType = extern union { } } - fn createFromType(store: *Store.Promoted, ty: Type, mod: *Module, kind: Kind) !CType { + fn createFromType(store: *Store.Promoted, ty: Type, zcu: *Zcu, mod: *Module, kind: Kind) !CType { var convert: Convert = undefined; - try convert.initType(ty, kind, .{ .imm = .{ .set = &store.set, .mod = mod } }); - return createFromConvert(store, ty, mod, kind, &convert); + try convert.initType(ty, kind, .{ .imm = .{ .set = &store.set, .zcu = zcu } }); + return createFromConvert(store, ty, zcu, mod, kind, &convert); } fn createFromConvert( store: *Store.Promoted, ty: Type, + zcu: *Zcu, mod: *Module, kind: Kind, convert: Convert, ) !CType { - const ip = &mod.intern_pool; + const ip = &zcu.intern_pool; const arena = store.arena.allocator(); switch (convert.value) { .cty => |c| return c.copy(arena), @@ -1937,18 +1951,18 @@ pub const CType = extern union { .packed_struct, .packed_union, => { - const zig_ty_tag = ty.zigTypeTag(mod); + const zig_ty_tag = ty.zigTypeTag(zcu); const fields_len = switch (zig_ty_tag) { - .Struct => ty.structFieldCount(mod), - .Union => mod.typeToUnion(ty).?.field_types.len, + .Struct => ty.structFieldCount(zcu), + .Union => zcu.typeToUnion(ty).?.field_types.len, else => unreachable, }; var c_fields_len: usize = 0; for (0..fields_len) |field_i| { - const field_ty = ty.structFieldType(field_i, mod); - if ((zig_ty_tag == .Struct and ty.structFieldIsComptime(field_i, mod)) or - !field_ty.hasRuntimeBitsIgnoreComptime(mod)) continue; + const field_ty = ty.structFieldType(field_i, zcu); + if ((zig_ty_tag == .Struct and ty.structFieldIsComptime(field_i, zcu)) or + !field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; c_fields_len += 1; } @@ -1956,26 +1970,26 @@ pub const CType = extern union { var c_field_i: usize = 0; for (0..fields_len) |field_i_usize| { const field_i: u32 = @intCast(field_i_usize); - const field_ty = ty.structFieldType(field_i, mod); - if ((zig_ty_tag == .Struct and ty.structFieldIsComptime(field_i, mod)) or - !field_ty.hasRuntimeBitsIgnoreComptime(mod)) continue; + const field_ty = ty.structFieldType(field_i, zcu); + if ((zig_ty_tag == .Struct and ty.structFieldIsComptime(field_i, zcu)) or + !field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; defer c_field_i += 1; fields_pl[c_field_i] = .{ - .name = try if (ty.isSimpleTuple(mod)) + .name = try if (ty.isSimpleTuple(zcu)) std.fmt.allocPrintZ(arena, "f{}", .{field_i}) else arena.dupeZ(u8, ip.stringToSlice(switch (zig_ty_tag) { - .Struct => ty.legacyStructFieldName(field_i, mod), + .Struct => ty.legacyStructFieldName(field_i, zcu), .Union => ip.loadUnionType(ty.toIntern()).loadTagType(ip).names.get(ip)[field_i], else => unreachable, })), - .type = store.set.typeToIndex(field_ty, mod, switch (kind) { + .type = store.set.typeToIndex(field_ty, zcu, mod, switch (kind) { .forward, .forward_parameter => .forward, .complete, .parameter, .payload => .complete, .global => .global, }).?, - .alignas = AlignAs.fieldAlign(ty, field_i, mod), + .alignas = AlignAs.fieldAlign(ty, field_i, zcu), }; } @@ -1996,8 +2010,8 @@ pub const CType = extern union { const unnamed_pl = try arena.create(Payload.Unnamed); unnamed_pl.* = .{ .base = .{ .tag = t }, .data = .{ .fields = fields_pl, - .owner_decl = ty.getOwnerDecl(mod), - .id = if (ty.unionTagTypeSafety(mod)) |_| 0 else unreachable, + .owner_decl = ty.getOwnerDecl(zcu), + .id = if (ty.unionTagTypeSafety(zcu)) |_| 0 else unreachable, } }; return initPayload(unnamed_pl); }, @@ -2012,7 +2026,7 @@ pub const CType = extern union { const struct_pl = try arena.create(Payload.Aggregate); struct_pl.* = .{ .base = .{ .tag = t }, .data = .{ .fields = fields_pl, - .fwd_decl = store.set.typeToIndex(ty, mod, .forward).?, + .fwd_decl = store.set.typeToIndex(ty, zcu, mod, .forward).?, } }; return initPayload(struct_pl); }, @@ -2024,7 +2038,7 @@ pub const CType = extern union { .function, .varargs_function, => { - const info = mod.typeToFunc(ty).?; + const info = zcu.typeToFunc(ty).?; assert(!info.is_generic); const param_kind: Kind = switch (kind) { .forward, .forward_parameter => .forward_parameter, @@ -2034,21 +2048,21 @@ pub const CType = extern union { var c_params_len: usize = 0; for (info.param_types.get(ip)) |param_type| { - if (!Type.fromInterned(param_type).hasRuntimeBitsIgnoreComptime(mod)) continue; + if (!Type.fromInterned(param_type).hasRuntimeBitsIgnoreComptime(zcu)) continue; c_params_len += 1; } const params_pl = try arena.alloc(Index, c_params_len); var c_param_i: usize = 0; for (info.param_types.get(ip)) |param_type| { - if (!Type.fromInterned(param_type).hasRuntimeBitsIgnoreComptime(mod)) continue; - params_pl[c_param_i] = store.set.typeToIndex(Type.fromInterned(param_type), mod, param_kind).?; + if (!Type.fromInterned(param_type).hasRuntimeBitsIgnoreComptime(zcu)) continue; + params_pl[c_param_i] = store.set.typeToIndex(Type.fromInterned(param_type), zcu, mod, param_kind).?; c_param_i += 1; } const fn_pl = try arena.create(Payload.Function); fn_pl.* = .{ .base = .{ .tag = t }, .data = .{ - .return_type = store.set.typeToIndex(Type.fromInterned(info.return_type), mod, param_kind).?, + .return_type = store.set.typeToIndex(Type.fromInterned(info.return_type), zcu, mod, param_kind).?, .param_types = params_pl, } }; return initPayload(fn_pl); @@ -2075,8 +2089,8 @@ pub const CType = extern union { } pub fn eql(self: @This(), ty: Type, cty: CType) bool { - const mod = self.lookup.getModule(); - const ip = &mod.intern_pool; + const zcu = self.lookup.getZcu(); + const ip = &zcu.intern_pool; switch (self.convert.value) { .cty => |c| return c.eql(cty), .tag => |t| { @@ -2086,24 +2100,24 @@ pub const CType = extern union { .fwd_anon_struct, .fwd_anon_union, => { - if (!ty.isTupleOrAnonStruct(mod)) return false; + if (!ty.isTupleOrAnonStruct(zcu)) return false; var name_buf: [ std.fmt.count("f{}", .{std.math.maxInt(usize)}) ]u8 = undefined; const c_fields = cty.cast(Payload.Fields).?.data; - const zig_ty_tag = ty.zigTypeTag(mod); + const zig_ty_tag = ty.zigTypeTag(zcu); var c_field_i: usize = 0; for (0..switch (zig_ty_tag) { - .Struct => ty.structFieldCount(mod), - .Union => mod.typeToUnion(ty).?.field_types.len, + .Struct => ty.structFieldCount(zcu), + .Union => zcu.typeToUnion(ty).?.field_types.len, else => unreachable, }) |field_i_usize| { const field_i: u32 = @intCast(field_i_usize); - const field_ty = ty.structFieldType(field_i, mod); - if ((zig_ty_tag == .Struct and ty.structFieldIsComptime(field_i, mod)) or - !field_ty.hasRuntimeBitsIgnoreComptime(mod)) continue; + const field_ty = ty.structFieldType(field_i, zcu); + if ((zig_ty_tag == .Struct and ty.structFieldIsComptime(field_i, zcu)) or + !field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; defer c_field_i += 1; const c_field = &c_fields[c_field_i]; @@ -2115,16 +2129,16 @@ pub const CType = extern union { .payload => unreachable, }) or !mem.eql( u8, - if (ty.isSimpleTuple(mod)) + if (ty.isSimpleTuple(zcu)) std.fmt.bufPrintZ(&name_buf, "f{}", .{field_i}) catch unreachable else ip.stringToSlice(switch (zig_ty_tag) { - .Struct => ty.legacyStructFieldName(field_i, mod), + .Struct => ty.legacyStructFieldName(field_i, zcu), .Union => ip.loadUnionType(ty.toIntern()).loadTagType(ip).names.get(ip)[field_i], else => unreachable, }), mem.span(c_field.name), - ) or AlignAs.fieldAlign(ty, field_i, mod).@"align" != + ) or AlignAs.fieldAlign(ty, field_i, zcu).@"align" != c_field.alignas.@"align") return false; } return true; @@ -2136,9 +2150,9 @@ pub const CType = extern union { .packed_unnamed_union, => switch (self.kind) { .forward, .forward_parameter, .complete, .parameter, .global => unreachable, - .payload => if (ty.unionTagTypeSafety(mod)) |_| { + .payload => if (ty.unionTagTypeSafety(zcu)) |_| { const data = cty.cast(Payload.Unnamed).?.data; - return ty.getOwnerDecl(mod) == data.owner_decl and data.id == 0; + return ty.getOwnerDecl(zcu) == data.owner_decl and data.id == 0; } else unreachable, }, @@ -2157,9 +2171,9 @@ pub const CType = extern union { .function, .varargs_function, => { - if (ty.zigTypeTag(mod) != .Fn) return false; + if (ty.zigTypeTag(zcu) != .Fn) return false; - const info = mod.typeToFunc(ty).?; + const info = zcu.typeToFunc(ty).?; assert(!info.is_generic); const data = cty.cast(Payload.Function).?.data; const param_kind: Kind = switch (self.kind) { @@ -2173,7 +2187,7 @@ pub const CType = extern union { var c_param_i: usize = 0; for (info.param_types.get(ip)) |param_type| { - if (!Type.fromInterned(param_type).hasRuntimeBitsIgnoreComptime(mod)) continue; + if (!Type.fromInterned(param_type).hasRuntimeBitsIgnoreComptime(zcu)) continue; if (c_param_i >= data.param_types.len) return false; const param_cty = data.param_types[c_param_i]; @@ -2213,8 +2227,8 @@ pub const CType = extern union { .tag => |t| { autoHash(hasher, t); - const mod = self.lookup.getModule(); - const ip = &mod.intern_pool; + const zcu = self.lookup.getZcu(); + const ip = &zcu.intern_pool; switch (t) { .fwd_anon_struct, .fwd_anon_union, @@ -2223,16 +2237,16 @@ pub const CType = extern union { std.fmt.count("f{}", .{std.math.maxInt(usize)}) ]u8 = undefined; - const zig_ty_tag = ty.zigTypeTag(mod); - for (0..switch (ty.zigTypeTag(mod)) { - .Struct => ty.structFieldCount(mod), - .Union => mod.typeToUnion(ty).?.field_types.len, + const zig_ty_tag = ty.zigTypeTag(zcu); + for (0..switch (ty.zigTypeTag(zcu)) { + .Struct => ty.structFieldCount(zcu), + .Union => zcu.typeToUnion(ty).?.field_types.len, else => unreachable, }) |field_i_usize| { const field_i: u32 = @intCast(field_i_usize); - const field_ty = ty.structFieldType(field_i, mod); - if ((zig_ty_tag == .Struct and ty.structFieldIsComptime(field_i, mod)) or - !field_ty.hasRuntimeBitsIgnoreComptime(mod)) continue; + const field_ty = ty.structFieldType(field_i, zcu); + if ((zig_ty_tag == .Struct and ty.structFieldIsComptime(field_i, zcu)) or + !field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; self.updateHasherRecurse(hasher, field_ty, switch (self.kind) { .forward, .forward_parameter => .forward, @@ -2240,15 +2254,15 @@ pub const CType = extern union { .global => .global, .payload => unreachable, }); - hasher.update(if (ty.isSimpleTuple(mod)) + hasher.update(if (ty.isSimpleTuple(zcu)) std.fmt.bufPrint(&name_buf, "f{}", .{field_i}) catch unreachable else - mod.intern_pool.stringToSlice(switch (zig_ty_tag) { - .Struct => ty.legacyStructFieldName(field_i, mod), + zcu.intern_pool.stringToSlice(switch (zig_ty_tag) { + .Struct => ty.legacyStructFieldName(field_i, zcu), .Union => ip.loadUnionType(ty.toIntern()).loadTagType(ip).names.get(ip)[field_i], else => unreachable, })); - autoHash(hasher, AlignAs.fieldAlign(ty, field_i, mod).@"align"); + autoHash(hasher, AlignAs.fieldAlign(ty, field_i, zcu).@"align"); } }, @@ -2258,8 +2272,8 @@ pub const CType = extern union { .packed_unnamed_union, => switch (self.kind) { .forward, .forward_parameter, .complete, .parameter, .global => unreachable, - .payload => if (ty.unionTagTypeSafety(mod)) |_| { - autoHash(hasher, ty.getOwnerDecl(mod)); + .payload => if (ty.unionTagTypeSafety(zcu)) |_| { + autoHash(hasher, ty.getOwnerDecl(zcu)); autoHash(hasher, @as(u32, 0)); } else unreachable, }, @@ -2275,7 +2289,7 @@ pub const CType = extern union { .function, .varargs_function, => { - const info = mod.typeToFunc(ty).?; + const info = zcu.typeToFunc(ty).?; assert(!info.is_generic); const param_kind: Kind = switch (self.kind) { .forward, .forward_parameter => .forward_parameter, @@ -2285,7 +2299,7 @@ pub const CType = extern union { self.updateHasherRecurse(hasher, Type.fromInterned(info.return_type), param_kind); for (info.param_types.get(ip)) |param_type| { - if (!Type.fromInterned(param_type).hasRuntimeBitsIgnoreComptime(mod)) continue; + if (!Type.fromInterned(param_type).hasRuntimeBitsIgnoreComptime(zcu)) continue; self.updateHasherRecurse(hasher, Type.fromInterned(param_type), param_kind); } }, diff --git a/src/link/C.zig b/src/link/C.zig index 73049b40cd13..d717903ff317 100644 --- a/src/link/C.zig +++ b/src/link/C.zig @@ -6,7 +6,8 @@ const fs = std.fs; const C = @This(); const build_options = @import("build_options"); -const Module = @import("../Module.zig"); +const Zcu = @import("../Module.zig"); +const Module = @import("../Package/Module.zig"); const InternPool = @import("../InternPool.zig"); const Alignment = InternPool.Alignment; const Compilation = @import("../Compilation.zig"); @@ -177,16 +178,16 @@ pub fn freeDecl(self: *C, decl_index: InternPool.DeclIndex) void { pub fn updateFunc( self: *C, - module: *Module, + zcu: *Zcu, func_index: InternPool.Index, air: Air, liveness: Liveness, ) !void { const gpa = self.base.comp.gpa; - const func = module.funcInfo(func_index); + const func = zcu.funcInfo(func_index); const decl_index = func.owner_decl; - const decl = module.declPtr(decl_index); + const decl = zcu.declPtr(decl_index); const gop = try self.decl_table.getOrPut(gpa, decl_index); if (!gop.found_existing) gop.value_ptr.* = .{}; const ctypes = &gop.value_ptr.ctypes; @@ -206,10 +207,11 @@ pub fn updateFunc( .object = .{ .dg = .{ .gpa = gpa, - .module = module, + .zcu = zcu, + .mod = zcu.namespacePtr(decl.src_namespace).file_scope.mod, .error_msg = null, .pass = .{ .decl = decl_index }, - .is_naked_fn = decl.typeOf(module).fnCallingConvention(module) == .Naked, + .is_naked_fn = decl.typeOf(zcu).fnCallingConvention(zcu) == .Naked, .fwd_decl = fwd_decl.toManaged(gpa), .ctypes = ctypes.*, .anon_decl_deps = self.anon_decls, @@ -232,7 +234,7 @@ pub fn updateFunc( codegen.genFunc(&function) catch |err| switch (err) { error.AnalysisFail => { - try module.failed_decls.put(gpa, decl_index, function.object.dg.error_msg.?); + try zcu.failed_decls.put(gpa, decl_index, function.object.dg.error_msg.?); return; }, else => |e| return e, @@ -249,7 +251,7 @@ pub fn updateFunc( gop.value_ptr.fwd_decl = try self.addString(function.object.dg.fwd_decl.items); } -fn updateAnonDecl(self: *C, module: *Module, i: usize) !void { +fn updateAnonDecl(self: *C, zcu: *Zcu, i: usize) !void { const gpa = self.base.comp.gpa; const anon_decl = self.anon_decls.keys()[i]; @@ -261,7 +263,8 @@ fn updateAnonDecl(self: *C, module: *Module, i: usize) !void { var object: codegen.Object = .{ .dg = .{ .gpa = gpa, - .module = module, + .zcu = zcu, + .mod = zcu.root_mod, .error_msg = null, .pass = .{ .anon = anon_decl }, .is_naked_fn = false, @@ -283,12 +286,12 @@ fn updateAnonDecl(self: *C, module: *Module, i: usize) !void { code.* = object.code.moveToUnmanaged(); } - const c_value: codegen.CValue = .{ .constant = anon_decl }; + const c_value: codegen.CValue = .{ .constant = Value.fromInterned(anon_decl) }; const alignment: Alignment = self.aligned_anon_decls.get(anon_decl) orelse .none; - codegen.genDeclValue(&object, Value.fromInterned(anon_decl), false, c_value, alignment, .none) catch |err| switch (err) { + codegen.genDeclValue(&object, c_value.constant, false, c_value, alignment, .none) catch |err| switch (err) { error.AnalysisFail => { @panic("TODO: C backend AnalysisFail on anonymous decl"); - //try module.failed_decls.put(gpa, decl_index, object.dg.error_msg.?); + //try zcu.failed_decls.put(gpa, decl_index, object.dg.error_msg.?); //return; }, else => |e| return e, @@ -304,12 +307,13 @@ fn updateAnonDecl(self: *C, module: *Module, i: usize) !void { }; } -pub fn updateDecl(self: *C, module: *Module, decl_index: InternPool.DeclIndex) !void { +pub fn updateDecl(self: *C, zcu: *Zcu, decl_index: InternPool.DeclIndex) !void { const tracy = trace(@src()); defer tracy.end(); const gpa = self.base.comp.gpa; + const decl = zcu.declPtr(decl_index); const gop = try self.decl_table.getOrPut(gpa, decl_index); if (!gop.found_existing) { gop.value_ptr.* = .{}; @@ -324,7 +328,8 @@ pub fn updateDecl(self: *C, module: *Module, decl_index: InternPool.DeclIndex) ! var object: codegen.Object = .{ .dg = .{ .gpa = gpa, - .module = module, + .zcu = zcu, + .mod = zcu.namespacePtr(decl.src_namespace).file_scope.mod, .error_msg = null, .pass = .{ .decl = decl_index }, .is_naked_fn = false, @@ -347,7 +352,7 @@ pub fn updateDecl(self: *C, module: *Module, decl_index: InternPool.DeclIndex) ! codegen.genDecl(&object) catch |err| switch (err) { error.AnalysisFail => { - try module.failed_decls.put(gpa, decl_index, object.dg.error_msg.?); + try zcu.failed_decls.put(gpa, decl_index, object.dg.error_msg.?); return; }, else => |e| return e, @@ -362,11 +367,11 @@ pub fn updateDecl(self: *C, module: *Module, decl_index: InternPool.DeclIndex) ! gop.value_ptr.fwd_decl = try self.addString(object.dg.fwd_decl.items); } -pub fn updateDeclLineNumber(self: *C, module: *Module, decl_index: InternPool.DeclIndex) !void { +pub fn updateDeclLineNumber(self: *C, zcu: *Zcu, decl_index: InternPool.DeclIndex) !void { // The C backend does not have the ability to fix line numbers without re-generating // the entire Decl. _ = self; - _ = module; + _ = zcu; _ = decl_index; } @@ -399,12 +404,12 @@ pub fn flushModule(self: *C, arena: Allocator, prog_node: *std.Progress.Node) !v const comp = self.base.comp; const gpa = comp.gpa; - const module = self.base.comp.module.?; + const zcu = self.base.comp.module.?; { var i: usize = 0; while (i < self.anon_decls.count()) : (i += 1) { - try updateAnonDecl(self, module, i); + try updateAnonDecl(self, zcu, i); } } @@ -414,7 +419,7 @@ pub fn flushModule(self: *C, arena: Allocator, prog_node: *std.Progress.Node) !v var f: Flush = .{}; defer f.deinit(gpa); - const abi_defines = try self.abiDefines(module.getTarget()); + const abi_defines = try self.abiDefines(zcu.getTarget()); defer abi_defines.deinit(); // Covers defines, zig.h, ctypes, asm, lazy fwd. @@ -429,7 +434,7 @@ pub fn flushModule(self: *C, arena: Allocator, prog_node: *std.Progress.Node) !v { var asm_buf = f.asm_buf.toManaged(gpa); defer f.asm_buf = asm_buf.moveToUnmanaged(); - try codegen.genGlobalAsm(module, asm_buf.writer()); + try codegen.genGlobalAsm(zcu, asm_buf.writer()); f.appendBufAssumeCapacity(asm_buf.items); } @@ -438,7 +443,7 @@ pub fn flushModule(self: *C, arena: Allocator, prog_node: *std.Progress.Node) !v self.lazy_fwd_decl_buf.clearRetainingCapacity(); self.lazy_code_buf.clearRetainingCapacity(); - try self.flushErrDecls(&f.lazy_ctypes); + try self.flushErrDecls(zcu, &f.lazy_ctypes); // Unlike other backends, the .c code we are emitting has order-dependent decls. // `CType`s, forward decls, and non-functions first. @@ -446,19 +451,20 @@ pub fn flushModule(self: *C, arena: Allocator, prog_node: *std.Progress.Node) !v { var export_names: std.AutoHashMapUnmanaged(InternPool.NullTerminatedString, void) = .{}; defer export_names.deinit(gpa); - try export_names.ensureTotalCapacity(gpa, @intCast(module.decl_exports.entries.len)); - for (module.decl_exports.values()) |exports| for (exports.items) |@"export"| + try export_names.ensureTotalCapacity(gpa, @intCast(zcu.decl_exports.entries.len)); + for (zcu.decl_exports.values()) |exports| for (exports.items) |@"export"| try export_names.put(gpa, @"export".opts.name, {}); for (self.anon_decls.values()) |*decl_block| { - try self.flushDeclBlock(&f, decl_block, export_names, .none); + try self.flushDeclBlock(zcu, zcu.root_mod, &f, decl_block, export_names, .none); } for (self.decl_table.keys(), self.decl_table.values()) |decl_index, *decl_block| { - assert(module.declPtr(decl_index).has_tv); - const decl = module.declPtr(decl_index); - const extern_symbol_name = if (decl.isExtern(module)) decl.name.toOptional() else .none; - try self.flushDeclBlock(&f, decl_block, export_names, extern_symbol_name); + const decl = zcu.declPtr(decl_index); + assert(decl.has_tv); + const extern_symbol_name = if (decl.isExtern(zcu)) decl.name.toOptional() else .none; + const mod = zcu.namespacePtr(decl.src_namespace).file_scope.mod; + try self.flushDeclBlock(zcu, mod, &f, decl_block, export_names, extern_symbol_name); } } @@ -466,14 +472,14 @@ pub fn flushModule(self: *C, arena: Allocator, prog_node: *std.Progress.Node) !v // We need to flush lazy ctypes after flushing all decls but before flushing any decl ctypes. // This ensures that every lazy CType.Index exactly matches the global CType.Index. assert(f.ctypes.count() == 0); - try self.flushCTypes(&f, .flush, f.lazy_ctypes); + try self.flushCTypes(zcu, &f, .flush, f.lazy_ctypes); for (self.anon_decls.keys(), self.anon_decls.values()) |anon_decl, decl_block| { - try self.flushCTypes(&f, .{ .anon = anon_decl }, decl_block.ctypes); + try self.flushCTypes(zcu, &f, .{ .anon = anon_decl }, decl_block.ctypes); } for (self.decl_table.keys(), self.decl_table.values()) |decl_index, decl_block| { - try self.flushCTypes(&f, .{ .decl = decl_index }, decl_block.ctypes); + try self.flushCTypes(zcu, &f, .{ .decl = decl_index }, decl_block.ctypes); } } @@ -543,12 +549,12 @@ const FlushDeclError = error{ fn flushCTypes( self: *C, + zcu: *Zcu, f: *Flush, pass: codegen.DeclGen.Pass, decl_ctypes: codegen.CType.Store, ) FlushDeclError!void { const gpa = self.base.comp.gpa; - const mod = self.base.comp.module.?; const decl_ctypes_len = decl_ctypes.count(); f.ctypes_map.clearRetainingCapacity(); @@ -615,7 +621,7 @@ fn flushCTypes( assert(decl_cty.hash(decl_ctypes.set) == global_cty.hash(global_ctypes.set)); } try codegen.genTypeDecl( - mod, + zcu, writer, global_ctypes.set, global_idx, @@ -627,7 +633,7 @@ fn flushCTypes( } } -fn flushErrDecls(self: *C, ctypes: *codegen.CType.Store) FlushDeclError!void { +fn flushErrDecls(self: *C, zcu: *Zcu, ctypes: *codegen.CType.Store) FlushDeclError!void { const gpa = self.base.comp.gpa; const fwd_decl = &self.lazy_fwd_decl_buf; @@ -636,7 +642,8 @@ fn flushErrDecls(self: *C, ctypes: *codegen.CType.Store) FlushDeclError!void { var object = codegen.Object{ .dg = .{ .gpa = gpa, - .module = self.base.comp.module.?, + .zcu = zcu, + .mod = zcu.root_mod, .error_msg = null, .pass = .flush, .is_naked_fn = false, @@ -667,6 +674,8 @@ fn flushErrDecls(self: *C, ctypes: *codegen.CType.Store) FlushDeclError!void { fn flushLazyFn( self: *C, + zcu: *Zcu, + mod: *Module, ctypes: *codegen.CType.Store, lazy_fn: codegen.LazyFnMap.Entry, ) FlushDeclError!void { @@ -678,7 +687,8 @@ fn flushLazyFn( var object = codegen.Object{ .dg = .{ .gpa = gpa, - .module = self.base.comp.module.?, + .zcu = zcu, + .mod = mod, .error_msg = null, .pass = .flush, .is_naked_fn = false, @@ -709,7 +719,13 @@ fn flushLazyFn( ctypes.* = object.dg.ctypes.move(); } -fn flushLazyFns(self: *C, f: *Flush, lazy_fns: codegen.LazyFnMap) FlushDeclError!void { +fn flushLazyFns( + self: *C, + zcu: *Zcu, + mod: *Module, + f: *Flush, + lazy_fns: codegen.LazyFnMap, +) FlushDeclError!void { const gpa = self.base.comp.gpa; try f.lazy_fns.ensureUnusedCapacity(gpa, @intCast(lazy_fns.count())); @@ -718,19 +734,21 @@ fn flushLazyFns(self: *C, f: *Flush, lazy_fns: codegen.LazyFnMap) FlushDeclError const gop = f.lazy_fns.getOrPutAssumeCapacity(entry.key_ptr.*); if (gop.found_existing) continue; gop.value_ptr.* = {}; - try self.flushLazyFn(&f.lazy_ctypes, entry); + try self.flushLazyFn(zcu, mod, &f.lazy_ctypes, entry); } } fn flushDeclBlock( self: *C, + zcu: *Zcu, + mod: *Module, f: *Flush, decl_block: *DeclBlock, export_names: std.AutoHashMapUnmanaged(InternPool.NullTerminatedString, void), extern_symbol_name: InternPool.OptionalNullTerminatedString, ) FlushDeclError!void { const gpa = self.base.comp.gpa; - try self.flushLazyFns(f, decl_block.lazy_fns); + try self.flushLazyFns(zcu, mod, f, decl_block.lazy_fns); try f.all_buffers.ensureUnusedCapacity(gpa, 1); fwd_decl: { if (extern_symbol_name.unwrap()) |name| { @@ -740,15 +758,15 @@ fn flushDeclBlock( } } -pub fn flushEmitH(module: *Module) !void { +pub fn flushEmitH(zcu: *Zcu) !void { const tracy = trace(@src()); defer tracy.end(); - const emit_h = module.emit_h orelse return; + const emit_h = zcu.emit_h orelse return; // We collect a list of buffers to write, and write them all at once with pwritev 😎 const num_buffers = emit_h.decl_table.count() + 1; - var all_buffers = try std.ArrayList(std.posix.iovec_const).initCapacity(module.gpa, num_buffers); + var all_buffers = try std.ArrayList(std.posix.iovec_const).initCapacity(zcu.gpa, num_buffers); defer all_buffers.deinit(); var file_size: u64 = zig_h.len; @@ -771,7 +789,7 @@ pub fn flushEmitH(module: *Module) !void { } } - const directory = emit_h.loc.directory orelse module.comp.local_cache_directory; + const directory = emit_h.loc.directory orelse zcu.comp.local_cache_directory; const file = try directory.handle.createFile(emit_h.loc.basename, .{ // We set the end position explicitly below; by not truncating the file, we possibly // make it easier on the file system by doing 1 reallocation instead of two. @@ -785,12 +803,12 @@ pub fn flushEmitH(module: *Module) !void { pub fn updateExports( self: *C, - module: *Module, - exported: Module.Exported, - exports: []const *Module.Export, + zcu: *Zcu, + exported: Zcu.Exported, + exports: []const *Zcu.Export, ) !void { _ = exports; _ = exported; - _ = module; + _ = zcu; _ = self; } From 5a41704f7ec2c472897f955ecfe1feafa697ff68 Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Thu, 28 Mar 2024 20:41:58 -0400 Subject: [PATCH 2/9] cbe: rewrite `CType` Closes #14904 --- CMakeLists.txt | 2 +- build.zig | 4 +- lib/std/c/darwin.zig | 4 +- lib/std/c/dragonfly.zig | 6 +- lib/std/c/freebsd.zig | 4 +- lib/std/c/haiku.zig | 2 +- lib/std/c/netbsd.zig | 4 +- lib/std/c/openbsd.zig | 4 +- lib/std/c/solaris.zig | 4 +- lib/std/debug.zig | 2 +- lib/std/os/emscripten.zig | 4 +- lib/std/os/linux.zig | 6 +- lib/std/os/plan9.zig | 4 +- lib/std/start.zig | 2 +- src/Compilation.zig | 13 +- src/InternPool.zig | 11 +- src/Module.zig | 2 +- src/Sema.zig | 28 +- src/Value.zig | 16 +- src/arch/wasm/CodeGen.zig | 30 +- src/arch/x86_64/CodeGen.zig | 6 +- src/codegen.zig | 6 +- src/codegen/c.zig | 1909 ++++++++++++------------ src/codegen/c/Type.zig | 2472 ++++++++++++++++++++++++++++++++ src/codegen/c/type.zig | 2332 ------------------------------ src/codegen/llvm.zig | 48 +- src/crash_report.zig | 2 +- src/link/C.zig | 221 ++- src/link/Coff.zig | 6 +- src/link/Elf.zig | 2 +- src/link/Elf/Atom.zig | 2 +- src/link/Elf/ZigObject.zig | 2 +- src/link/Elf/relocatable.zig | 2 +- src/link/Elf/thunks.zig | 2 +- src/link/MachO.zig | 2 +- src/link/MachO/relocatable.zig | 2 +- src/link/Wasm.zig | 2 +- src/main.zig | 6 +- src/print_value.zig | 2 +- src/target.zig | 2 +- src/type.zig | 52 +- test/behavior/align.zig | 1 - test/behavior/vector.zig | 4 + test/tests.zig | 17 +- tools/lldb_pretty_printers.py | 8 +- 45 files changed, 3658 insertions(+), 3604 deletions(-) create mode 100644 src/codegen/c/Type.zig delete mode 100644 src/codegen/c/type.zig diff --git a/CMakeLists.txt b/CMakeLists.txt index 081872fbdfbc..c14a9383534f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -564,7 +564,7 @@ set(ZIG_STAGE2_SOURCES "${CMAKE_SOURCE_DIR}/src/clang_options_data.zig" "${CMAKE_SOURCE_DIR}/src/codegen.zig" "${CMAKE_SOURCE_DIR}/src/codegen/c.zig" - "${CMAKE_SOURCE_DIR}/src/codegen/c/type.zig" + "${CMAKE_SOURCE_DIR}/src/codegen/c/Type.zig" "${CMAKE_SOURCE_DIR}/src/codegen/llvm.zig" "${CMAKE_SOURCE_DIR}/src/codegen/llvm/bindings.zig" "${CMAKE_SOURCE_DIR}/src/glibc.zig" diff --git a/build.zig b/build.zig index f661bd6887be..36bb1e0f73e6 100644 --- a/build.zig +++ b/build.zig @@ -16,9 +16,7 @@ pub fn build(b: *std.Build) !void { const only_c = b.option(bool, "only-c", "Translate the Zig compiler to C code, with only the C backend enabled") orelse false; const target = t: { var default_target: std.zig.CrossTarget = .{}; - if (only_c) { - default_target.ofmt = .c; - } + default_target.ofmt = b.option(std.Target.ObjectFormat, "ofmt", "Object format to target") orelse if (only_c) .c else null; break :t b.standardTargetOptions(.{ .default_target = default_target }); }; diff --git a/lib/std/c/darwin.zig b/lib/std/c/darwin.zig index 9827ef649365..dfc0fd56ea00 100644 --- a/lib/std/c/darwin.zig +++ b/lib/std/c/darwin.zig @@ -1150,8 +1150,8 @@ pub const siginfo_t = extern struct { /// Renamed from `sigaction` to `Sigaction` to avoid conflict with function name. pub const Sigaction = extern struct { - pub const handler_fn = *align(1) const fn (c_int) callconv(.C) void; - pub const sigaction_fn = *const fn (c_int, *const siginfo_t, ?*anyopaque) callconv(.C) void; + pub const handler_fn = *align(1) const fn (i32) callconv(.C) void; + pub const sigaction_fn = *const fn (i32, *const siginfo_t, ?*anyopaque) callconv(.C) void; handler: extern union { handler: ?handler_fn, diff --git a/lib/std/c/dragonfly.zig b/lib/std/c/dragonfly.zig index 0026549202a8..cc72aaa072eb 100644 --- a/lib/std/c/dragonfly.zig +++ b/lib/std/c/dragonfly.zig @@ -690,8 +690,8 @@ pub const empty_sigset = sigset_t{ .__bits = [_]c_uint{0} ** _SIG_WORDS }; pub const sig_atomic_t = c_int; pub const Sigaction = extern struct { - pub const handler_fn = *align(1) const fn (c_int) callconv(.C) void; - pub const sigaction_fn = *const fn (c_int, *const siginfo_t, ?*anyopaque) callconv(.C) void; + pub const handler_fn = *align(1) const fn (i32) callconv(.C) void; + pub const sigaction_fn = *const fn (i32, *const siginfo_t, ?*anyopaque) callconv(.C) void; /// signal handler handler: extern union { @@ -702,7 +702,7 @@ pub const Sigaction = extern struct { mask: sigset_t, }; -pub const sig_t = *const fn (c_int) callconv(.C) void; +pub const sig_t = *const fn (i32) callconv(.C) void; pub const SOCK = struct { pub const STREAM = 1; diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index 5e2b6bd3155a..a60f5de525ee 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -1171,8 +1171,8 @@ const NSIG = 32; /// Renamed from `sigaction` to `Sigaction` to avoid conflict with the syscall. pub const Sigaction = extern struct { - pub const handler_fn = *align(1) const fn (c_int) callconv(.C) void; - pub const sigaction_fn = *const fn (c_int, *const siginfo_t, ?*anyopaque) callconv(.C) void; + pub const handler_fn = *align(1) const fn (i32) callconv(.C) void; + pub const sigaction_fn = *const fn (i32, *const siginfo_t, ?*anyopaque) callconv(.C) void; /// signal handler handler: extern union { diff --git a/lib/std/c/haiku.zig b/lib/std/c/haiku.zig index f4c928c79c48..d75dd3bf0066 100644 --- a/lib/std/c/haiku.zig +++ b/lib/std/c/haiku.zig @@ -501,7 +501,7 @@ pub const siginfo_t = extern struct { /// Renamed from `sigaction` to `Sigaction` to avoid conflict with the syscall. pub const Sigaction = extern struct { pub const handler_fn = *align(1) const fn (i32) callconv(.C) void; - pub const sigaction_fn = *const fn (c_int, *allowzero anyopaque, ?*anyopaque) callconv(.C) void; + pub const sigaction_fn = *const fn (i32, *const siginfo_t, ?*anyopaque) callconv(.C) void; /// signal handler handler: extern union { diff --git a/lib/std/c/netbsd.zig b/lib/std/c/netbsd.zig index 61be065eaa64..3ec6de59b285 100644 --- a/lib/std/c/netbsd.zig +++ b/lib/std/c/netbsd.zig @@ -864,8 +864,8 @@ pub const SIG = struct { /// Renamed from `sigaction` to `Sigaction` to avoid conflict with the syscall. pub const Sigaction = extern struct { - pub const handler_fn = *align(1) const fn (c_int) callconv(.C) void; - pub const sigaction_fn = *const fn (c_int, *const siginfo_t, ?*anyopaque) callconv(.C) void; + pub const handler_fn = *align(1) const fn (i32) callconv(.C) void; + pub const sigaction_fn = *const fn (i32, *const siginfo_t, ?*anyopaque) callconv(.C) void; /// signal handler handler: extern union { diff --git a/lib/std/c/openbsd.zig b/lib/std/c/openbsd.zig index 98a93ac86fa2..bb82168ca359 100644 --- a/lib/std/c/openbsd.zig +++ b/lib/std/c/openbsd.zig @@ -842,8 +842,8 @@ pub const SIG = struct { /// Renamed from `sigaction` to `Sigaction` to avoid conflict with the syscall. pub const Sigaction = extern struct { - pub const handler_fn = *align(1) const fn (c_int) callconv(.C) void; - pub const sigaction_fn = *const fn (c_int, *const siginfo_t, ?*anyopaque) callconv(.C) void; + pub const handler_fn = *align(1) const fn (i32) callconv(.C) void; + pub const sigaction_fn = *const fn (i32, *const siginfo_t, ?*anyopaque) callconv(.C) void; /// signal handler handler: extern union { diff --git a/lib/std/c/solaris.zig b/lib/std/c/solaris.zig index c49751229972..4f08c32b0374 100644 --- a/lib/std/c/solaris.zig +++ b/lib/std/c/solaris.zig @@ -874,8 +874,8 @@ pub const SIG = struct { /// Renamed from `sigaction` to `Sigaction` to avoid conflict with the syscall. pub const Sigaction = extern struct { - pub const handler_fn = *align(1) const fn (c_int) callconv(.C) void; - pub const sigaction_fn = *const fn (c_int, *const siginfo_t, ?*anyopaque) callconv(.C) void; + pub const handler_fn = *align(1) const fn (i32) callconv(.C) void; + pub const sigaction_fn = *const fn (i32, *const siginfo_t, ?*anyopaque) callconv(.C) void; /// signal options flags: c_uint, diff --git a/lib/std/debug.zig b/lib/std/debug.zig index 824adc026164..d1d6201b807e 100644 --- a/lib/std/debug.zig +++ b/lib/std/debug.zig @@ -2570,7 +2570,7 @@ fn resetSegfaultHandler() void { updateSegfaultHandler(&act) catch {}; } -fn handleSegfaultPosix(sig: i32, info: *const posix.siginfo_t, ctx_ptr: ?*const anyopaque) callconv(.C) noreturn { +fn handleSegfaultPosix(sig: i32, info: *const posix.siginfo_t, ctx_ptr: ?*anyopaque) callconv(.C) noreturn { // Reset to the default handler so that if a segfault happens in this handler it will crash // the process. Also when this handler returns, the original instruction will be repeated // and the resulting segfault will crash the process rather than continually dump stack traces. diff --git a/lib/std/os/emscripten.zig b/lib/std/os/emscripten.zig index 76435de7e33d..95d550d7264f 100644 --- a/lib/std/os/emscripten.zig +++ b/lib/std/os/emscripten.zig @@ -695,8 +695,8 @@ pub const SIG = struct { }; pub const Sigaction = extern struct { - pub const handler_fn = *align(1) const fn (c_int) callconv(.C) void; - pub const sigaction_fn = *const fn (c_int, *const siginfo_t, ?*anyopaque) callconv(.C) void; + pub const handler_fn = *align(1) const fn (i32) callconv(.C) void; + pub const sigaction_fn = *const fn (i32, *const siginfo_t, ?*anyopaque) callconv(.C) void; handler: extern union { handler: ?handler_fn, diff --git a/lib/std/os/linux.zig b/lib/std/os/linux.zig index bcafa9fff3b5..69cef35e986c 100644 --- a/lib/std/os/linux.zig +++ b/lib/std/os/linux.zig @@ -4301,7 +4301,7 @@ pub const all_mask: sigset_t = [_]u32{0xffffffff} ** @typeInfo(sigset_t).Array.l pub const app_mask: sigset_t = [2]u32{ 0xfffffffc, 0x7fffffff } ++ [_]u32{0xffffffff} ** 30; const k_sigaction_funcs = struct { - const handler = ?*align(1) const fn (c_int) callconv(.C) void; + const handler = ?*align(1) const fn (i32) callconv(.C) void; const restorer = *const fn () callconv(.C) void; }; @@ -4328,8 +4328,8 @@ pub const k_sigaction = switch (native_arch) { /// Renamed from `sigaction` to `Sigaction` to avoid conflict with the syscall. pub const Sigaction = extern struct { - pub const handler_fn = *align(1) const fn (c_int) callconv(.C) void; - pub const sigaction_fn = *const fn (c_int, *const siginfo_t, ?*anyopaque) callconv(.C) void; + pub const handler_fn = *align(1) const fn (i32) callconv(.C) void; + pub const sigaction_fn = *const fn (i32, *const siginfo_t, ?*anyopaque) callconv(.C) void; handler: extern union { handler: ?handler_fn, diff --git a/lib/std/os/plan9.zig b/lib/std/os/plan9.zig index d44f228f3155..377b6d8c09af 100644 --- a/lib/std/os/plan9.zig +++ b/lib/std/os/plan9.zig @@ -186,8 +186,8 @@ pub const empty_sigset = 0; pub const siginfo_t = c_long; // TODO plan9 doesn't have sigaction_fn. Sigaction is not a union, but we incude it here to be compatible. pub const Sigaction = extern struct { - pub const handler_fn = *const fn (c_int) callconv(.C) void; - pub const sigaction_fn = *const fn (c_int, *const siginfo_t, ?*anyopaque) callconv(.C) void; + pub const handler_fn = *const fn (i32) callconv(.C) void; + pub const sigaction_fn = *const fn (i32, *const siginfo_t, ?*anyopaque) callconv(.C) void; handler: extern union { handler: ?handler_fn, diff --git a/lib/std/start.zig b/lib/std/start.zig index 3a2b0714f745..bcd39a27bf40 100644 --- a/lib/std/start.zig +++ b/lib/std/start.zig @@ -597,4 +597,4 @@ fn maybeIgnoreSigpipe() void { } } -fn noopSigHandler(_: c_int) callconv(.C) void {} +fn noopSigHandler(_: i32) callconv(.C) void {} diff --git a/src/Compilation.zig b/src/Compilation.zig index 442c1075e076..c533f2fae79d 100644 --- a/src/Compilation.zig +++ b/src/Compilation.zig @@ -3457,14 +3457,18 @@ fn processOneJob(comp: *Compilation, job: Job, prog_node: *std.Progress.Node) !v .pass = .{ .decl = decl_index }, .is_naked_fn = false, .fwd_decl = fwd_decl.toManaged(gpa), - .ctypes = .{}, + .ctype_pool = c_codegen.CType.Pool.empty, + .scratch = .{}, .anon_decl_deps = .{}, .aligned_anon_decls = .{}, }; defer { - dg.ctypes.deinit(gpa); - dg.fwd_decl.deinit(); + fwd_decl.* = dg.fwd_decl.moveToUnmanaged(); + fwd_decl.shrinkAndFree(gpa, fwd_decl.items.len); + dg.ctype_pool.deinit(gpa); + dg.scratch.deinit(gpa); } + try dg.ctype_pool.init(gpa); c_codegen.genHeader(&dg) catch |err| switch (err) { error.AnalysisFail => { @@ -3473,9 +3477,6 @@ fn processOneJob(comp: *Compilation, job: Job, prog_node: *std.Progress.Node) !v }, else => |e| return e, }; - - fwd_decl.* = dg.fwd_decl.moveToUnmanaged(); - fwd_decl.shrinkAndFree(gpa, fwd_decl.items.len); }, } }, diff --git a/src/InternPool.zig b/src/InternPool.zig index 63d29d376080..67368e1195e3 100644 --- a/src/InternPool.zig +++ b/src/InternPool.zig @@ -712,7 +712,7 @@ pub const Key = union(enum) { pub fn fieldName( self: AnonStructType, ip: *const InternPool, - index: u32, + index: usize, ) OptionalNullTerminatedString { if (self.names.len == 0) return .none; @@ -3879,20 +3879,13 @@ pub const Alignment = enum(u6) { none = std.math.maxInt(u6), _, - pub fn toByteUnitsOptional(a: Alignment) ?u64 { + pub fn toByteUnits(a: Alignment) ?u64 { return switch (a) { .none => null, else => @as(u64, 1) << @intFromEnum(a), }; } - pub fn toByteUnits(a: Alignment, default: u64) u64 { - return switch (a) { - .none => default, - else => @as(u64, 1) << @intFromEnum(a), - }; - } - pub fn fromByteUnits(n: u64) Alignment { if (n == 0) return .none; assert(std.math.isPowerOfTwo(n)); diff --git a/src/Module.zig b/src/Module.zig index d4a4522441cd..ac2d11d575ea 100644 --- a/src/Module.zig +++ b/src/Module.zig @@ -5846,7 +5846,7 @@ pub fn intBitsForValue(mod: *Module, val: Value, sign: bool) u16 { return @as(u16, @intCast(big.bitCountTwosComp())); }, .lazy_align => |lazy_ty| { - return Type.smallestUnsignedBits(Type.fromInterned(lazy_ty).abiAlignment(mod).toByteUnits(0)) + @intFromBool(sign); + return Type.smallestUnsignedBits(Type.fromInterned(lazy_ty).abiAlignment(mod).toByteUnits() orelse 0) + @intFromBool(sign); }, .lazy_size => |lazy_ty| { return Type.smallestUnsignedBits(Type.fromInterned(lazy_ty).abiSize(mod)) + @intFromBool(sign); diff --git a/src/Sema.zig b/src/Sema.zig index 7db354334a58..74991d57699d 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -6508,7 +6508,7 @@ fn zirSetAlignStack(sema: *Sema, block: *Block, extended: Zir.Inst.Extended.Inst const alignment = try sema.resolveAlign(block, operand_src, extra.operand); if (alignment.order(Alignment.fromNonzeroByteUnits(256)).compare(.gt)) { return sema.fail(block, src, "attempt to @setAlignStack({d}); maximum is 256", .{ - alignment.toByteUnitsOptional().?, + alignment.toByteUnits().?, }); } @@ -17804,7 +17804,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai }, .Pointer => { const info = ty.ptrInfo(mod); - const alignment = if (info.flags.alignment.toByteUnitsOptional()) |alignment| + const alignment = if (info.flags.alignment.toByteUnits()) |alignment| try mod.intValue(Type.comptime_int, alignment) else try Type.fromInterned(info.child).lazyAbiAlignment(mod); @@ -18279,7 +18279,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai // type: type, field_ty, // alignment: comptime_int, - (try mod.intValue(Type.comptime_int, alignment.toByteUnits(0))).toIntern(), + (try mod.intValue(Type.comptime_int, alignment.toByteUnits() orelse 0)).toIntern(), }; field_val.* = try mod.intern(.{ .aggregate = .{ .ty = union_field_ty.toIntern(), @@ -18436,7 +18436,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai // is_comptime: bool, Value.makeBool(is_comptime).toIntern(), // alignment: comptime_int, - (try mod.intValue(Type.comptime_int, Type.fromInterned(field_ty).abiAlignment(mod).toByteUnits(0))).toIntern(), + (try mod.intValue(Type.comptime_int, Type.fromInterned(field_ty).abiAlignment(mod).toByteUnits() orelse 0)).toIntern(), }; struct_field_val.* = try mod.intern(.{ .aggregate = .{ .ty = struct_field_ty.toIntern(), @@ -18505,7 +18505,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai // is_comptime: bool, Value.makeBool(field_is_comptime).toIntern(), // alignment: comptime_int, - (try mod.intValue(Type.comptime_int, alignment.toByteUnits(0))).toIntern(), + (try mod.intValue(Type.comptime_int, alignment.toByteUnits() orelse 0)).toIntern(), }; field_val.* = try mod.intern(.{ .aggregate = .{ .ty = struct_field_ty.toIntern(), @@ -22552,7 +22552,7 @@ fn zirPtrFromInt(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError! try sema.addSafetyCheck(block, src, is_non_zero, .cast_to_null); } if (ptr_align.compare(.gt, .@"1")) { - const align_bytes_minus_1 = ptr_align.toByteUnitsOptional().? - 1; + const align_bytes_minus_1 = ptr_align.toByteUnits().? - 1; const align_minus_1 = Air.internedToRef((try mod.intValue(Type.usize, align_bytes_minus_1)).toIntern()); const remainder = try block.addBinOp(.bit_and, operand_coerced, align_minus_1); const is_aligned = try block.addBinOp(.cmp_eq, remainder, .zero_usize); @@ -22572,7 +22572,7 @@ fn zirPtrFromInt(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError! try sema.addSafetyCheck(block, src, is_non_zero, .cast_to_null); } if (ptr_align.compare(.gt, .@"1")) { - const align_bytes_minus_1 = ptr_align.toByteUnitsOptional().? - 1; + const align_bytes_minus_1 = ptr_align.toByteUnits().? - 1; const align_minus_1 = Air.internedToRef((try mod.intValue(Type.usize, align_bytes_minus_1)).toIntern()); const remainder = try block.addBinOp(.bit_and, elem_coerced, align_minus_1); const is_aligned = try block.addBinOp(.cmp_eq, remainder, .zero_usize); @@ -22970,10 +22970,10 @@ fn ptrCastFull( const msg = try sema.errMsg(block, src, "cast increases pointer alignment", .{}); errdefer msg.destroy(sema.gpa); try sema.errNote(block, operand_src, msg, "'{}' has alignment '{d}'", .{ - operand_ty.fmt(mod), src_align.toByteUnits(0), + operand_ty.fmt(mod), src_align.toByteUnits() orelse 0, }); try sema.errNote(block, src, msg, "'{}' has alignment '{d}'", .{ - dest_ty.fmt(mod), dest_align.toByteUnits(0), + dest_ty.fmt(mod), dest_align.toByteUnits() orelse 0, }); try sema.errNote(block, src, msg, "use @alignCast to assert pointer alignment", .{}); break :msg msg; @@ -23067,7 +23067,7 @@ fn ptrCastFull( if (!dest_align.check(addr)) { return sema.fail(block, operand_src, "pointer address 0x{X} is not aligned to {d} bytes", .{ addr, - dest_align.toByteUnitsOptional().?, + dest_align.toByteUnits().?, }); } } @@ -23110,7 +23110,7 @@ fn ptrCastFull( dest_align.compare(.gt, src_align) and try sema.typeHasRuntimeBits(Type.fromInterned(dest_info.child))) { - const align_bytes_minus_1 = dest_align.toByteUnitsOptional().? - 1; + const align_bytes_minus_1 = dest_align.toByteUnits().? - 1; const align_minus_1 = Air.internedToRef((try mod.intValue(Type.usize, align_bytes_minus_1)).toIntern()); const ptr_int = try block.addUnOp(.int_from_ptr, ptr); const remainder = try block.addBinOp(.bit_and, ptr_int, align_minus_1); @@ -27837,7 +27837,7 @@ fn structFieldPtrByIndex( const elem_size_bits = Type.fromInterned(ptr_ty_data.child).bitSize(mod); if (elem_size_bytes * 8 == elem_size_bits) { const byte_offset = ptr_ty_data.packed_offset.bit_offset / 8; - const new_align: Alignment = @enumFromInt(@ctz(byte_offset | parent_align.toByteUnitsOptional().?)); + const new_align: Alignment = @enumFromInt(@ctz(byte_offset | parent_align.toByteUnits().?)); assert(new_align != .none); ptr_ty_data.flags.alignment = new_align; ptr_ty_data.packed_offset = .{ .host_size = 0, .bit_offset = 0 }; @@ -29132,7 +29132,7 @@ fn coerceExtra( .addr = .{ .int = if (dest_info.flags.alignment != .none) (try mod.intValue( Type.usize, - dest_info.flags.alignment.toByteUnitsOptional().?, + dest_info.flags.alignment.toByteUnits().?, )).toIntern() else try mod.intern_pool.getCoercedInts( @@ -29800,7 +29800,7 @@ const InMemoryCoercionResult = union(enum) { }, .ptr_alignment => |pair| { try sema.errNote(block, src, msg, "pointer alignment '{d}' cannot cast into pointer alignment '{d}'", .{ - pair.actual.toByteUnits(0), pair.wanted.toByteUnits(0), + pair.actual.toByteUnits() orelse 0, pair.wanted.toByteUnits() orelse 0, }); break; }, diff --git a/src/Value.zig b/src/Value.zig index f8f23667e252..7a9775e198b8 100644 --- a/src/Value.zig +++ b/src/Value.zig @@ -176,7 +176,7 @@ pub fn toBigIntAdvanced( if (opt_sema) |sema| try sema.resolveTypeLayout(Type.fromInterned(ty)); const x = switch (int.storage) { else => unreachable, - .lazy_align => Type.fromInterned(ty).abiAlignment(mod).toByteUnits(0), + .lazy_align => Type.fromInterned(ty).abiAlignment(mod).toByteUnits() orelse 0, .lazy_size => Type.fromInterned(ty).abiSize(mod), }; return BigIntMutable.init(&space.limbs, x).toConst(); @@ -237,9 +237,9 @@ pub fn getUnsignedIntAdvanced(val: Value, mod: *Module, opt_sema: ?*Sema) !?u64 .u64 => |x| x, .i64 => |x| std.math.cast(u64, x), .lazy_align => |ty| if (opt_sema) |sema| - (try Type.fromInterned(ty).abiAlignmentAdvanced(mod, .{ .sema = sema })).scalar.toByteUnits(0) + (try Type.fromInterned(ty).abiAlignmentAdvanced(mod, .{ .sema = sema })).scalar.toByteUnits() orelse 0 else - Type.fromInterned(ty).abiAlignment(mod).toByteUnits(0), + Type.fromInterned(ty).abiAlignment(mod).toByteUnits() orelse 0, .lazy_size => |ty| if (opt_sema) |sema| (try Type.fromInterned(ty).abiSizeAdvanced(mod, .{ .sema = sema })).scalar else @@ -289,7 +289,7 @@ pub fn toSignedInt(val: Value, mod: *Module) i64 { .big_int => |big_int| big_int.to(i64) catch unreachable, .i64 => |x| x, .u64 => |x| @intCast(x), - .lazy_align => |ty| @intCast(Type.fromInterned(ty).abiAlignment(mod).toByteUnits(0)), + .lazy_align => |ty| @intCast(Type.fromInterned(ty).abiAlignment(mod).toByteUnits() orelse 0), .lazy_size => |ty| @intCast(Type.fromInterned(ty).abiSize(mod)), }, else => unreachable, @@ -497,7 +497,7 @@ pub fn writeToPackedMemory( inline .u64, .i64 => |int| std.mem.writeVarPackedInt(buffer, bit_offset, bits, int, endian), .big_int => |bigint| bigint.writePackedTwosComplement(buffer, bit_offset, bits, endian), .lazy_align => |lazy_align| { - const num = Type.fromInterned(lazy_align).abiAlignment(mod).toByteUnits(0); + const num = Type.fromInterned(lazy_align).abiAlignment(mod).toByteUnits() orelse 0; std.mem.writeVarPackedInt(buffer, bit_offset, bits, num, endian); }, .lazy_size => |lazy_size| { @@ -890,7 +890,7 @@ pub fn toFloat(val: Value, comptime T: type, mod: *Module) T { } return @floatFromInt(x); }, - .lazy_align => |ty| @floatFromInt(Type.fromInterned(ty).abiAlignment(mod).toByteUnits(0)), + .lazy_align => |ty| @floatFromInt(Type.fromInterned(ty).abiAlignment(mod).toByteUnits() orelse 0), .lazy_size => |ty| @floatFromInt(Type.fromInterned(ty).abiSize(mod)), }, .float => |float| switch (float.storage) { @@ -1529,9 +1529,9 @@ pub fn floatFromIntScalar(val: Value, float_ty: Type, mod: *Module, opt_sema: ?* }, inline .u64, .i64 => |x| floatFromIntInner(x, float_ty, mod), .lazy_align => |ty| if (opt_sema) |sema| { - return floatFromIntInner((try Type.fromInterned(ty).abiAlignmentAdvanced(mod, .{ .sema = sema })).scalar.toByteUnits(0), float_ty, mod); + return floatFromIntInner((try Type.fromInterned(ty).abiAlignmentAdvanced(mod, .{ .sema = sema })).scalar.toByteUnits() orelse 0, float_ty, mod); } else { - return floatFromIntInner(Type.fromInterned(ty).abiAlignment(mod).toByteUnits(0), float_ty, mod); + return floatFromIntInner(Type.fromInterned(ty).abiAlignment(mod).toByteUnits() orelse 0, float_ty, mod); }, .lazy_size => |ty| if (opt_sema) |sema| { return floatFromIntInner((try Type.fromInterned(ty).abiSizeAdvanced(mod, .{ .sema = sema })).scalar, float_ty, mod); diff --git a/src/arch/wasm/CodeGen.zig b/src/arch/wasm/CodeGen.zig index 6dc231672406..022f2f9bee7e 100644 --- a/src/arch/wasm/CodeGen.zig +++ b/src/arch/wasm/CodeGen.zig @@ -1296,7 +1296,7 @@ fn genFunc(func: *CodeGen) InnerError!void { // subtract it from the current stack pointer try prologue.append(.{ .tag = .i32_sub, .data = .{ .tag = {} } }); // Get negative stack aligment - try prologue.append(.{ .tag = .i32_const, .data = .{ .imm32 = @as(i32, @intCast(func.stack_alignment.toByteUnitsOptional().?)) * -1 } }); + try prologue.append(.{ .tag = .i32_const, .data = .{ .imm32 = @as(i32, @intCast(func.stack_alignment.toByteUnits().?)) * -1 } }); // Bitwise-and the value to get the new stack pointer to ensure the pointers are aligned with the abi alignment try prologue.append(.{ .tag = .i32_and, .data = .{ .tag = {} } }); // store the current stack pointer as the bottom, which will be used to calculate all stack pointer offsets @@ -2107,7 +2107,7 @@ fn airRet(func: *CodeGen, inst: Air.Inst.Index) InnerError!void { }); try func.addMemArg(Mir.Inst.Tag.fromOpcode(opcode), .{ .offset = operand.offset(), - .alignment = @intCast(scalar_type.abiAlignment(mod).toByteUnitsOptional().?), + .alignment = @intCast(scalar_type.abiAlignment(mod).toByteUnits().?), }); }, else => try func.emitWValue(operand), @@ -2384,7 +2384,7 @@ fn store(func: *CodeGen, lhs: WValue, rhs: WValue, ty: Type, offset: u32) InnerE try func.mir_extra.appendSlice(func.gpa, &[_]u32{ std.wasm.simdOpcode(.v128_store), offset + lhs.offset(), - @intCast(ty.abiAlignment(mod).toByteUnits(0)), + @intCast(ty.abiAlignment(mod).toByteUnits() orelse 0), }); return func.addInst(.{ .tag = .simd_prefix, .data = .{ .payload = extra_index } }); }, @@ -2440,7 +2440,7 @@ fn store(func: *CodeGen, lhs: WValue, rhs: WValue, ty: Type, offset: u32) InnerE Mir.Inst.Tag.fromOpcode(opcode), .{ .offset = offset + lhs.offset(), - .alignment = @intCast(ty.abiAlignment(mod).toByteUnitsOptional().?), + .alignment = @intCast(ty.abiAlignment(mod).toByteUnits().?), }, ); } @@ -2500,7 +2500,7 @@ fn load(func: *CodeGen, operand: WValue, ty: Type, offset: u32) InnerError!WValu try func.mir_extra.appendSlice(func.gpa, &[_]u32{ std.wasm.simdOpcode(.v128_load), offset + operand.offset(), - @intCast(ty.abiAlignment(mod).toByteUnitsOptional().?), + @intCast(ty.abiAlignment(mod).toByteUnits().?), }); try func.addInst(.{ .tag = .simd_prefix, .data = .{ .payload = extra_index } }); return WValue{ .stack = {} }; @@ -2518,7 +2518,7 @@ fn load(func: *CodeGen, operand: WValue, ty: Type, offset: u32) InnerError!WValu Mir.Inst.Tag.fromOpcode(opcode), .{ .offset = offset + operand.offset(), - .alignment = @intCast(ty.abiAlignment(mod).toByteUnitsOptional().?), + .alignment = @intCast(ty.abiAlignment(mod).toByteUnits().?), }, ); @@ -3456,7 +3456,7 @@ fn intStorageAsI32(storage: InternPool.Key.Int.Storage, mod: *Module) i32 { .i64 => |x| @as(i32, @intCast(x)), .u64 => |x| @as(i32, @bitCast(@as(u32, @intCast(x)))), .big_int => unreachable, - .lazy_align => |ty| @as(i32, @bitCast(@as(u32, @intCast(Type.fromInterned(ty).abiAlignment(mod).toByteUnits(0))))), + .lazy_align => |ty| @as(i32, @bitCast(@as(u32, @intCast(Type.fromInterned(ty).abiAlignment(mod).toByteUnits() orelse 0)))), .lazy_size => |ty| @as(i32, @bitCast(@as(u32, @intCast(Type.fromInterned(ty).abiSize(mod))))), }; } @@ -4204,7 +4204,7 @@ fn airIsErr(func: *CodeGen, inst: Air.Inst.Index, opcode: wasm.Opcode) InnerErro if (pl_ty.hasRuntimeBitsIgnoreComptime(mod)) { try func.addMemArg(.i32_load16_u, .{ .offset = operand.offset() + @as(u32, @intCast(errUnionErrorOffset(pl_ty, mod))), - .alignment = @intCast(Type.anyerror.abiAlignment(mod).toByteUnitsOptional().?), + .alignment = @intCast(Type.anyerror.abiAlignment(mod).toByteUnits().?), }); } @@ -5141,7 +5141,7 @@ fn airSplat(func: *CodeGen, inst: Air.Inst.Index) InnerError!void { try func.mir_extra.appendSlice(func.gpa, &[_]u32{ opcode, operand.offset(), - @intCast(elem_ty.abiAlignment(mod).toByteUnitsOptional().?), + @intCast(elem_ty.abiAlignment(mod).toByteUnits().?), }); try func.addInst(.{ .tag = .simd_prefix, .data = .{ .payload = extra_index } }); try func.addLabel(.local_set, result.local.value); @@ -6552,7 +6552,7 @@ fn lowerTry( const err_offset = @as(u32, @intCast(errUnionErrorOffset(pl_ty, mod))); try func.addMemArg(.i32_load16_u, .{ .offset = err_union.offset() + err_offset, - .alignment = @intCast(Type.anyerror.abiAlignment(mod).toByteUnitsOptional().?), + .alignment = @intCast(Type.anyerror.abiAlignment(mod).toByteUnits().?), }); } try func.addTag(.i32_eqz); @@ -7499,7 +7499,7 @@ fn airCmpxchg(func: *CodeGen, inst: Air.Inst.Index) InnerError!void { else => |size| return func.fail("TODO: implement `@cmpxchg` for types with abi size '{d}'", .{size}), }, .{ .offset = ptr_operand.offset(), - .alignment = @intCast(ty.abiAlignment(mod).toByteUnitsOptional().?), + .alignment = @intCast(ty.abiAlignment(mod).toByteUnits().?), }); try func.addLabel(.local_tee, val_local.local.value); _ = try func.cmp(.stack, expected_val, ty, .eq); @@ -7561,7 +7561,7 @@ fn airAtomicLoad(func: *CodeGen, inst: Air.Inst.Index) InnerError!void { try func.emitWValue(ptr); try func.addAtomicMemArg(tag, .{ .offset = ptr.offset(), - .alignment = @intCast(ty.abiAlignment(mod).toByteUnitsOptional().?), + .alignment = @intCast(ty.abiAlignment(mod).toByteUnits().?), }); } else { _ = try func.load(ptr, ty, 0); @@ -7622,7 +7622,7 @@ fn airAtomicRmw(func: *CodeGen, inst: Air.Inst.Index) InnerError!void { }, .{ .offset = ptr.offset(), - .alignment = @intCast(ty.abiAlignment(mod).toByteUnitsOptional().?), + .alignment = @intCast(ty.abiAlignment(mod).toByteUnits().?), }, ); const select_res = try func.allocLocal(ty); @@ -7682,7 +7682,7 @@ fn airAtomicRmw(func: *CodeGen, inst: Air.Inst.Index) InnerError!void { }; try func.addAtomicMemArg(tag, .{ .offset = ptr.offset(), - .alignment = @intCast(ty.abiAlignment(mod).toByteUnitsOptional().?), + .alignment = @intCast(ty.abiAlignment(mod).toByteUnits().?), }); const result = try WValue.toLocal(.stack, func, ty); return func.finishAir(inst, result, &.{ pl_op.operand, extra.operand }); @@ -7781,7 +7781,7 @@ fn airAtomicStore(func: *CodeGen, inst: Air.Inst.Index) InnerError!void { try func.lowerToStack(operand); try func.addAtomicMemArg(tag, .{ .offset = ptr.offset(), - .alignment = @intCast(ty.abiAlignment(mod).toByteUnitsOptional().?), + .alignment = @intCast(ty.abiAlignment(mod).toByteUnits().?), }); } else { try func.store(ptr, operand, ty, 0); diff --git a/src/arch/x86_64/CodeGen.zig b/src/arch/x86_64/CodeGen.zig index 1b584bfe53c1..b20a3220337c 100644 --- a/src/arch/x86_64/CodeGen.zig +++ b/src/arch/x86_64/CodeGen.zig @@ -18959,7 +18959,7 @@ fn resolveCallingConventionValues( const param_size: u31 = @intCast(ty.abiSize(mod)); const param_align: u31 = - @intCast(@max(ty.abiAlignment(mod).toByteUnitsOptional().?, 8)); + @intCast(@max(ty.abiAlignment(mod).toByteUnits().?, 8)); result.stack_byte_count = mem.alignForward(u31, result.stack_byte_count, param_align); arg.* = .{ .load_frame = .{ @@ -19003,7 +19003,7 @@ fn resolveCallingConventionValues( continue; } const param_size: u31 = @intCast(ty.abiSize(mod)); - const param_align: u31 = @intCast(ty.abiAlignment(mod).toByteUnitsOptional().?); + const param_align: u31 = @intCast(ty.abiAlignment(mod).toByteUnits().?); result.stack_byte_count = mem.alignForward(u31, result.stack_byte_count, param_align); arg.* = .{ .load_frame = .{ @@ -19096,7 +19096,7 @@ fn splitType(self: *Self, ty: Type) ![2]Type { .integer => switch (part_i) { 0 => Type.u64, 1 => part: { - const elem_size = ty.abiAlignment(mod).minStrict(.@"8").toByteUnitsOptional().?; + const elem_size = ty.abiAlignment(mod).minStrict(.@"8").toByteUnits().?; const elem_ty = try mod.intType(.unsigned, @intCast(elem_size * 8)); break :part switch (@divExact(ty.abiSize(mod) - 8, elem_size)) { 1 => elem_ty, diff --git a/src/codegen.zig b/src/codegen.zig index 004cf7a7be74..76be8be974c1 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -548,7 +548,7 @@ pub fn generateSymbol( } const size = struct_type.size(ip).*; - const alignment = struct_type.flagsPtr(ip).alignment.toByteUnitsOptional().?; + const alignment = struct_type.flagsPtr(ip).alignment.toByteUnits().?; const padding = math.cast( usize, @@ -893,12 +893,12 @@ fn genDeclRef( // TODO this feels clunky. Perhaps we should check for it in `genTypedValue`? if (ty.castPtrToFn(zcu)) |fn_ty| { if (zcu.typeToFunc(fn_ty).?.is_generic) { - return GenResult.mcv(.{ .immediate = fn_ty.abiAlignment(zcu).toByteUnitsOptional().? }); + return GenResult.mcv(.{ .immediate = fn_ty.abiAlignment(zcu).toByteUnits().? }); } } else if (ty.zigTypeTag(zcu) == .Pointer) { const elem_ty = ty.elemType2(zcu); if (!elem_ty.hasRuntimeBits(zcu)) { - return GenResult.mcv(.{ .immediate = elem_ty.abiAlignment(zcu).toByteUnitsOptional().? }); + return GenResult.mcv(.{ .immediate = elem_ty.abiAlignment(zcu).toByteUnits().? }); } } diff --git a/src/codegen/c.zig b/src/codegen/c.zig index 246f4e1e0feb..cec7cdcd991e 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -22,7 +22,7 @@ const Alignment = InternPool.Alignment; const BigIntLimb = std.math.big.Limb; const BigInt = std.math.big.int; -pub const CType = @import("c/type.zig").CType; +pub const CType = @import("c/Type.zig"); pub const CValue = union(enum) { none: void, @@ -62,7 +62,7 @@ pub const LazyFnKey = union(enum) { never_inline: InternPool.DeclIndex, }; pub const LazyFnValue = struct { - fn_name: []const u8, + fn_name: CType.String, data: Data, pub const Data = union { @@ -74,19 +74,19 @@ pub const LazyFnValue = struct { pub const LazyFnMap = std.AutoArrayHashMapUnmanaged(LazyFnKey, LazyFnValue); const Local = struct { - cty_idx: CType.Index, + ctype: CType, flags: packed struct(u32) { alignas: CType.AlignAs, _: u20 = undefined, }, pub fn getType(local: Local) LocalType { - return .{ .cty_idx = local.cty_idx, .alignas = local.flags.alignas }; + return .{ .ctype = local.ctype, .alignas = local.flags.alignas }; } }; const LocalIndex = u16; -const LocalType = struct { cty_idx: CType.Index, alignas: CType.AlignAs }; +const LocalType = struct { ctype: CType, alignas: CType.AlignAs }; const LocalsList = std.AutoArrayHashMapUnmanaged(LocalIndex, void); const LocalsMap = std.AutoArrayHashMapUnmanaged(LocalType, LocalsList); @@ -193,6 +193,7 @@ const reserved_idents = std.ComptimeStringMap(void, .{ .{ "switch", {} }, .{ "thread_local", {} }, .{ "typedef", {} }, + .{ "typeof", {} }, .{ "uint16_t", {} }, .{ "uint32_t", {} }, .{ "uint64_t", {} }, @@ -309,12 +310,14 @@ pub const Function = struct { const result: CValue = if (lowersToArray(ty, zcu)) result: { const writer = f.object.codeHeaderWriter(); - const alignment: Alignment = .none; - const decl_c_value = try f.allocLocalValue(ty, alignment); + const decl_c_value = try f.allocLocalValue(.{ + .ctype = try f.ctypeFromType(ty, .complete), + .alignas = CType.AlignAs.fromAbiAlignment(ty.abiAlignment(zcu)), + }); const gpa = f.object.dg.gpa; try f.allocs.put(gpa, decl_c_value.new_local, false); try writer.writeAll("static "); - try f.object.dg.renderTypeAndName(writer, ty, decl_c_value, Const, alignment, .complete); + try f.object.dg.renderTypeAndName(writer, ty, decl_c_value, Const, .none, .complete); try writer.writeAll(" = "); try f.object.dg.renderValue(writer, val, .StaticInitializer); try writer.writeAll(";\n "); @@ -335,42 +338,39 @@ pub const Function = struct { /// Skips the reuse logic. This function should be used for any persistent allocation, i.e. /// those which go into `allocs`. This function does not add the resulting local into `allocs`; /// that responsibility lies with the caller. - fn allocLocalValue(f: *Function, ty: Type, alignment: Alignment) !CValue { - const zcu = f.object.dg.zcu; - const gpa = f.object.dg.gpa; - try f.locals.append(gpa, .{ - .cty_idx = try f.typeToIndex(ty, .complete), - .flags = .{ - .alignas = CType.AlignAs.init(alignment, ty.abiAlignment(zcu)), - }, + fn allocLocalValue(f: *Function, local_type: LocalType) !CValue { + try f.locals.ensureUnusedCapacity(f.object.dg.gpa, 1); + defer f.locals.appendAssumeCapacity(.{ + .ctype = local_type.ctype, + .flags = .{ .alignas = local_type.alignas }, }); - return .{ .new_local = @intCast(f.locals.items.len - 1) }; + return .{ .new_local = @intCast(f.locals.items.len) }; } fn allocLocal(f: *Function, inst: ?Air.Inst.Index, ty: Type) !CValue { - const result = try f.allocAlignedLocal(ty, .{}, .none); - if (inst) |i| { - log.debug("%{d}: allocating t{d}", .{ i, result.new_local }); - } else { - log.debug("allocating t{d}", .{result.new_local}); - } - return result; + return f.allocAlignedLocal(inst, .{ + .ctype = try f.ctypeFromType(ty, .complete), + .alignas = CType.AlignAs.fromAbiAlignment(ty.abiAlignment(f.object.dg.zcu)), + }); } /// Only allocates the local; does not print anything. Will attempt to re-use locals, so should /// not be used for persistent locals (i.e. those in `allocs`). - fn allocAlignedLocal(f: *Function, ty: Type, _: CQualifiers, alignment: Alignment) !CValue { - const zcu = f.object.dg.zcu; - if (f.free_locals_map.getPtr(.{ - .cty_idx = try f.typeToIndex(ty, .complete), - .alignas = CType.AlignAs.init(alignment, ty.abiAlignment(zcu)), - })) |locals_list| { - if (locals_list.popOrNull()) |local_entry| { - return .{ .new_local = local_entry.key }; + fn allocAlignedLocal(f: *Function, inst: ?Air.Inst.Index, local_type: LocalType) !CValue { + const result: CValue = result: { + if (f.free_locals_map.getPtr(local_type)) |locals_list| { + if (locals_list.popOrNull()) |local_entry| { + break :result .{ .new_local = local_entry.key }; + } } + break :result try f.allocLocalValue(local_type); + }; + if (inst) |i| { + log.debug("%{d}: allocating t{d}", .{ i, result.new_local }); + } else { + log.debug("allocating t{d}", .{result.new_local}); } - - return f.allocLocalValue(ty, alignment); + return result; } fn writeCValue(f: *Function, w: anytype, c_value: CValue, location: ValueRenderLocation) !void { @@ -380,15 +380,20 @@ pub const Function = struct { .local_ref => |i| { const local = &f.locals.items[i]; if (local.flags.alignas.abiOrder().compare(.lt)) { - const zcu = f.object.dg.zcu; - const pointee_ty = try zcu.intType(.unsigned, @min( - local.flags.alignas.@"align".toByteUnitsOptional().?, - f.object.dg.mod.resolved_target.result.maxIntAlignment(), - ) * 8); - const ptr_ty = try zcu.singleMutPtrType(pointee_ty); + const gpa = f.object.dg.gpa; + const mod = f.object.dg.mod; + const ctype_pool = &f.object.dg.ctype_pool; try w.writeByte('('); - try f.renderType(w, ptr_ty); + try f.renderCType(w, try ctype_pool.getPointer(gpa, .{ + .elem_ctype = try ctype_pool.fromIntInfo(gpa, .{ + .signedness = .unsigned, + .bits = @min( + local.flags.alignas.toByteUnits(), + mod.resolved_target.result.maxIntAlignment(), + ) * 8, + }, mod, .forward), + })); try w.writeByte(')'); } try w.print("&t{d}", .{i}); @@ -460,28 +465,20 @@ pub const Function = struct { return f.object.dg.fail(format, args); } - fn indexToCType(f: *Function, idx: CType.Index) CType { - return f.object.dg.indexToCType(idx); - } - - fn typeToIndex(f: *Function, ty: Type, kind: CType.Kind) !CType.Index { - return f.object.dg.typeToIndex(ty, kind); + fn ctypeFromType(f: *Function, ty: Type, kind: CType.Kind) !CType { + return f.object.dg.ctypeFromType(ty, kind); } - fn typeToCType(f: *Function, ty: Type, kind: CType.Kind) !CType { - return f.object.dg.typeToCType(ty, kind); + fn byteSize(f: *Function, ctype: CType) u64 { + return f.object.dg.byteSize(ctype); } - fn byteSize(f: *Function, cty: CType) u64 { - return f.object.dg.byteSize(cty); + fn renderType(f: *Function, w: anytype, ctype: Type) !void { + return f.object.dg.renderType(w, ctype); } - fn renderType(f: *Function, w: anytype, t: Type) !void { - return f.object.dg.renderType(w, t); - } - - fn renderCType(f: *Function, w: anytype, t: CType.Index) !void { - return f.object.dg.renderCType(w, t); + fn renderCType(f: *Function, w: anytype, ctype: CType) !void { + return f.object.dg.renderCType(w, ctype); } fn renderIntCast(f: *Function, w: anytype, dest_ty: Type, src: CValue, v: Vectorize, src_ty: Type, location: ValueRenderLocation) !void { @@ -494,21 +491,19 @@ pub const Function = struct { fn getLazyFnName(f: *Function, key: LazyFnKey, data: LazyFnValue.Data) ![]const u8 { const gpa = f.object.dg.gpa; + const zcu = f.object.dg.zcu; + const ctype_pool = &f.object.dg.ctype_pool; + const gop = try f.lazy_fns.getOrPut(gpa, key); if (!gop.found_existing) { errdefer _ = f.lazy_fns.pop(); - var promoted = f.object.dg.ctypes.promote(gpa); - defer f.object.dg.ctypes.demote(promoted); - const arena = promoted.arena.allocator(); - const zcu = f.object.dg.zcu; - gop.value_ptr.* = .{ .fn_name = switch (key) { .tag_name, .never_tail, .never_inline, - => |owner_decl| try std.fmt.allocPrint(arena, "zig_{s}_{}__{d}", .{ + => |owner_decl| try ctype_pool.fmt(gpa, "zig_{s}_{}__{d}", .{ @tagName(key), fmtIdent(zcu.intern_pool.stringToSlice(zcu.declPtr(owner_decl).name)), @intFromEnum(owner_decl), @@ -521,7 +516,7 @@ pub const Function = struct { }, }; } - return gop.value_ptr.fn_name; + return gop.value_ptr.fn_name.slice(ctype_pool); } pub fn deinit(f: *Function) void { @@ -532,7 +527,6 @@ pub const Function = struct { f.blocks.deinit(gpa); f.value_map.deinit(); f.lazy_fns.deinit(gpa); - f.object.dg.ctypes.deinit(gpa); } fn typeOf(f: *Function, inst: Air.Inst.Ref) Type { @@ -575,7 +569,8 @@ pub const DeclGen = struct { /// This is a borrowed reference from `link.C`. fwd_decl: std.ArrayList(u8), error_msg: ?*Zcu.ErrorMsg, - ctypes: CType.Store, + ctype_pool: CType.Pool, + scratch: std.ArrayListUnmanaged(u32), /// Keeps track of anonymous decls that need to be rendered before this /// (named) Decl in the output C code. anon_decl_deps: std.AutoArrayHashMapUnmanaged(InternPool.Index, C.DeclBlock), @@ -610,6 +605,7 @@ pub const DeclGen = struct { ) error{ OutOfMemory, AnalysisFail }!void { const zcu = dg.zcu; const ip = &zcu.intern_pool; + const ctype_pool = &dg.ctype_pool; const decl_val = Value.fromInterned(anon_decl.val); const decl_ty = decl_val.typeOf(zcu); @@ -631,10 +627,10 @@ pub const DeclGen = struct { // them). The analysis until now should ensure that the C function // pointers are compatible. If they are not, then there is a bug // somewhere and we should let the C compiler tell us about it. - const child_cty = (try dg.typeToCType(ptr_ty, .complete)).cast(CType.Payload.Child).?.data; - const decl_cty = try dg.typeToIndex(decl_ty, .complete); - const need_cast = child_cty != decl_cty and - (dg.indexToCType(child_cty).tag() != .function or dg.indexToCType(decl_cty).tag() != .function); + const elem_ctype = (try dg.ctypeFromType(ptr_ty, .complete)).info(ctype_pool).pointer.elem_ctype; + const decl_ctype = try dg.ctypeFromType(decl_ty, .complete); + const need_cast = !elem_ctype.eql(decl_ctype) and + (elem_ctype.info(ctype_pool) != .function or decl_ctype.info(ctype_pool) != .function); if (need_cast) { try writer.writeAll("(("); try dg.renderType(writer, ptr_ty); @@ -655,7 +651,7 @@ pub const DeclGen = struct { const explicit_alignment = ptr_type.flags.alignment; if (explicit_alignment != .none) { const abi_alignment = Type.fromInterned(ptr_type.child).abiAlignment(zcu); - if (explicit_alignment.compareStrict(.gt, abi_alignment)) { + if (explicit_alignment.order(abi_alignment).compare(.gt)) { const aligned_gop = try dg.aligned_anon_decls.getOrPut(dg.gpa, anon_decl.val); aligned_gop.value_ptr.* = if (aligned_gop.found_existing) aligned_gop.value_ptr.maxStrict(explicit_alignment) @@ -673,6 +669,7 @@ pub const DeclGen = struct { location: ValueRenderLocation, ) error{ OutOfMemory, AnalysisFail }!void { const zcu = dg.zcu; + const ctype_pool = &dg.ctype_pool; const decl = zcu.declPtr(decl_index); assert(decl.has_tv); @@ -695,10 +692,10 @@ pub const DeclGen = struct { // them). The analysis until now should ensure that the C function // pointers are compatible. If they are not, then there is a bug // somewhere and we should let the C compiler tell us about it. - const child_cty = (try dg.typeToCType(ty, .complete)).cast(CType.Payload.Child).?.data; - const decl_cty = try dg.typeToIndex(decl_ty, .complete); - const need_cast = child_cty != decl_cty and - (dg.indexToCType(child_cty).tag() != .function or dg.indexToCType(decl_cty).tag() != .function); + const elem_ctype = (try dg.ctypeFromType(ty, .complete)).info(ctype_pool).pointer.elem_ctype; + const decl_ctype = try dg.ctypeFromType(decl_ty, .complete); + const need_cast = !elem_ctype.eql(decl_ctype) and + (elem_ctype.info(ctype_pool) != .function or decl_ctype.info(ctype_pool) != .function); if (need_cast) { try writer.writeAll("(("); try dg.renderType(writer, ty); @@ -720,31 +717,31 @@ pub const DeclGen = struct { const zcu = dg.zcu; const ip = &zcu.intern_pool; const ptr_ty = Type.fromInterned(ip.typeOf(ptr_val)); - const ptr_cty = try dg.typeToIndex(ptr_ty, .complete); - const ptr_child_cty = dg.indexToCType(ptr_cty).cast(CType.Payload.Child).?.data; + const ptr_ctype = try dg.ctypeFromType(ptr_ty, .complete); + const ptr_child_ctype = ptr_ctype.info(&dg.ctype_pool).pointer.elem_ctype; const ptr = ip.indexToKey(ptr_val).ptr; switch (ptr.addr) { .decl => |d| try dg.renderDeclValue(writer, Value.fromInterned(ptr_val), d, location), .anon_decl => |anon_decl| try dg.renderAnonDeclValue(writer, Value.fromInterned(ptr_val), anon_decl, location), .int => |int| { try writer.writeByte('('); - try dg.renderCType(writer, ptr_cty); + try dg.renderCType(writer, ptr_ctype); try writer.print("){x}", .{try dg.fmtIntLiteral(Value.fromInterned(int), .Other)}); }, .eu_payload, .opt_payload => |base| { const ptr_base_ty = Type.fromInterned(ip.typeOf(base)); const base_ty = ptr_base_ty.childType(zcu); // Ensure complete type definition is visible before accessing fields. - _ = try dg.typeToIndex(base_ty, .complete); + _ = try dg.ctypeFromType(base_ty, .complete); const payload_ty = switch (ptr.addr) { .eu_payload => base_ty.errorUnionPayload(zcu), .opt_payload => base_ty.optionalChild(zcu), else => unreachable, }; - const payload_cty = try dg.typeToIndex(payload_ty, .forward); - if (ptr_child_cty != payload_cty) { + const payload_ctype = try dg.ctypeFromType(payload_ty, .forward); + if (!ptr_child_ctype.eql(payload_ctype)) { try writer.writeByte('('); - try dg.renderCType(writer, ptr_cty); + try dg.renderCType(writer, ptr_ctype); try writer.writeByte(')'); } try writer.writeAll("&("); @@ -754,10 +751,10 @@ pub const DeclGen = struct { .elem => |elem| { const ptr_base_ty = Type.fromInterned(ip.typeOf(elem.base)); const elem_ty = ptr_base_ty.elemType2(zcu); - const elem_cty = try dg.typeToIndex(elem_ty, .forward); - if (ptr_child_cty != elem_cty) { + const elem_ctype = try dg.ctypeFromType(elem_ty, .forward); + if (!ptr_child_ctype.eql(elem_ctype)) { try writer.writeByte('('); - try dg.renderCType(writer, ptr_cty); + try dg.renderCType(writer, ptr_ctype); try writer.writeByte(')'); } try writer.writeAll("&("); @@ -769,14 +766,14 @@ pub const DeclGen = struct { .field => |field| { const ptr_base_ty = Type.fromInterned(ip.typeOf(field.base)); const base_ty = ptr_base_ty.childType(zcu); - // Ensure complete type definition is visible before accessing fields. - _ = try dg.typeToIndex(base_ty, .complete); + // Ensure complete type definition is available before accessing fields. + _ = try dg.ctypeFromType(base_ty, .complete); switch (fieldLocation(ptr_base_ty, ptr_ty, @as(u32, @intCast(field.index)), zcu)) { .begin => { - const ptr_base_cty = try dg.typeToIndex(ptr_base_ty, .complete); - if (ptr_cty != ptr_base_cty) { + const ptr_base_ctype = try dg.ctypeFromType(ptr_base_ty, .complete); + if (!ptr_ctype.eql(ptr_base_ctype)) { try writer.writeByte('('); - try dg.renderCType(writer, ptr_cty); + try dg.renderCType(writer, ptr_ctype); try writer.writeByte(')'); } try dg.renderParentPtr(writer, field.base, location); @@ -797,10 +794,10 @@ pub const DeclGen = struct { }, else => unreachable, }; - const field_cty = try dg.typeToIndex(field_ty, .forward); - if (ptr_child_cty != field_cty) { + const field_ctype = try dg.ctypeFromType(field_ty, .forward); + if (!ptr_child_ctype.eql(field_ctype)) { try writer.writeByte('('); - try dg.renderCType(writer, ptr_cty); + try dg.renderCType(writer, ptr_ctype); try writer.writeByte(')'); } try writer.writeAll("&("); @@ -810,15 +807,15 @@ pub const DeclGen = struct { }, .byte_offset => |byte_offset| { const u8_ptr_ty = try zcu.adjustPtrTypeChild(ptr_ty, Type.u8); - const u8_ptr_cty = try dg.typeToIndex(u8_ptr_ty, .complete); + const u8_ptr_ctype = try dg.ctypeFromType(u8_ptr_ty, .complete); - if (ptr_cty != u8_ptr_cty) { + if (!ptr_ctype.eql(u8_ptr_ctype)) { try writer.writeByte('('); - try dg.renderCType(writer, ptr_cty); + try dg.renderCType(writer, ptr_ctype); try writer.writeByte(')'); } try writer.writeAll("(("); - try dg.renderCType(writer, u8_ptr_cty); + try dg.renderCType(writer, u8_ptr_ctype); try writer.writeByte(')'); try dg.renderParentPtr(writer, field.base, location); try writer.print(" + {})", .{ @@ -826,10 +823,10 @@ pub const DeclGen = struct { }); }, .end => { - const ptr_base_cty = try dg.typeToIndex(ptr_base_ty, .complete); - if (ptr_cty != ptr_base_cty) { + const ptr_base_ctype = try dg.ctypeFromType(ptr_base_ty, .complete); + if (!ptr_ctype.eql(ptr_base_ctype)) { try writer.writeByte('('); - try dg.renderCType(writer, ptr_cty); + try dg.renderCType(writer, ptr_ctype); try writer.writeByte(')'); } try writer.writeAll("(("); @@ -1207,8 +1204,8 @@ pub const DeclGen = struct { try writer.writeByte('}'); }, .struct_type => { - const struct_type = ip.loadStructType(ty.toIntern()); - switch (struct_type.layout) { + const loaded_struct = ip.loadStructType(ty.toIntern()); + switch (loaded_struct.layout) { .auto, .@"extern" => { if (!location.isInitializer()) { try writer.writeByte('('); @@ -1217,13 +1214,14 @@ pub const DeclGen = struct { } try writer.writeByte('{'); - var empty = true; - for (0..struct_type.field_types.len) |field_index| { - const field_ty = Type.fromInterned(struct_type.field_types.get(ip)[field_index]); - if (struct_type.fieldIsComptime(ip, field_index)) continue; + var field_it = loaded_struct.iterateRuntimeOrder(ip); + var need_comma = false; + while (field_it.next()) |field_index| { + const field_ty = Type.fromInterned(loaded_struct.field_types.get(ip)[field_index]); if (!field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; - if (!empty) try writer.writeByte(','); + if (need_comma) try writer.writeByte(','); + need_comma = true; const field_val = switch (ip.indexToKey(val.toIntern()).aggregate.storage) { .bytes => |bytes| try ip.get(zcu.gpa, .{ .int = .{ .ty = field_ty.toIntern(), @@ -1233,8 +1231,6 @@ pub const DeclGen = struct { .repeated_elem => |elem| elem, }; try dg.renderValue(writer, Value.fromInterned(field_val), initializer_type); - - empty = false; } try writer.writeByte('}'); }, @@ -1247,8 +1243,8 @@ pub const DeclGen = struct { var bit_offset: u64 = 0; var eff_num_fields: usize = 0; - for (0..struct_type.field_types.len) |field_index| { - const field_ty = Type.fromInterned(struct_type.field_types.get(ip)[field_index]); + for (0..loaded_struct.field_types.len) |field_index| { + const field_ty = Type.fromInterned(loaded_struct.field_types.get(ip)[field_index]); if (!field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; eff_num_fields += 1; } @@ -1268,8 +1264,8 @@ pub const DeclGen = struct { var eff_index: usize = 0; var needs_closing_paren = false; - for (0..struct_type.field_types.len) |field_index| { - const field_ty = Type.fromInterned(struct_type.field_types.get(ip)[field_index]); + for (0..loaded_struct.field_types.len) |field_index| { + const field_ty = Type.fromInterned(loaded_struct.field_types.get(ip)[field_index]); if (!field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; const field_val = switch (ip.indexToKey(val.toIntern()).aggregate.storage) { @@ -1304,8 +1300,8 @@ pub const DeclGen = struct { try writer.writeByte('('); // a << a_off | b << b_off | c << c_off var empty = true; - for (0..struct_type.field_types.len) |field_index| { - const field_ty = Type.fromInterned(struct_type.field_types.get(ip)[field_index]); + for (0..loaded_struct.field_types.len) |field_index| { + const field_ty = Type.fromInterned(loaded_struct.field_types.get(ip)[field_index]); if (!field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; if (!empty) try writer.writeAll(" | "); @@ -1341,10 +1337,10 @@ pub const DeclGen = struct { else => unreachable, }, .un => |un| { - const union_obj = zcu.typeToUnion(ty).?; + const loaded_union = ip.loadUnionType(ty.toIntern()); if (un.tag == .none) { const backing_ty = try ty.unionBackingType(zcu); - switch (union_obj.getLayout(ip)) { + switch (loaded_union.getLayout(ip)) { .@"packed" => { if (!location.isInitializer()) { try writer.writeByte('('); @@ -1376,10 +1372,10 @@ pub const DeclGen = struct { try writer.writeByte(')'); } - const field_index = zcu.unionTagFieldIndex(union_obj, Value.fromInterned(un.tag)).?; - const field_ty = Type.fromInterned(union_obj.field_types.get(ip)[field_index]); - const field_name = union_obj.loadTagType(ip).names.get(ip)[field_index]; - if (union_obj.getLayout(ip) == .@"packed") { + const field_index = zcu.unionTagFieldIndex(loaded_union, Value.fromInterned(un.tag)).?; + const field_ty = Type.fromInterned(loaded_union.field_types.get(ip)[field_index]); + const field_name = loaded_union.loadTagType(ip).names.get(ip)[field_index]; + if (loaded_union.getLayout(ip) == .@"packed") { if (field_ty.hasRuntimeBits(zcu)) { if (field_ty.isPtrAtRuntime(zcu)) { try writer.writeByte('('); @@ -1399,7 +1395,7 @@ pub const DeclGen = struct { try writer.writeByte('{'); if (ty.unionTagTypeSafety(zcu)) |_| { - const layout = zcu.getUnionLayout(union_obj); + const layout = zcu.getUnionLayout(loaded_union); if (layout.tag_size != 0) { try writer.writeAll(" .tag = "); try dg.renderValue(writer, Value.fromInterned(un.tag), initializer_type); @@ -1412,8 +1408,8 @@ pub const DeclGen = struct { try writer.print(" .{ } = ", .{fmtIdent(ip.stringToSlice(field_name))}); try dg.renderValue(writer, Value.fromInterned(un.val), initializer_type); try writer.writeByte(' '); - } else for (0..union_obj.field_types.len) |this_field_index| { - const this_field_ty = Type.fromInterned(union_obj.field_types.get(ip)[this_field_index]); + } else for (0..loaded_union.field_types.len) |this_field_index| { + const this_field_ty = Type.fromInterned(loaded_union.field_types.get(ip)[this_field_index]); if (!this_field_ty.hasRuntimeBits(zcu)) continue; try dg.renderUndefValue(writer, this_field_ty, initializer_type); break; @@ -1445,12 +1441,14 @@ pub const DeclGen = struct { .ReleaseFast, .ReleaseSmall => false, }; - switch (ty.zigTypeTag(zcu)) { - .Bool => try writer.writeAll(if (safety_on) "0xaa" else "false"), - .Int, .Enum, .ErrorSet => try writer.print("{x}", .{ - try dg.fmtIntLiteral(try zcu.undefValue(ty), location), - }), - .Float => { + switch (ty.toIntern()) { + .c_longdouble_type, + .f16_type, + .f32_type, + .f64_type, + .f80_type, + .f128_type, + => { const bits = ty.floatBits(target.*); // All unsigned ints matching float types are pre-allocated. const repr_ty = zcu.intType(.unsigned, bits) catch unreachable; @@ -1468,49 +1466,90 @@ pub const DeclGen = struct { } try writer.writeAll(", "); try dg.renderUndefValue(writer, repr_ty, .FunctionArgument); - try writer.writeByte(')'); + return writer.writeByte(')'); }, - .Pointer => if (ty.isSlice(zcu)) { - if (!location.isInitializer()) { - try writer.writeByte('('); + .bool_type => try writer.writeAll(if (safety_on) "0xaa" else "false"), + else => switch (ip.indexToKey(ty.toIntern())) { + .simple_type, + .int_type, + .enum_type, + .error_set_type, + .inferred_error_set_type, + => return writer.print("{x}", .{ + try dg.fmtIntLiteral(try zcu.undefValue(ty), location), + }), + .ptr_type => if (ty.isSlice(zcu)) { + if (!location.isInitializer()) { + try writer.writeByte('('); + try dg.renderType(writer, ty); + try writer.writeByte(')'); + } + + try writer.writeAll("{("); + const ptr_ty = ty.slicePtrFieldType(zcu); + try dg.renderType(writer, ptr_ty); + return writer.print("){x}, {0x}}}", .{ + try dg.fmtIntLiteral(try zcu.undefValue(Type.usize), .Other), + }); + } else { + try writer.writeAll("(("); try dg.renderType(writer, ty); - try writer.writeByte(')'); - } + return writer.print("){x})", .{ + try dg.fmtIntLiteral(try zcu.undefValue(Type.usize), .Other), + }); + }, + .opt_type => { + const payload_ty = ty.optionalChild(zcu); - try writer.writeAll("{("); - const ptr_ty = ty.slicePtrFieldType(zcu); - try dg.renderType(writer, ptr_ty); - try writer.print("){x}, {0x}}}", .{try dg.fmtIntLiteral(try zcu.undefValue(Type.usize), .Other)}); - } else { - try writer.writeAll("(("); - try dg.renderType(writer, ty); - try writer.print("){x})", .{try dg.fmtIntLiteral(try zcu.undefValue(Type.usize), .Other)}); - }, - .Optional => { - const payload_ty = ty.optionalChild(zcu); + if (!payload_ty.hasRuntimeBitsIgnoreComptime(zcu)) { + return dg.renderUndefValue(writer, Type.bool, location); + } - if (!payload_ty.hasRuntimeBitsIgnoreComptime(zcu)) { - return dg.renderUndefValue(writer, Type.bool, location); - } + if (ty.optionalReprIsPayload(zcu)) { + return dg.renderUndefValue(writer, payload_ty, location); + } - if (ty.optionalReprIsPayload(zcu)) { - return dg.renderUndefValue(writer, payload_ty, location); - } + if (!location.isInitializer()) { + try writer.writeByte('('); + try dg.renderType(writer, ty); + try writer.writeByte(')'); + } - if (!location.isInitializer()) { - try writer.writeByte('('); - try dg.renderType(writer, ty); - try writer.writeByte(')'); - } + try writer.writeAll("{ .payload = "); + try dg.renderUndefValue(writer, payload_ty, initializer_type); + try writer.writeAll(", .is_null = "); + try dg.renderUndefValue(writer, Type.bool, initializer_type); + return writer.writeAll(" }"); + }, + .struct_type => { + const loaded_struct = ip.loadStructType(ty.toIntern()); + switch (loaded_struct.layout) { + .auto, .@"extern" => { + if (!location.isInitializer()) { + try writer.writeByte('('); + try dg.renderType(writer, ty); + try writer.writeByte(')'); + } - try writer.writeAll("{ .payload = "); - try dg.renderUndefValue(writer, payload_ty, initializer_type); - try writer.writeAll(", .is_null = "); - try dg.renderUndefValue(writer, Type.bool, initializer_type); - try writer.writeAll(" }"); - }, - .Struct => switch (ty.containerLayout(zcu)) { - .auto, .@"extern" => { + try writer.writeByte('{'); + var field_it = loaded_struct.iterateRuntimeOrder(ip); + var need_comma = false; + while (field_it.next()) |field_index| { + const field_ty = Type.fromInterned(loaded_struct.field_types.get(ip)[field_index]); + if (!field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; + + if (need_comma) try writer.writeByte(','); + need_comma = true; + try dg.renderUndefValue(writer, field_ty, initializer_type); + } + return writer.writeByte('}'); + }, + .@"packed" => return writer.print("{x}", .{ + try dg.fmtIntLiteral(try zcu.undefValue(ty), .Other), + }), + } + }, + .anon_struct_type => |anon_struct_info| { if (!location.isInitializer()) { try writer.writeByte('('); try dg.renderType(writer, ty); @@ -1518,116 +1557,125 @@ pub const DeclGen = struct { } try writer.writeByte('{'); - var empty = true; - for (0..ty.structFieldCount(zcu)) |field_index| { - if (ty.structFieldIsComptime(field_index, zcu)) continue; - const field_ty = ty.structFieldType(field_index, zcu); - if (!field_ty.hasRuntimeBits(zcu)) continue; + var need_comma = false; + for (0..anon_struct_info.types.len) |field_index| { + if (anon_struct_info.values.get(ip)[field_index] != .none) continue; + const field_ty = Type.fromInterned(anon_struct_info.types.get(ip)[field_index]); + if (!field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; - if (!empty) try writer.writeByte(','); + if (need_comma) try writer.writeByte(','); + need_comma = true; try dg.renderUndefValue(writer, field_ty, initializer_type); - - empty = false; } - - try writer.writeByte('}'); + return writer.writeByte('}'); }, - .@"packed" => try writer.print("{x}", .{ - try dg.fmtIntLiteral(try zcu.undefValue(ty), .Other), - }), - }, - .Union => { - if (!location.isInitializer()) { - try writer.writeByte('('); - try dg.renderType(writer, ty); - try writer.writeByte(')'); - } + .union_type => { + const loaded_union = ip.loadUnionType(ty.toIntern()); + switch (loaded_union.getLayout(ip)) { + .auto, .@"extern" => { + if (!location.isInitializer()) { + try writer.writeByte('('); + try dg.renderType(writer, ty); + try writer.writeByte(')'); + } - try writer.writeByte('{'); - if (ty.unionTagTypeSafety(zcu)) |tag_ty| { - const layout = ty.unionGetLayout(zcu); - if (layout.tag_size != 0) { - try writer.writeAll(" .tag = "); - try dg.renderUndefValue(writer, tag_ty, initializer_type); + try writer.writeByte('{'); + if (ty.unionTagTypeSafety(zcu)) |tag_ty| { + const layout = ty.unionGetLayout(zcu); + if (layout.tag_size != 0) { + try writer.writeAll(" .tag = "); + try dg.renderUndefValue(writer, tag_ty, initializer_type); + } + if (ty.unionHasAllZeroBitFieldTypes(zcu)) return try writer.writeByte('}'); + if (layout.tag_size != 0) try writer.writeByte(','); + try writer.writeAll(" .payload = {"); + } + for (0..loaded_union.field_types.len) |field_index| { + const field_ty = Type.fromInterned(loaded_union.field_types.get(ip)[field_index]); + if (!field_ty.hasRuntimeBits(zcu)) continue; + try dg.renderUndefValue(writer, field_ty, initializer_type); + break; + } + if (ty.unionTagTypeSafety(zcu)) |_| try writer.writeByte('}'); + return writer.writeByte('}'); + }, + .@"packed" => return writer.print("{x}", .{ + try dg.fmtIntLiteral(try zcu.undefValue(ty), .Other), + }), } - if (ty.unionHasAllZeroBitFieldTypes(zcu)) return try writer.writeByte('}'); - if (layout.tag_size != 0) try writer.writeByte(','); - try writer.writeAll(" .payload = {"); - } - const union_obj = zcu.typeToUnion(ty).?; - for (0..union_obj.field_types.len) |field_index| { - const field_ty = Type.fromInterned(union_obj.field_types.get(ip)[field_index]); - if (!field_ty.hasRuntimeBits(zcu)) continue; - try dg.renderUndefValue(writer, field_ty, initializer_type); - break; - } - if (ty.unionTagTypeSafety(zcu)) |_| try writer.writeByte('}'); - try writer.writeByte('}'); - }, - .ErrorUnion => { - const payload_ty = ty.errorUnionPayload(zcu); - const error_ty = ty.errorUnionSet(zcu); - - if (!payload_ty.hasRuntimeBitsIgnoreComptime(zcu)) { - return dg.renderUndefValue(writer, error_ty, location); - } + }, + .error_union_type => { + const payload_ty = ty.errorUnionPayload(zcu); + const error_ty = ty.errorUnionSet(zcu); - if (!location.isInitializer()) { - try writer.writeByte('('); - try dg.renderType(writer, ty); - try writer.writeByte(')'); - } + if (!payload_ty.hasRuntimeBitsIgnoreComptime(zcu)) { + return dg.renderUndefValue(writer, error_ty, location); + } - try writer.writeAll("{ .payload = "); - try dg.renderUndefValue(writer, payload_ty, initializer_type); - try writer.writeAll(", .error = "); - try dg.renderUndefValue(writer, error_ty, initializer_type); - try writer.writeAll(" }"); - }, - .Array, .Vector => { - const ai = ty.arrayInfo(zcu); - if (ai.elem_type.eql(Type.u8, zcu)) { - const c_len = ty.arrayLenIncludingSentinel(zcu); - var literal = stringLiteral(writer, c_len); - try literal.start(); - var index: u64 = 0; - while (index < c_len) : (index += 1) - try literal.writeChar(0xaa); - try literal.end(); - } else { if (!location.isInitializer()) { try writer.writeByte('('); try dg.renderType(writer, ty); try writer.writeByte(')'); } - try writer.writeByte('{'); - const c_len = ty.arrayLenIncludingSentinel(zcu); - var index: u64 = 0; - while (index < c_len) : (index += 1) { - if (index > 0) try writer.writeAll(", "); - try dg.renderUndefValue(writer, ty.childType(zcu), initializer_type); + try writer.writeAll("{ .payload = "); + try dg.renderUndefValue(writer, payload_ty, initializer_type); + try writer.writeAll(", .error = "); + try dg.renderUndefValue(writer, error_ty, initializer_type); + return writer.writeAll(" }"); + }, + .array_type, .vector_type => { + const ai = ty.arrayInfo(zcu); + if (ai.elem_type.eql(Type.u8, zcu)) { + const c_len = ty.arrayLenIncludingSentinel(zcu); + var literal = stringLiteral(writer, c_len); + try literal.start(); + var index: u64 = 0; + while (index < c_len) : (index += 1) + try literal.writeChar(0xaa); + return literal.end(); + } else { + if (!location.isInitializer()) { + try writer.writeByte('('); + try dg.renderType(writer, ty); + try writer.writeByte(')'); + } + + try writer.writeByte('{'); + const c_len = ty.arrayLenIncludingSentinel(zcu); + var index: u64 = 0; + while (index < c_len) : (index += 1) { + if (index > 0) try writer.writeAll(", "); + try dg.renderUndefValue(writer, ty.childType(zcu), initializer_type); + } + return writer.writeByte('}'); } - try writer.writeByte('}'); - } + }, + .anyframe_type, + .opaque_type, + .func_type, + => unreachable, + + .undef, + .simple_value, + .variable, + .extern_func, + .func, + .int, + .err, + .error_union, + .enum_literal, + .enum_tag, + .empty_enum_value, + .float, + .ptr, + .slice, + .opt, + .aggregate, + .un, + .memoized_call, + => unreachable, }, - .ComptimeInt, - .ComptimeFloat, - .Type, - .EnumLiteral, - .Void, - .NoReturn, - .Undefined, - .Null, - .Opaque, - => unreachable, - - .Fn, - .Frame, - .AnyFrame, - => |tag| return dg.fail("TODO: C backend: implement value of type {s}", .{ - @tagName(tag), - }), } } @@ -1641,13 +1689,12 @@ pub const DeclGen = struct { ident: []const u8, }, ) !void { - const store = &dg.ctypes.set; const zcu = dg.zcu; const ip = &zcu.intern_pool; const fn_decl = zcu.declPtr(fn_decl_index); const fn_ty = fn_decl.typeOf(zcu); - const fn_cty_idx = try dg.typeToIndex(fn_ty, kind); + const fn_ctype = try dg.ctypeFromType(fn_ty, kind); const fn_info = zcu.typeToFunc(fn_ty).?; if (fn_info.cc == .Naked) { @@ -1661,7 +1708,7 @@ pub const DeclGen = struct { try w.writeAll("zig_cold "); if (fn_info.return_type == .noreturn_type) try w.writeAll("zig_noreturn "); - var trailing = try renderTypePrefix(dg.pass, store.*, zcu, w, fn_cty_idx, .suffix, .{}); + var trailing = try renderTypePrefix(dg.pass, &dg.ctype_pool, zcu, w, fn_ctype, .suffix, .{}); if (toCallingConvention(fn_info.cc)) |call_conv| { try w.print("{}zig_callconv({s})", .{ trailing, call_conv }); @@ -1670,7 +1717,7 @@ pub const DeclGen = struct { switch (kind) { .forward => {}, - .complete => if (fn_decl.alignment.toByteUnitsOptional()) |a| { + .complete => if (fn_decl.alignment.toByteUnits()) |a| { try w.print("{}zig_align_fn({})", .{ trailing, a }); trailing = .maybe_space; }, @@ -1687,10 +1734,10 @@ pub const DeclGen = struct { try renderTypeSuffix( dg.pass, - store.*, + &dg.ctype_pool, zcu, w, - fn_cty_idx, + fn_ctype, .suffix, CQualifiers.init(.{ .@"const" = switch (kind) { .forward => false, @@ -1701,7 +1748,7 @@ pub const DeclGen = struct { switch (kind) { .forward => { - if (fn_decl.alignment.toByteUnitsOptional()) |a| { + if (fn_decl.alignment.toByteUnits()) |a| { try w.print(" zig_align_fn({})", .{a}); } switch (name) { @@ -1748,20 +1795,13 @@ pub const DeclGen = struct { } } - fn indexToCType(dg: *DeclGen, idx: CType.Index) CType { - return dg.ctypes.indexToCType(idx); + fn ctypeFromType(dg: *DeclGen, ty: Type, kind: CType.Kind) !CType { + defer std.debug.assert(dg.scratch.items.len == 0); + return dg.ctype_pool.fromType(dg.gpa, &dg.scratch, ty, dg.zcu, dg.mod, kind); } - fn typeToIndex(dg: *DeclGen, ty: Type, kind: CType.Kind) !CType.Index { - return dg.ctypes.typeToIndex(dg.gpa, ty, dg.zcu, dg.mod, kind); - } - - fn typeToCType(dg: *DeclGen, ty: Type, kind: CType.Kind) !CType { - return dg.ctypes.typeToCType(dg.gpa, ty, dg.zcu, dg.mod, kind); - } - - fn byteSize(dg: *DeclGen, cty: CType) u64 { - return cty.byteSize(dg.ctypes.set, dg.mod); + fn byteSize(dg: *DeclGen, ctype: CType) u64 { + return ctype.byteSize(&dg.ctype_pool, dg.mod); } /// Renders a type as a single identifier, generating intermediate typedefs @@ -1776,14 +1816,12 @@ pub const DeclGen = struct { /// | `renderType` | "uint8_t *" | "uint8_t *[10]" | /// fn renderType(dg: *DeclGen, w: anytype, t: Type) error{ OutOfMemory, AnalysisFail }!void { - try dg.renderCType(w, try dg.typeToIndex(t, .complete)); + try dg.renderCType(w, try dg.ctypeFromType(t, .complete)); } - fn renderCType(dg: *DeclGen, w: anytype, idx: CType.Index) error{ OutOfMemory, AnalysisFail }!void { - const store = &dg.ctypes.set; - const zcu = dg.zcu; - _ = try renderTypePrefix(dg.pass, store.*, zcu, w, idx, .suffix, .{}); - try renderTypeSuffix(dg.pass, store.*, zcu, w, idx, .suffix, .{}); + fn renderCType(dg: *DeclGen, w: anytype, ctype: CType) error{ OutOfMemory, AnalysisFail }!void { + _ = try renderTypePrefix(dg.pass, &dg.ctype_pool, dg.zcu, w, ctype, .suffix, .{}); + try renderTypeSuffix(dg.pass, &dg.ctype_pool, dg.zcu, w, ctype, .suffix, .{}); } const IntCastContext = union(enum) { @@ -1905,32 +1943,37 @@ pub const DeclGen = struct { alignment: Alignment, kind: CType.Kind, ) error{ OutOfMemory, AnalysisFail }!void { - const zcu = dg.zcu; - const alignas = CType.AlignAs.init(alignment, ty.abiAlignment(zcu)); - try dg.renderCTypeAndName(w, try dg.typeToIndex(ty, kind), name, qualifiers, alignas); + try dg.renderCTypeAndName( + w, + try dg.ctypeFromType(ty, kind), + name, + qualifiers, + CType.AlignAs.fromAlignment(.{ + .@"align" = alignment, + .abi = ty.abiAlignment(dg.zcu), + }), + ); } fn renderCTypeAndName( dg: *DeclGen, w: anytype, - cty_idx: CType.Index, + ctype: CType, name: CValue, qualifiers: CQualifiers, alignas: CType.AlignAs, ) error{ OutOfMemory, AnalysisFail }!void { - const store = &dg.ctypes.set; - const zcu = dg.zcu; - switch (alignas.abiOrder()) { .lt => try w.print("zig_under_align({}) ", .{alignas.toByteUnits()}), .eq => {}, .gt => try w.print("zig_align({}) ", .{alignas.toByteUnits()}), } - const trailing = try renderTypePrefix(dg.pass, store.*, zcu, w, cty_idx, .suffix, qualifiers); - try w.print("{}", .{trailing}); + try w.print("{}", .{ + try renderTypePrefix(dg.pass, &dg.ctype_pool, dg.zcu, w, ctype, .suffix, qualifiers), + }); try dg.writeName(w, name); - try renderTypeSuffix(dg.pass, store.*, zcu, w, cty_idx, .suffix, .{}); + try renderTypeSuffix(dg.pass, &dg.ctype_pool, dg.zcu, w, ctype, .suffix, .{}); } fn declIsGlobal(dg: *DeclGen, val: Value) bool { @@ -2094,33 +2137,31 @@ pub const DeclGen = struct { } fn renderTypeForBuiltinFnName(dg: *DeclGen, writer: anytype, ty: Type) !void { - try dg.renderCTypeForBuiltinFnName(writer, try dg.typeToCType(ty, .complete)); + try dg.renderCTypeForBuiltinFnName(writer, try dg.ctypeFromType(ty, .complete)); } - fn renderCTypeForBuiltinFnName(dg: *DeclGen, writer: anytype, cty: CType) !void { - switch (cty.tag()) { - else => try writer.print("{c}{d}", .{ - if (cty.isBool()) + fn renderCTypeForBuiltinFnName(dg: *DeclGen, writer: anytype, ctype: CType) !void { + switch (ctype.info(&dg.ctype_pool)) { + else => |ctype_info| try writer.print("{c}{d}", .{ + if (ctype.isBool()) signAbbrev(.unsigned) - else if (cty.isInteger()) - signAbbrev(cty.signedness(dg.mod)) - else if (cty.isFloat()) + else if (ctype.isInteger()) + signAbbrev(ctype.signedness(dg.mod)) + else if (ctype.isFloat()) @as(u8, 'f') - else if (cty.isPointer()) + else if (ctype_info == .pointer) @as(u8, 'p') else - return dg.fail("TODO: CBE: implement renderTypeForBuiltinFnName for type {}", .{ - cty.tag(), - }), - if (cty.isFloat()) cty.floatActiveBits(dg.mod) else dg.byteSize(cty) * 8, + return dg.fail("TODO: CBE: implement renderTypeForBuiltinFnName for {s} type", .{@tagName(ctype_info)}), + if (ctype.isFloat()) ctype.floatActiveBits(dg.mod) else dg.byteSize(ctype) * 8, }), .array => try writer.writeAll("big"), } } fn renderBuiltinInfo(dg: *DeclGen, writer: anytype, ty: Type, info: BuiltinInfo) !void { - const cty = try dg.typeToCType(ty, .complete); - const is_big = cty.tag() == .array; + const ctype = try dg.ctypeFromType(ty, .complete); + const is_big = ctype.info(&dg.ctype_pool) == .array; switch (info) { .none => if (!is_big) return, .bits => {}, @@ -2155,7 +2196,7 @@ pub const DeclGen = struct { .dg = dg, .int_info = ty.intInfo(zcu), .kind = kind, - .cty = try dg.typeToCType(ty, kind), + .ctype = try dg.ctypeFromType(ty, kind), .val = val, } }; } @@ -2184,122 +2225,74 @@ const RenderCTypeTrailing = enum { } } }; -fn renderTypeName( +fn renderAlignedTypeName(w: anytype, ctype: CType) !void { + try w.print("anon__aligned_{d}", .{@intFromEnum(ctype.index)}); +} +fn renderFwdDeclTypeName( zcu: *Zcu, w: anytype, - idx: CType.Index, - cty: CType, + ctype: CType, + fwd_decl: CType.Info.FwdDecl, attributes: []const u8, ) !void { - switch (cty.tag()) { - else => unreachable, - - .fwd_anon_struct, - .fwd_anon_union, - => |tag| try w.print("{s} {s}anon__lazy_{d}", .{ - @tagName(tag)["fwd_anon_".len..], - attributes, - idx, + try w.print("{s} {s}", .{ @tagName(fwd_decl.tag), attributes }); + switch (fwd_decl.name) { + .anon => try w.print("anon__lazy_{d}", .{@intFromEnum(ctype.index)}), + .owner_decl => |owner_decl| try w.print("{}__{d}", .{ + fmtIdent(zcu.intern_pool.stringToSlice(zcu.declPtr(owner_decl).name)), + @intFromEnum(owner_decl), }), - - .fwd_struct, - .fwd_union, - => |tag| { - const owner_decl = cty.cast(CType.Payload.FwdDecl).?.data; - try w.print("{s} {s}{}__{d}", .{ - @tagName(tag)["fwd_".len..], - attributes, - fmtIdent(zcu.intern_pool.stringToSlice(zcu.declPtr(owner_decl).name)), - @intFromEnum(owner_decl), - }); - }, } } fn renderTypePrefix( pass: DeclGen.Pass, - store: CType.Store.Set, + ctype_pool: *const CType.Pool, zcu: *Zcu, w: anytype, - idx: CType.Index, + ctype: CType, parent_fix: CTypeFix, qualifiers: CQualifiers, ) @TypeOf(w).Error!RenderCTypeTrailing { var trailing = RenderCTypeTrailing.maybe_space; + switch (ctype.info(ctype_pool)) { + .basic => |basic_info| try w.writeAll(@tagName(basic_info)), - const cty = store.indexToCType(idx); - switch (cty.tag()) { - .void, - .char, - .@"signed char", - .short, - .int, - .long, - .@"long long", - ._Bool, - .@"unsigned char", - .@"unsigned short", - .@"unsigned int", - .@"unsigned long", - .@"unsigned long long", - .float, - .double, - .@"long double", - .bool, - .size_t, - .ptrdiff_t, - .uint8_t, - .int8_t, - .uint16_t, - .int16_t, - .uint32_t, - .int32_t, - .uint64_t, - .int64_t, - .uintptr_t, - .intptr_t, - .zig_u128, - .zig_i128, - .zig_f16, - .zig_f32, - .zig_f64, - .zig_f80, - .zig_f128, - .zig_c_longdouble, - => |tag| try w.writeAll(@tagName(tag)), - - .pointer, - .pointer_const, - .pointer_volatile, - .pointer_const_volatile, - => |tag| { - const child_idx = cty.cast(CType.Payload.Child).?.data; - const child_trailing = try renderTypePrefix( + .pointer => |pointer_info| { + try w.print("{}*", .{try renderTypePrefix( pass, - store, + ctype_pool, zcu, w, - child_idx, + pointer_info.elem_ctype, .prefix, - CQualifiers.init(.{ .@"const" = switch (tag) { - .pointer, .pointer_volatile => false, - .pointer_const, .pointer_const_volatile => true, - else => unreachable, - }, .@"volatile" = switch (tag) { - .pointer, .pointer_const => false, - .pointer_volatile, .pointer_const_volatile => true, - else => unreachable, - } }), - ); - try w.print("{}*", .{child_trailing}); + CQualifiers.init(.{ + .@"const" = pointer_info.@"const", + .@"volatile" = pointer_info.@"volatile", + }), + )}); trailing = .no_space; }, - .array, - .vector, - => { - const child_idx = cty.cast(CType.Payload.Sequence).?.data.elem_type; - const child_trailing = - try renderTypePrefix(pass, store, zcu, w, child_idx, .suffix, qualifiers); + .aligned => switch (pass) { + .decl => |decl_index| try w.print("decl__{d}_{d}", .{ + @intFromEnum(decl_index), @intFromEnum(ctype.index), + }), + .anon => |anon_decl| try w.print("anon__{d}_{d}", .{ + @intFromEnum(anon_decl), @intFromEnum(ctype.index), + }), + .flush => try renderAlignedTypeName(w, ctype), + }, + + .array, .vector => |sequence_info| { + const child_trailing = try renderTypePrefix( + pass, + ctype_pool, + zcu, + w, + sequence_info.elem_ctype, + .suffix, + qualifiers, + ); switch (parent_fix) { .prefix => { try w.print("{}(", .{child_trailing}); @@ -2309,56 +2302,46 @@ fn renderTypePrefix( } }, - .fwd_anon_struct, - .fwd_anon_union, - => switch (pass) { - .decl => |decl_index| try w.print("decl__{d}_{d}", .{ @intFromEnum(decl_index), idx }), - .anon => |anon_decl| try w.print("anon__{d}_{d}", .{ @intFromEnum(anon_decl), idx }), - .flush => try renderTypeName(zcu, w, idx, cty, ""), + .fwd_decl => |fwd_decl_info| switch (fwd_decl_info.name) { + .anon => switch (pass) { + .decl => |decl_index| try w.print("decl__{d}_{d}", .{ + @intFromEnum(decl_index), @intFromEnum(ctype.index), + }), + .anon => |anon_decl| try w.print("anon__{d}_{d}", .{ + @intFromEnum(anon_decl), @intFromEnum(ctype.index), + }), + .flush => try renderFwdDeclTypeName(zcu, w, ctype, fwd_decl_info, ""), + }, + .owner_decl => try renderFwdDeclTypeName(zcu, w, ctype, fwd_decl_info, ""), }, - .fwd_struct, - .fwd_union, - => try renderTypeName(zcu, w, idx, cty, ""), - - .unnamed_struct, - .unnamed_union, - .packed_unnamed_struct, - .packed_unnamed_union, - => |tag| { - try w.print("{s} {s}", .{ - @tagName(tag)["unnamed_".len..], - if (cty.isPacked()) "zig_packed(" else "", - }); - try renderAggregateFields(zcu, w, store, cty, 1); - if (cty.isPacked()) try w.writeByte(')'); + .aggregate => |aggregate_info| switch (aggregate_info.name) { + .anon => { + try w.print("{s} {s}", .{ + @tagName(aggregate_info.tag), + if (aggregate_info.@"packed") "zig_packed(" else "", + }); + try renderFields(zcu, w, ctype_pool, aggregate_info, 1); + if (aggregate_info.@"packed") try w.writeByte(')'); + }, + .fwd_decl => |fwd_decl| return renderTypePrefix( + pass, + ctype_pool, + zcu, + w, + fwd_decl, + parent_fix, + qualifiers, + ), }, - .anon_struct, - .anon_union, - .@"struct", - .@"union", - .packed_struct, - .packed_union, - => return renderTypePrefix( - pass, - store, - zcu, - w, - cty.cast(CType.Payload.Aggregate).?.data.fwd_decl, - parent_fix, - qualifiers, - ), - - .function, - .varargs_function, - => { + .function => |function_info| { const child_trailing = try renderTypePrefix( pass, - store, + ctype_pool, zcu, w, - cty.cast(CType.Payload.Function).?.data.return_type, + function_info.return_ctype, .suffix, .{}, ); @@ -2371,170 +2354,107 @@ fn renderTypePrefix( } }, } - var qualifier_it = qualifiers.iterator(); while (qualifier_it.next()) |qualifier| { try w.print("{}{s}", .{ trailing, @tagName(qualifier) }); trailing = .maybe_space; } - return trailing; } fn renderTypeSuffix( pass: DeclGen.Pass, - store: CType.Store.Set, + ctype_pool: *const CType.Pool, zcu: *Zcu, w: anytype, - idx: CType.Index, + ctype: CType, parent_fix: CTypeFix, qualifiers: CQualifiers, ) @TypeOf(w).Error!void { - const cty = store.indexToCType(idx); - switch (cty.tag()) { - .void, - .char, - .@"signed char", - .short, - .int, - .long, - .@"long long", - ._Bool, - .@"unsigned char", - .@"unsigned short", - .@"unsigned int", - .@"unsigned long", - .@"unsigned long long", - .float, - .double, - .@"long double", - .bool, - .size_t, - .ptrdiff_t, - .uint8_t, - .int8_t, - .uint16_t, - .int16_t, - .uint32_t, - .int32_t, - .uint64_t, - .int64_t, - .uintptr_t, - .intptr_t, - .zig_u128, - .zig_i128, - .zig_f16, - .zig_f32, - .zig_f64, - .zig_f80, - .zig_f128, - .zig_c_longdouble, - => {}, - - .pointer, - .pointer_const, - .pointer_volatile, - .pointer_const_volatile, - => try renderTypeSuffix( + switch (ctype.info(ctype_pool)) { + .basic, .aligned, .fwd_decl, .aggregate => {}, + .pointer => |pointer_info| try renderTypeSuffix( pass, - store, + ctype_pool, zcu, w, - cty.cast(CType.Payload.Child).?.data, + pointer_info.elem_ctype, .prefix, .{}, ), - - .array, - .vector, - => { + .array, .vector => |sequence_info| { switch (parent_fix) { .prefix => try w.writeByte(')'), .suffix => {}, } - try w.print("[{}]", .{cty.cast(CType.Payload.Sequence).?.data.len}); - try renderTypeSuffix( - pass, - store, - zcu, - w, - cty.cast(CType.Payload.Sequence).?.data.elem_type, - .suffix, - .{}, - ); + try w.print("[{}]", .{sequence_info.len}); + try renderTypeSuffix(pass, ctype_pool, zcu, w, sequence_info.elem_ctype, .suffix, .{}); }, - - .fwd_anon_struct, - .fwd_anon_union, - .fwd_struct, - .fwd_union, - .unnamed_struct, - .unnamed_union, - .packed_unnamed_struct, - .packed_unnamed_union, - .anon_struct, - .anon_union, - .@"struct", - .@"union", - .packed_struct, - .packed_union, - => {}, - - .function, - .varargs_function, - => |tag| { + .function => |function_info| { switch (parent_fix) { .prefix => try w.writeByte(')'), .suffix => {}, } - const data = cty.cast(CType.Payload.Function).?.data; - try w.writeByte('('); var need_comma = false; - for (data.param_types, 0..) |param_type, param_i| { + for (0..function_info.param_ctypes.len) |param_index| { + const param_type = function_info.param_ctypes.at(param_index, ctype_pool); if (need_comma) try w.writeAll(", "); need_comma = true; const trailing = - try renderTypePrefix(pass, store, zcu, w, param_type, .suffix, qualifiers); - if (qualifiers.contains(.@"const")) try w.print("{}a{d}", .{ trailing, param_i }); - try renderTypeSuffix(pass, store, zcu, w, param_type, .suffix, .{}); + try renderTypePrefix(pass, ctype_pool, zcu, w, param_type, .suffix, qualifiers); + if (qualifiers.contains(.@"const")) try w.print("{}a{d}", .{ trailing, param_index }); + try renderTypeSuffix(pass, ctype_pool, zcu, w, param_type, .suffix, .{}); } - switch (tag) { - .function => {}, - .varargs_function => { - if (need_comma) try w.writeAll(", "); - need_comma = true; - try w.writeAll("..."); - }, - else => unreachable, + if (function_info.varargs) { + if (need_comma) try w.writeAll(", "); + need_comma = true; + try w.writeAll("..."); } if (!need_comma) try w.writeAll("void"); try w.writeByte(')'); - try renderTypeSuffix(pass, store, zcu, w, data.return_type, .suffix, .{}); + try renderTypeSuffix(pass, ctype_pool, zcu, w, function_info.return_ctype, .suffix, .{}); }, } } -fn renderAggregateFields( +fn renderFields( zcu: *Zcu, writer: anytype, - store: CType.Store.Set, - cty: CType, + ctype_pool: *const CType.Pool, + aggregate_info: CType.Info.Aggregate, indent: usize, ) !void { try writer.writeAll("{\n"); - const fields = cty.fields(); - for (fields) |field| { + for (0..aggregate_info.fields.len) |field_index| { + const field_info = aggregate_info.fields.at(field_index, ctype_pool); try writer.writeByteNTimes(' ', indent + 1); - switch (field.alignas.abiOrder()) { - .lt => try writer.print("zig_under_align({}) ", .{field.alignas.toByteUnits()}), - .eq => {}, - .gt => try writer.print("zig_align({}) ", .{field.alignas.toByteUnits()}), + switch (field_info.alignas.abiOrder()) { + .lt => { + std.debug.assert(aggregate_info.@"packed"); + if (field_info.alignas.@"align" != .@"1") try writer.print("zig_under_align({}) ", .{ + field_info.alignas.toByteUnits(), + }); + }, + .eq => if (aggregate_info.@"packed" and field_info.alignas.@"align" != .@"1") + try writer.print("zig_align({}) ", .{field_info.alignas.toByteUnits()}), + .gt => { + std.debug.assert(field_info.alignas.@"align" != .@"1"); + try writer.print("zig_align({}) ", .{field_info.alignas.toByteUnits()}); + }, } - const trailing = try renderTypePrefix(.flush, store, zcu, writer, field.type, .suffix, .{}); - try writer.print("{}{ }", .{ trailing, fmtIdent(mem.span(field.name)) }); - try renderTypeSuffix(.flush, store, zcu, writer, field.type, .suffix, .{}); + const trailing = try renderTypePrefix( + .flush, + ctype_pool, + zcu, + writer, + field_info.ctype, + .suffix, + .{}, + ); + try writer.print("{}{ }", .{ trailing, fmtIdent(field_info.name.slice(ctype_pool)) }); + try renderTypeSuffix(.flush, ctype_pool, zcu, writer, field_info.ctype, .suffix, .{}); try writer.writeAll(";\n"); } try writer.writeByteNTimes(' ', indent); @@ -2544,77 +2464,77 @@ fn renderAggregateFields( pub fn genTypeDecl( zcu: *Zcu, writer: anytype, - global_store: CType.Store.Set, - global_idx: CType.Index, + global_ctype_pool: *const CType.Pool, + global_ctype: CType, pass: DeclGen.Pass, - decl_store: CType.Store.Set, - decl_idx: CType.Index, + decl_ctype_pool: *const CType.Pool, + decl_ctype: CType, found_existing: bool, ) !void { - const global_cty = global_store.indexToCType(global_idx); - switch (global_cty.tag()) { - .fwd_anon_struct => if (pass != .flush) { - try writer.writeAll("typedef "); - _ = try renderTypePrefix(.flush, global_store, zcu, writer, global_idx, .suffix, .{}); - try writer.writeByte(' '); - _ = try renderTypePrefix(pass, decl_store, zcu, writer, decl_idx, .suffix, .{}); - try writer.writeAll(";\n"); - }, - - .fwd_struct, - .fwd_union, - .anon_struct, - .anon_union, - .@"struct", - .@"union", - .packed_struct, - .packed_union, - => |tag| if (!found_existing) { - switch (tag) { - .fwd_struct, - .fwd_union, - => { - const owner_decl = global_cty.cast(CType.Payload.FwdDecl).?.data; - _ = try renderTypePrefix( - .flush, - global_store, - zcu, - writer, - global_idx, - .suffix, - .{}, - ); - try writer.writeAll("; /* "); - try zcu.declPtr(owner_decl).renderFullyQualifiedName(zcu, writer); - try writer.writeAll(" */\n"); - }, - - .anon_struct, - .anon_union, - .@"struct", - .@"union", - .packed_struct, - .packed_union, - => { - const fwd_idx = global_cty.cast(CType.Payload.Aggregate).?.data.fwd_decl; - try renderTypeName( - zcu, - writer, - fwd_idx, - global_store.indexToCType(fwd_idx), - if (global_cty.isPacked()) "zig_packed(" else "", - ); + switch (global_ctype.info(global_ctype_pool)) { + .basic, .pointer, .array, .vector, .function => {}, + .aligned => |aligned_info| { + if (!found_existing) { + try writer.writeAll("typedef "); + try writer.print("{}", .{ + try renderTypePrefix(pass, global_ctype_pool, zcu, writer, aligned_info.ctype, .suffix, .{}), + }); + try renderAlignedTypeName(writer, global_ctype); + try renderTypeSuffix(pass, global_ctype_pool, zcu, writer, aligned_info.ctype, .suffix, .{}); + std.debug.assert(aligned_info.alignas.abiOrder().compare(.lt)); + try writer.print(" zig_under_align({d});\n", .{aligned_info.alignas.toByteUnits()}); + } + switch (pass) { + .decl, .anon => { + try writer.writeAll("typedef "); + _ = try renderTypePrefix(.flush, global_ctype_pool, zcu, writer, global_ctype, .suffix, .{}); try writer.writeByte(' '); - try renderAggregateFields(zcu, writer, global_store, global_cty, 0); - if (global_cty.isPacked()) try writer.writeByte(')'); + _ = try renderTypePrefix(pass, decl_ctype_pool, zcu, writer, decl_ctype, .suffix, .{}); try writer.writeAll(";\n"); }, - - else => unreachable, + .flush => {}, } }, - - else => {}, + .fwd_decl => |fwd_decl_info| switch (fwd_decl_info.name) { + .anon => switch (pass) { + .decl, .anon => { + try writer.writeAll("typedef "); + _ = try renderTypePrefix(.flush, global_ctype_pool, zcu, writer, global_ctype, .suffix, .{}); + try writer.writeByte(' '); + _ = try renderTypePrefix(pass, decl_ctype_pool, zcu, writer, decl_ctype, .suffix, .{}); + try writer.writeAll(";\n"); + }, + .flush => {}, + }, + .owner_decl => |owner_decl_index| if (!found_existing) { + _ = try renderTypePrefix(.flush, global_ctype_pool, zcu, writer, global_ctype, .suffix, .{}); + try writer.writeByte(';'); + const owner_decl = zcu.declPtr(owner_decl_index); + const owner_mod = zcu.namespacePtr(owner_decl.src_namespace).file_scope.mod; + if (!owner_mod.strip) { + try writer.writeAll(" /* "); + try owner_decl.renderFullyQualifiedName(zcu, writer); + try writer.writeAll(" */"); + } + try writer.writeByte('\n'); + }, + }, + .aggregate => |aggregate_info| switch (aggregate_info.name) { + .anon => {}, + .fwd_decl => |fwd_decl| if (!found_existing) { + try renderFwdDeclTypeName( + zcu, + writer, + fwd_decl, + fwd_decl.info(global_ctype_pool).fwd_decl, + if (aggregate_info.@"packed") "zig_packed(" else "", + ); + try writer.writeByte(' '); + try renderFields(zcu, writer, global_ctype_pool, aggregate_info, 0); + if (aggregate_info.@"packed") try writer.writeByte(')'); + try writer.writeAll(";\n"); + }, + }, } } @@ -2771,13 +2691,13 @@ fn genExports(o: *Object) !void { } } -pub fn genLazyFn(o: *Object, lazy_fn: LazyFnMap.Entry) !void { +pub fn genLazyFn(o: *Object, lazy_ctype_pool: *const CType.Pool, lazy_fn: LazyFnMap.Entry) !void { const zcu = o.dg.zcu; const ip = &zcu.intern_pool; + const ctype_pool = &o.dg.ctype_pool; const w = o.writer(); const key = lazy_fn.key_ptr.*; const val = lazy_fn.value_ptr; - const fn_name = val.fn_name; switch (key) { .tag_name => { const enum_ty = val.data.tag_name; @@ -2787,7 +2707,7 @@ pub fn genLazyFn(o: *Object, lazy_fn: LazyFnMap.Entry) !void { try w.writeAll("static "); try o.dg.renderType(w, name_slice_ty); try w.writeByte(' '); - try w.writeAll(fn_name); + try w.writeAll(val.fn_name.slice(lazy_ctype_pool)); try w.writeByte('('); try o.dg.renderTypeAndName(w, enum_ty, .{ .identifier = "tag" }, Const, .none, .complete); try w.writeAll(") {\n switch (tag) {\n"); @@ -2829,8 +2749,9 @@ pub fn genLazyFn(o: *Object, lazy_fn: LazyFnMap.Entry) !void { }, .never_tail, .never_inline => |fn_decl_index| { const fn_decl = zcu.declPtr(fn_decl_index); - const fn_cty = try o.dg.typeToCType(fn_decl.typeOf(zcu), .complete); - const fn_info = fn_cty.cast(CType.Payload.Function).?.data; + const fn_ctype = try o.dg.ctypeFromType(fn_decl.typeOf(zcu), .complete); + const fn_info = fn_ctype.info(ctype_pool).function; + const fn_name = val.fn_name.slice(lazy_ctype_pool); const fwd_decl_writer = o.dg.fwdDeclWriter(); try fwd_decl_writer.print("static zig_{s} ", .{@tagName(key)}); @@ -2843,11 +2764,13 @@ pub fn genLazyFn(o: *Object, lazy_fn: LazyFnMap.Entry) !void { try fwd_decl_writer.writeAll(";\n"); try w.print("static zig_{s} ", .{@tagName(key)}); - try o.dg.renderFunctionSignature(w, fn_decl_index, .complete, .{ .ident = fn_name }); + try o.dg.renderFunctionSignature(w, fn_decl_index, .complete, .{ + .ident = fn_name, + }); try w.writeAll(" {\n return "); try o.dg.renderDeclName(w, fn_decl_index, 0); try w.writeByte('('); - for (0..fn_info.param_types.len) |arg| { + for (0..fn_info.param_ctypes.len) |arg| { if (arg > 0) try w.writeAll(", "); try o.dg.writeCValue(w, .{ .arg = arg }); } @@ -2931,7 +2854,7 @@ pub fn genFunc(f: *Function) !void { for (free_locals.values()) |list| { for (list.keys()) |local_index| { const local = f.locals.items[local_index]; - try o.dg.renderCTypeAndName(w, local.cty_idx, .{ .local = local_index }, .{}, local.flags.alignas); + try o.dg.renderCTypeAndName(w, local.ctype, .{ .local = local_index }, .{}, local.flags.alignas); try w.writeAll(";\n "); } } @@ -3451,11 +3374,7 @@ fn airPtrElemPtr(f: *Function, inst: Air.Inst.Index) !CValue { const inst_ty = f.typeOfIndex(inst); const ptr_ty = f.typeOf(bin_op.lhs); - const ptr_align = ptr_ty.ptrAlignment(zcu); - const elem_ty = ptr_ty.elemType2(zcu); - const elem_align = elem_ty.abiAlignment(zcu); - const is_under_aligned = ptr_align.compareStrict(.lt, elem_align); - const elem_has_bits = elem_ty.hasRuntimeBitsIgnoreComptime(zcu); + const elem_has_bits = ptr_ty.elemType2(zcu).hasRuntimeBitsIgnoreComptime(zcu); const ptr = try f.resolveInst(bin_op.lhs); const index = try f.resolveInst(bin_op.rhs); @@ -3470,22 +3389,13 @@ fn airPtrElemPtr(f: *Function, inst: Air.Inst.Index) !CValue { try f.renderType(writer, inst_ty); try writer.writeByte(')'); if (elem_has_bits) try writer.writeByte('&'); - if (elem_has_bits and ptr_ty.ptrSize(zcu) == .One and !is_under_aligned) { + if (elem_has_bits and ptr_ty.ptrSize(zcu) == .One) { // It's a pointer to an array, so we need to de-reference. try f.writeCValueDeref(writer, ptr); } else try f.writeCValue(writer, ptr, .Other); if (elem_has_bits) { try writer.writeByte('['); try f.writeCValue(writer, index, .Other); - if (is_under_aligned) { - const factor = @divExact(elem_align.toByteUnitsOptional().?, @min( - ptr_align.toByteUnitsOptional().?, - f.object.dg.mod.resolved_target.result.maxIntAlignment(), - )); - try writer.print(" * {}", .{ - try f.fmtIntLiteral(try zcu.intValue(Type.usize, factor)), - }); - } try writer.writeByte(']'); } try a.end(f, writer); @@ -3577,13 +3487,16 @@ fn airArrayElemVal(f: *Function, inst: Air.Inst.Index) !CValue { fn airAlloc(f: *Function, inst: Air.Inst.Index) !CValue { const zcu = f.object.dg.zcu; const inst_ty = f.typeOfIndex(inst); - const elem_type = inst_ty.childType(zcu); - if (!elem_type.isFnOrHasRuntimeBitsIgnoreComptime(zcu)) return .{ .undef = inst_ty }; + const elem_ty = inst_ty.childType(zcu); + if (!elem_ty.isFnOrHasRuntimeBitsIgnoreComptime(zcu)) return .{ .undef = inst_ty }; - const local = try f.allocLocalValue( - elem_type, - inst_ty.ptrAlignment(zcu), - ); + const local = try f.allocLocalValue(.{ + .ctype = try f.ctypeFromType(elem_ty, .complete), + .alignas = CType.AlignAs.fromAlignment(.{ + .@"align" = inst_ty.ptrInfo(zcu).flags.alignment, + .abi = elem_ty.abiAlignment(zcu), + }), + }); log.debug("%{d}: allocated unfreeable t{d}", .{ inst, local.new_local }); const gpa = f.object.dg.zcu.gpa; try f.allocs.put(gpa, local.new_local, true); @@ -3596,10 +3509,13 @@ fn airRetPtr(f: *Function, inst: Air.Inst.Index) !CValue { const elem_ty = inst_ty.childType(zcu); if (!elem_ty.isFnOrHasRuntimeBitsIgnoreComptime(zcu)) return .{ .undef = inst_ty }; - const local = try f.allocLocalValue( - elem_ty, - inst_ty.ptrAlignment(zcu), - ); + const local = try f.allocLocalValue(.{ + .ctype = try f.ctypeFromType(elem_ty, .complete), + .alignas = CType.AlignAs.fromAlignment(.{ + .@"align" = inst_ty.ptrInfo(zcu).flags.alignment, + .abi = elem_ty.abiAlignment(zcu), + }), + }); log.debug("%{d}: allocated unfreeable t{d}", .{ inst, local.new_local }); const gpa = f.object.dg.zcu.gpa; try f.allocs.put(gpa, local.new_local, true); @@ -3608,14 +3524,14 @@ fn airRetPtr(f: *Function, inst: Air.Inst.Index) !CValue { fn airArg(f: *Function, inst: Air.Inst.Index) !CValue { const inst_ty = f.typeOfIndex(inst); - const inst_cty = try f.typeToIndex(inst_ty, .parameter); + const inst_ctype = try f.ctypeFromType(inst_ty, .parameter); const i = f.next_arg_index; f.next_arg_index += 1; - const result: CValue = if (inst_cty != try f.typeToIndex(inst_ty, .complete)) - .{ .arg_array = i } + const result: CValue = if (inst_ctype.eql(try f.ctypeFromType(inst_ty, .complete))) + .{ .arg = i } else - .{ .arg = i }; + .{ .arg_array = i }; if (f.liveness.isUnused(inst)) { const writer = f.object.writer(); @@ -3649,7 +3565,7 @@ fn airLoad(f: *Function, inst: Air.Inst.Index) !CValue { try reap(f, inst, &.{ty_op.operand}); const is_aligned = if (ptr_info.flags.alignment != .none) - ptr_info.flags.alignment.compare(.gte, src_ty.abiAlignment(zcu)) + ptr_info.flags.alignment.order(src_ty.abiAlignment(zcu)).compare(.gte) else true; const is_array = lowersToArray(src_ty, zcu); @@ -3724,18 +3640,21 @@ fn airRet(f: *Function, inst: Air.Inst.Index, is_ptr: bool) !CValue { const op_inst = un_op.toIndex(); const op_ty = f.typeOf(un_op); const ret_ty = if (is_ptr) op_ty.childType(zcu) else op_ty; - const lowered_ret_ty = try lowerFnRetTy(ret_ty, zcu); + const ret_ctype = try f.ctypeFromType(ret_ty, .parameter); if (op_inst != null and f.air.instructions.items(.tag)[@intFromEnum(op_inst.?)] == .call_always_tail) { try reap(f, inst, &.{un_op}); _ = try airCall(f, op_inst.?, .always_tail); - } else if (lowered_ret_ty.hasRuntimeBitsIgnoreComptime(zcu)) { + } else if (ret_ctype.index != .void) { const operand = try f.resolveInst(un_op); try reap(f, inst, &.{un_op}); var deref = is_ptr; const is_array = lowersToArray(ret_ty, zcu); const ret_val = if (is_array) ret_val: { - const array_local = try f.allocLocal(inst, lowered_ret_ty); + const array_local = try f.allocAlignedLocal(inst, .{ + .ctype = ret_ctype, + .alignas = CType.AlignAs.fromAbiAlignment(ret_ty.abiAlignment(f.object.dg.zcu)), + }); try writer.writeAll("memcpy("); try f.writeCValueMember(writer, array_local, .{ .identifier = "array" }); try writer.writeAll(", "); @@ -3921,7 +3840,7 @@ fn airStore(f: *Function, inst: Air.Inst.Index, safety: bool) !CValue { } const is_aligned = if (ptr_info.flags.alignment != .none) - ptr_info.flags.alignment.compare(.gte, src_ty.abiAlignment(zcu)) + ptr_info.flags.alignment.order(src_ty.abiAlignment(zcu)).compare(.gte) else true; const is_array = lowersToArray(Type.fromInterned(ptr_info.child), zcu); @@ -4397,22 +4316,23 @@ fn airCall( defer gpa.free(resolved_args); for (resolved_args, args) |*resolved_arg, arg| { const arg_ty = f.typeOf(arg); - const arg_cty = try f.typeToIndex(arg_ty, .parameter); - if (f.indexToCType(arg_cty).tag() == .void) { + const arg_ctype = try f.ctypeFromType(arg_ty, .parameter); + if (arg_ctype.index == .void) { resolved_arg.* = .none; continue; } resolved_arg.* = try f.resolveInst(arg); - if (arg_cty != try f.typeToIndex(arg_ty, .complete)) { - const lowered_arg_ty = try lowerFnRetTy(arg_ty, zcu); - - const array_local = try f.allocLocal(inst, lowered_arg_ty); + if (!arg_ctype.eql(try f.ctypeFromType(arg_ty, .complete))) { + const array_local = try f.allocAlignedLocal(inst, .{ + .ctype = arg_ctype, + .alignas = CType.AlignAs.fromAbiAlignment(arg_ty.abiAlignment(zcu)), + }); try writer.writeAll("memcpy("); try f.writeCValueMember(writer, array_local, .{ .identifier = "array" }); try writer.writeAll(", "); try f.writeCValue(writer, resolved_arg.*, .FunctionArgument); try writer.writeAll(", sizeof("); - try f.renderType(writer, lowered_arg_ty); + try f.renderCType(writer, arg_ctype); try writer.writeAll("));\n"); resolved_arg.* = array_local; } @@ -4433,21 +4353,27 @@ fn airCall( else => unreachable, }).?; const ret_ty = Type.fromInterned(fn_info.return_type); - const lowered_ret_ty = try lowerFnRetTy(ret_ty, zcu); + const ret_ctype: CType = if (ret_ty.isNoReturn(zcu)) + .{ .index = .void } + else + try f.ctypeFromType(ret_ty, .parameter); const result_local = result: { if (modifier == .always_tail) { try writer.writeAll("zig_always_tail return "); break :result .none; - } else if (!lowered_ret_ty.hasRuntimeBitsIgnoreComptime(zcu)) { + } else if (ret_ctype.index == .void) { break :result .none; } else if (f.liveness.isUnused(inst)) { try writer.writeByte('('); - try f.renderType(writer, Type.void); + try f.renderCType(writer, .{ .index = .void }); try writer.writeByte(')'); break :result .none; } else { - const local = try f.allocLocal(inst, lowered_ret_ty); + const local = try f.allocAlignedLocal(inst, .{ + .ctype = ret_ctype, + .alignas = CType.AlignAs.fromAbiAlignment(ret_ty.abiAlignment(zcu)), + }); try f.writeCValue(writer, local, .Other); try writer.writeAll(" = "); break :result local; @@ -4767,6 +4693,7 @@ const LocalResult = struct { fn bitcast(f: *Function, dest_ty: Type, operand: CValue, operand_ty: Type) !LocalResult { const zcu = f.object.dg.zcu; const target = &f.object.dg.mod.resolved_target.result; + const ctype_pool = &f.object.dg.ctype_pool; const writer = f.object.writer(); if (operand_ty.isAbiInt(zcu) and dest_ty.isAbiInt(zcu)) { @@ -4825,49 +4752,54 @@ fn bitcast(f: *Function, dest_ty: Type, operand: CValue, operand_ty: Type) !Loca // Ensure padding bits have the expected value. if (dest_ty.isAbiInt(zcu)) { - const dest_cty = try f.typeToCType(dest_ty, .complete); + const dest_ctype = try f.ctypeFromType(dest_ty, .complete); const dest_info = dest_ty.intInfo(zcu); var bits: u16 = dest_info.bits; - var wrap_cty: ?CType = null; + var wrap_ctype: ?CType = null; var need_bitcasts = false; try f.writeCValue(writer, local, .Other); - if (dest_cty.castTag(.array)) |pl| { - try writer.print("[{d}]", .{switch (target.cpu.arch.endian()) { - .little => pl.data.len - 1, - .big => 0, - }}); - const elem_cty = f.indexToCType(pl.data.elem_type); - wrap_cty = elem_cty.toSignedness(dest_info.signedness); - need_bitcasts = wrap_cty.?.tag() == .zig_i128; - bits -= 1; - bits %= @as(u16, @intCast(f.byteSize(elem_cty) * 8)); - bits += 1; + switch (dest_ctype.info(ctype_pool)) { + else => {}, + .array => |array_info| { + try writer.print("[{d}]", .{switch (target.cpu.arch.endian()) { + .little => array_info.len - 1, + .big => 0, + }}); + wrap_ctype = array_info.elem_ctype.toSignedness(dest_info.signedness); + need_bitcasts = wrap_ctype.?.index == .zig_i128; + bits -= 1; + bits %= @as(u16, @intCast(f.byteSize(array_info.elem_ctype) * 8)); + bits += 1; + }, } try writer.writeAll(" = "); if (need_bitcasts) { try writer.writeAll("zig_bitCast_"); - try f.object.dg.renderCTypeForBuiltinFnName(writer, wrap_cty.?.toUnsigned()); + try f.object.dg.renderCTypeForBuiltinFnName(writer, wrap_ctype.?.toUnsigned()); try writer.writeByte('('); } try writer.writeAll("zig_wrap_"); const info_ty = try zcu.intType(dest_info.signedness, bits); - if (wrap_cty) |cty| - try f.object.dg.renderCTypeForBuiltinFnName(writer, cty) + if (wrap_ctype) |ctype| + try f.object.dg.renderCTypeForBuiltinFnName(writer, ctype) else try f.object.dg.renderTypeForBuiltinFnName(writer, info_ty); try writer.writeByte('('); if (need_bitcasts) { try writer.writeAll("zig_bitCast_"); - try f.object.dg.renderCTypeForBuiltinFnName(writer, wrap_cty.?); + try f.object.dg.renderCTypeForBuiltinFnName(writer, wrap_ctype.?); try writer.writeByte('('); } try f.writeCValue(writer, local, .Other); - if (dest_cty.castTag(.array)) |pl| { - try writer.print("[{d}]", .{switch (target.cpu.arch.endian()) { - .little => pl.data.len - 1, - .big => 0, - }}); + switch (dest_ctype.info(ctype_pool)) { + else => {}, + .array => |array_info| try writer.print("[{d}]", .{ + switch (target.cpu.arch.endian()) { + .little => array_info.len - 1, + .big => 0, + }, + }), } if (need_bitcasts) try writer.writeByte(')'); try f.object.dg.renderBuiltinInfo(writer, info_ty, .bits); @@ -5131,10 +5063,9 @@ fn airAsm(f: *Function, inst: Air.Inst.Index) !CValue { if (is_reg) { const output_ty = if (output == .none) inst_ty else f.typeOf(output).childType(zcu); try writer.writeAll("register "); - const alignment: Alignment = .none; - const local_value = try f.allocLocalValue(output_ty, alignment); + const local_value = try f.allocLocal(inst, output_ty); try f.allocs.put(gpa, local_value.new_local, false); - try f.object.dg.renderTypeAndName(writer, output_ty, local_value, .{}, alignment, .complete); + try f.object.dg.renderTypeAndName(writer, output_ty, local_value, .{}, .none, .complete); try writer.writeAll(" __asm(\""); try writer.writeAll(constraint["={".len .. constraint.len - "}".len]); try writer.writeAll("\")"); @@ -5164,10 +5095,9 @@ fn airAsm(f: *Function, inst: Air.Inst.Index) !CValue { if (asmInputNeedsLocal(f, constraint, input_val)) { const input_ty = f.typeOf(input); if (is_reg) try writer.writeAll("register "); - const alignment: Alignment = .none; - const local_value = try f.allocLocalValue(input_ty, alignment); + const local_value = try f.allocLocal(inst, input_ty); try f.allocs.put(gpa, local_value.new_local, false); - try f.object.dg.renderTypeAndName(writer, input_ty, local_value, Const, alignment, .complete); + try f.object.dg.renderTypeAndName(writer, input_ty, local_value, Const, .none, .complete); if (is_reg) { try writer.writeAll(" __asm(\""); try writer.writeAll(constraint["{".len .. constraint.len - "}".len]); @@ -5512,59 +5442,74 @@ fn fieldLocation( end: void, } { const ip = &zcu.intern_pool; - const container_ty = container_ptr_ty.childType(zcu); - return switch (container_ty.zigTypeTag(zcu)) { - .Struct => blk: { - if (zcu.typeToPackedStruct(container_ty)) |struct_type| { - if (field_ptr_ty.ptrInfo(zcu).packed_offset.host_size == 0) - break :blk .{ .byte_offset = @divExact(zcu.structPackedFieldBitOffset(struct_type, field_index) + container_ptr_ty.ptrInfo(zcu).packed_offset.bit_offset, 8) } + const container_ty = Type.fromInterned(ip.indexToKey(container_ptr_ty.toIntern()).ptr_type.child); + switch (ip.indexToKey(container_ty.toIntern())) { + .struct_type => { + const loaded_struct = ip.loadStructType(container_ty.toIntern()); + switch (loaded_struct.layout) { + .auto, .@"extern" => { + var field_it = loaded_struct.iterateRuntimeOrder(ip); + var before = true; + while (field_it.next()) |next_field_index| { + if (next_field_index == field_index) before = false; + if (before) continue; + const field_type = Type.fromInterned(loaded_struct.field_types.get(ip)[next_field_index]); + if (!field_type.hasRuntimeBitsIgnoreComptime(zcu)) continue; + return .{ .field = if (loaded_struct.fieldName(ip, next_field_index).unwrap()) |field_name| + .{ .identifier = ip.stringToSlice(field_name) } + else + .{ .field = next_field_index } }; + } + return if (container_ty.hasRuntimeBitsIgnoreComptime(zcu)) .end else .begin; + }, + .@"packed" => return if (field_ptr_ty.ptrInfo(zcu).packed_offset.host_size == 0) + .{ .byte_offset = @divExact(zcu.structPackedFieldBitOffset(loaded_struct, field_index) + + container_ptr_ty.ptrInfo(zcu).packed_offset.bit_offset, 8) } else - break :blk .begin; + .begin, } - - for (field_index..container_ty.structFieldCount(zcu)) |next_field_index_usize| { - const next_field_index: u32 = @intCast(next_field_index_usize); - if (container_ty.structFieldIsComptime(next_field_index, zcu)) continue; - const field_ty = container_ty.structFieldType(next_field_index, zcu); - if (!field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; - - break :blk .{ .field = if (container_ty.isSimpleTuple(zcu)) - .{ .field = next_field_index } + }, + .anon_struct_type => |anon_struct_info| { + for (field_index..anon_struct_info.types.len) |next_field_index| { + if (anon_struct_info.values.get(ip)[next_field_index] != .none) continue; + const field_type = Type.fromInterned(anon_struct_info.types.get(ip)[next_field_index]); + if (!field_type.hasRuntimeBitsIgnoreComptime(zcu)) continue; + return .{ .field = if (anon_struct_info.fieldName(ip, next_field_index).unwrap()) |field_name| + .{ .identifier = ip.stringToSlice(field_name) } else - .{ .identifier = ip.stringToSlice(container_ty.legacyStructFieldName(next_field_index, zcu)) } }; + .{ .field = next_field_index } }; } - break :blk if (container_ty.hasRuntimeBitsIgnoreComptime(zcu)) .end else .begin; + return if (container_ty.hasRuntimeBitsIgnoreComptime(zcu)) .end else .begin; }, - .Union => { - const union_obj = zcu.typeToUnion(container_ty).?; - return switch (union_obj.getLayout(ip)) { + .union_type => { + const loaded_union = ip.loadUnionType(container_ty.toIntern()); + switch (loaded_union.getLayout(ip)) { .auto, .@"extern" => { - const field_ty = Type.fromInterned(union_obj.field_types.get(ip)[field_index]); + const field_ty = Type.fromInterned(loaded_union.field_types.get(ip)[field_index]); if (!field_ty.hasRuntimeBitsIgnoreComptime(zcu)) - return if (container_ty.unionTagTypeSafety(zcu) != null and - !container_ty.unionHasAllZeroBitFieldTypes(zcu)) + return if (loaded_union.hasTag(ip) and !container_ty.unionHasAllZeroBitFieldTypes(zcu)) .{ .field = .{ .identifier = "payload" } } else .begin; - const field_name = union_obj.loadTagType(ip).names.get(ip)[field_index]; - return .{ .field = if (container_ty.unionTagTypeSafety(zcu)) |_| + const field_name = loaded_union.loadTagType(ip).names.get(ip)[field_index]; + return .{ .field = if (loaded_union.hasTag(ip)) .{ .payload_identifier = ip.stringToSlice(field_name) } else .{ .identifier = ip.stringToSlice(field_name) } }; }, - .@"packed" => .begin, - }; + .@"packed" => return .begin, + } }, - .Pointer => switch (container_ty.ptrSize(zcu)) { + .ptr_type => |ptr_info| switch (ptr_info.flags.size) { + .One, .Many, .C => unreachable, .Slice => switch (field_index) { - 0 => .{ .field = .{ .identifier = "ptr" } }, - 1 => .{ .field = .{ .identifier = "len" } }, + 0 => return .{ .field = .{ .identifier = "ptr" } }, + 1 => return .{ .field = .{ .identifier = "len" } }, else => unreachable, }, - .One, .Many, .C => unreachable, }, else => unreachable, - }; + } } fn airStructFieldPtr(f: *Function, inst: Air.Inst.Index) !CValue { @@ -5653,7 +5598,7 @@ fn fieldPtr( const field_ptr_ty = f.typeOfIndex(inst); // Ensure complete type definition is visible before accessing fields. - _ = try f.typeToIndex(container_ty, .complete); + _ = try f.ctypeFromType(container_ty, .complete); const writer = f.object.writer(); const local = try f.allocLocal(inst, field_ptr_ty); @@ -5708,109 +5653,109 @@ fn airStructFieldVal(f: *Function, inst: Air.Inst.Index) !CValue { const writer = f.object.writer(); // Ensure complete type definition is visible before accessing fields. - _ = try f.typeToIndex(struct_ty, .complete); + _ = try f.ctypeFromType(struct_ty, .complete); + + const field_name: CValue = switch (ip.indexToKey(struct_ty.toIntern())) { + .struct_type => field_name: { + const loaded_struct = ip.loadStructType(struct_ty.toIntern()); + switch (loaded_struct.layout) { + .auto, .@"extern" => break :field_name if (loaded_struct.fieldName(ip, extra.field_index).unwrap()) |field_name| + .{ .identifier = ip.stringToSlice(field_name) } + else + .{ .field = extra.field_index }, + .@"packed" => { + const int_info = struct_ty.intInfo(zcu); - const field_name: CValue = switch (zcu.intern_pool.indexToKey(struct_ty.toIntern())) { - .struct_type => switch (struct_ty.containerLayout(zcu)) { - .auto, .@"extern" => if (struct_ty.isSimpleTuple(zcu)) - .{ .field = extra.field_index } - else - .{ .identifier = ip.stringToSlice(struct_ty.legacyStructFieldName(extra.field_index, zcu)) }, - .@"packed" => { - const struct_type = zcu.typeToStruct(struct_ty).?; - const int_info = struct_ty.intInfo(zcu); + const bit_offset_ty = try zcu.intType(.unsigned, Type.smallestUnsignedBits(int_info.bits - 1)); - const bit_offset_ty = try zcu.intType(.unsigned, Type.smallestUnsignedBits(int_info.bits - 1)); + const bit_offset = zcu.structPackedFieldBitOffset(loaded_struct, extra.field_index); - const bit_offset = zcu.structPackedFieldBitOffset(struct_type, extra.field_index); + const field_int_signedness = if (inst_ty.isAbiInt(zcu)) + inst_ty.intInfo(zcu).signedness + else + .unsigned; + const field_int_ty = try zcu.intType(field_int_signedness, @as(u16, @intCast(inst_ty.bitSize(zcu)))); - const field_int_signedness = if (inst_ty.isAbiInt(zcu)) - inst_ty.intInfo(zcu).signedness - else - .unsigned; - const field_int_ty = try zcu.intType(field_int_signedness, @as(u16, @intCast(inst_ty.bitSize(zcu)))); - - const temp_local = try f.allocLocal(inst, field_int_ty); - try f.writeCValue(writer, temp_local, .Other); - try writer.writeAll(" = zig_wrap_"); - try f.object.dg.renderTypeForBuiltinFnName(writer, field_int_ty); - try writer.writeAll("(("); - try f.renderType(writer, field_int_ty); - try writer.writeByte(')'); - const cant_cast = int_info.bits > 64; - if (cant_cast) { - if (field_int_ty.bitSize(zcu) > 64) return f.fail("TODO: C backend: implement casting between types > 64 bits", .{}); - try writer.writeAll("zig_lo_"); - try f.object.dg.renderTypeForBuiltinFnName(writer, struct_ty); - try writer.writeByte('('); - } - if (bit_offset > 0) { - try writer.writeAll("zig_shr_"); - try f.object.dg.renderTypeForBuiltinFnName(writer, struct_ty); - try writer.writeByte('('); - } - try f.writeCValue(writer, struct_byval, .Other); - if (bit_offset > 0) { - try writer.writeAll(", "); - try f.object.dg.renderValue(writer, try zcu.intValue(bit_offset_ty, bit_offset), .FunctionArgument); + const temp_local = try f.allocLocal(inst, field_int_ty); + try f.writeCValue(writer, temp_local, .Other); + try writer.writeAll(" = zig_wrap_"); + try f.object.dg.renderTypeForBuiltinFnName(writer, field_int_ty); + try writer.writeAll("(("); + try f.renderType(writer, field_int_ty); try writer.writeByte(')'); - } - if (cant_cast) try writer.writeByte(')'); - try f.object.dg.renderBuiltinInfo(writer, field_int_ty, .bits); - try writer.writeAll(");\n"); - if (inst_ty.eql(field_int_ty, f.object.dg.zcu)) return temp_local; + const cant_cast = int_info.bits > 64; + if (cant_cast) { + if (field_int_ty.bitSize(zcu) > 64) return f.fail("TODO: C backend: implement casting between types > 64 bits", .{}); + try writer.writeAll("zig_lo_"); + try f.object.dg.renderTypeForBuiltinFnName(writer, struct_ty); + try writer.writeByte('('); + } + if (bit_offset > 0) { + try writer.writeAll("zig_shr_"); + try f.object.dg.renderTypeForBuiltinFnName(writer, struct_ty); + try writer.writeByte('('); + } + try f.writeCValue(writer, struct_byval, .Other); + if (bit_offset > 0) try writer.print(", {})", .{ + try f.fmtIntLiteral(try zcu.intValue(bit_offset_ty, bit_offset)), + }); + if (cant_cast) try writer.writeByte(')'); + try f.object.dg.renderBuiltinInfo(writer, field_int_ty, .bits); + try writer.writeAll(");\n"); + if (inst_ty.eql(field_int_ty, f.object.dg.zcu)) return temp_local; - const local = try f.allocLocal(inst, inst_ty); - try writer.writeAll("memcpy("); - try f.writeCValue(writer, .{ .local_ref = local.new_local }, .FunctionArgument); - try writer.writeAll(", "); - try f.writeCValue(writer, .{ .local_ref = temp_local.new_local }, .FunctionArgument); - try writer.writeAll(", sizeof("); - try f.renderType(writer, inst_ty); - try writer.writeAll("));\n"); - try freeLocal(f, inst, temp_local.new_local, null); - return local; - }, + const local = try f.allocLocal(inst, inst_ty); + try writer.writeAll("memcpy("); + try f.writeCValue(writer, .{ .local_ref = local.new_local }, .FunctionArgument); + try writer.writeAll(", "); + try f.writeCValue(writer, .{ .local_ref = temp_local.new_local }, .FunctionArgument); + try writer.writeAll(", sizeof("); + try f.renderType(writer, inst_ty); + try writer.writeAll("));\n"); + try freeLocal(f, inst, temp_local.new_local, null); + return local; + }, + } }, - - .anon_struct_type => |anon_struct_type| if (anon_struct_type.names.len == 0) - .{ .field = extra.field_index } + .anon_struct_type => |anon_struct_info| if (anon_struct_info.fieldName(ip, extra.field_index).unwrap()) |field_name| + .{ .identifier = ip.stringToSlice(field_name) } else - .{ .identifier = ip.stringToSlice(struct_ty.legacyStructFieldName(extra.field_index, zcu)) }, - + .{ .field = extra.field_index }, .union_type => field_name: { - const union_obj = ip.loadUnionType(struct_ty.toIntern()); - if (union_obj.flagsPtr(ip).layout == .@"packed") { - const operand_lval = if (struct_byval == .constant) blk: { - const operand_local = try f.allocLocal(inst, struct_ty); - try f.writeCValue(writer, operand_local, .Other); - try writer.writeAll(" = "); - try f.writeCValue(writer, struct_byval, .Initializer); - try writer.writeAll(";\n"); - break :blk operand_local; - } else struct_byval; - - const local = try f.allocLocal(inst, inst_ty); - try writer.writeAll("memcpy(&"); - try f.writeCValue(writer, local, .Other); - try writer.writeAll(", &"); - try f.writeCValue(writer, operand_lval, .Other); - try writer.writeAll(", sizeof("); - try f.renderType(writer, inst_ty); - try writer.writeAll("));\n"); - - if (struct_byval == .constant) { - try freeLocal(f, inst, operand_lval.new_local, null); - } + const loaded_union = ip.loadUnionType(struct_ty.toIntern()); + switch (loaded_union.getLayout(ip)) { + .auto, .@"extern" => { + const name = loaded_union.loadTagType(ip).names.get(ip)[extra.field_index]; + break :field_name if (loaded_union.hasTag(ip)) + .{ .payload_identifier = ip.stringToSlice(name) } + else + .{ .identifier = ip.stringToSlice(name) }; + }, + .@"packed" => { + const operand_lval = if (struct_byval == .constant) blk: { + const operand_local = try f.allocLocal(inst, struct_ty); + try f.writeCValue(writer, operand_local, .Other); + try writer.writeAll(" = "); + try f.writeCValue(writer, struct_byval, .Initializer); + try writer.writeAll(";\n"); + break :blk operand_local; + } else struct_byval; + + const local = try f.allocLocal(inst, inst_ty); + try writer.writeAll("memcpy(&"); + try f.writeCValue(writer, local, .Other); + try writer.writeAll(", &"); + try f.writeCValue(writer, operand_lval, .Other); + try writer.writeAll(", sizeof("); + try f.renderType(writer, inst_ty); + try writer.writeAll("));\n"); + + if (struct_byval == .constant) { + try freeLocal(f, inst, operand_lval.new_local, null); + } - return local; - } else { - const name = union_obj.loadTagType(ip).names.get(ip)[extra.field_index]; - break :field_name if (union_obj.hasTag(ip)) .{ - .payload_identifier = ip.stringToSlice(name), - } else .{ - .identifier = ip.stringToSlice(name), - }; + return local; + }, } }, else => unreachable, @@ -6089,6 +6034,7 @@ fn airIsErr(f: *Function, inst: Air.Inst.Index, is_ptr: bool, operator: []const fn airArrayToSlice(f: *Function, inst: Air.Inst.Index) !CValue { const zcu = f.object.dg.zcu; + const ctype_pool = &f.object.dg.ctype_pool; const ty_op = f.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const operand = try f.resolveInst(ty_op.operand); @@ -6107,18 +6053,18 @@ fn airArrayToSlice(f: *Function, inst: Air.Inst.Index) !CValue { if (operand == .undef) { try f.writeCValue(writer, .{ .undef = inst_ty.slicePtrFieldType(zcu) }, .Initializer); } else { - const ptr_cty = try f.typeToIndex(ptr_ty, .complete); - const ptr_child_cty = f.indexToCType(ptr_cty).cast(CType.Payload.Child).?.data; + const ptr_ctype = try f.ctypeFromType(ptr_ty, .complete); + const ptr_child_ctype = ptr_ctype.info(ctype_pool).pointer.elem_ctype; const elem_ty = array_ty.childType(zcu); - const elem_cty = try f.typeToIndex(elem_ty, .complete); - if (ptr_child_cty != elem_cty) { + const elem_ctype = try f.ctypeFromType(elem_ty, .complete); + if (!ptr_child_ctype.eql(elem_ctype)) { try writer.writeByte('('); - try f.renderCType(writer, ptr_cty); + try f.renderCType(writer, ptr_ctype); try writer.writeByte(')'); } - const operand_cty = try f.typeToCType(operand_ty, .complete); - const operand_child_cty = operand_cty.cast(CType.Payload.Child).?.data; - if (f.indexToCType(operand_child_cty).tag() == .array) { + const operand_ctype = try f.ctypeFromType(operand_ty, .complete); + const operand_child_ctype = operand_ctype.info(ctype_pool).pointer.elem_ctype; + if (operand_child_ctype.info(ctype_pool) == .array) { try writer.writeByte('&'); try f.writeCValueDeref(writer, operand); try writer.print("[{}]", .{try f.fmtIntLiteral(try zcu.intValue(Type.usize, 0))}); @@ -6229,8 +6175,8 @@ fn airUnBuiltinCall( const operand_ty = f.typeOf(ty_op.operand); const scalar_ty = operand_ty.scalarType(zcu); - const inst_scalar_cty = try f.typeToCType(inst_scalar_ty, .complete); - const ref_ret = inst_scalar_cty.tag() == .array; + const inst_scalar_ctype = try f.ctypeFromType(inst_scalar_ty, .complete); + const ref_ret = inst_scalar_ctype.info(&f.object.dg.ctype_pool) == .array; const writer = f.object.writer(); const local = try f.allocLocal(inst, inst_ty); @@ -6267,8 +6213,8 @@ fn airBinBuiltinCall( const bin_op = f.air.instructions.items(.data)[@intFromEnum(inst)].bin_op; const operand_ty = f.typeOf(bin_op.lhs); - const operand_cty = try f.typeToCType(operand_ty, .complete); - const is_big = operand_cty.tag() == .array; + const operand_ctype = try f.ctypeFromType(operand_ty, .complete); + const is_big = operand_ctype.info(&f.object.dg.ctype_pool) == .array; const lhs = try f.resolveInst(bin_op.lhs); const rhs = try f.resolveInst(bin_op.rhs); @@ -6278,8 +6224,8 @@ fn airBinBuiltinCall( const inst_scalar_ty = inst_ty.scalarType(zcu); const scalar_ty = operand_ty.scalarType(zcu); - const inst_scalar_cty = try f.typeToCType(inst_scalar_ty, .complete); - const ref_ret = inst_scalar_cty.tag() == .array; + const inst_scalar_ctype = try f.ctypeFromType(inst_scalar_ty, .complete); + const ref_ret = inst_scalar_ctype.info(&f.object.dg.ctype_pool) == .array; const writer = f.object.writer(); const local = try f.allocLocal(inst, inst_ty); @@ -6328,8 +6274,8 @@ fn airCmpBuiltinCall( const operand_ty = f.typeOf(data.lhs); const scalar_ty = operand_ty.scalarType(zcu); - const inst_scalar_cty = try f.typeToCType(inst_scalar_ty, .complete); - const ref_ret = inst_scalar_cty.tag() == .array; + const inst_scalar_ctype = try f.ctypeFromType(inst_scalar_ty, .complete); + const ref_ret = inst_scalar_ctype.info(&f.object.dg.ctype_pool) == .array; const writer = f.object.writer(); const local = try f.allocLocal(inst, inst_ty); @@ -7112,9 +7058,9 @@ fn airAggregateInit(f: *Function, inst: Air.Inst.Index) !CValue { const writer = f.object.writer(); const local = try f.allocLocal(inst, inst_ty); - switch (inst_ty.zigTypeTag(zcu)) { - .Array, .Vector => { - const a = try Assignment.init(f, inst_ty.childType(zcu)); + switch (ip.indexToKey(inst_ty.toIntern())) { + inline .array_type, .vector_type => |info, tag| { + const a = try Assignment.init(f, Type.fromInterned(info.child)); for (resolved_elements, 0..) |element, i| { try a.restart(f, writer); try f.writeCValue(writer, local, .Other); @@ -7123,94 +7069,112 @@ fn airAggregateInit(f: *Function, inst: Air.Inst.Index) !CValue { try f.writeCValue(writer, element, .Other); try a.end(f, writer); } - if (inst_ty.sentinel(zcu)) |sentinel| { + if (tag == .array_type and info.sentinel != .none) { try a.restart(f, writer); try f.writeCValue(writer, local, .Other); - try writer.print("[{d}]", .{resolved_elements.len}); + try writer.print("[{d}]", .{info.len}); try a.assign(f, writer); - try f.object.dg.renderValue(writer, sentinel, .Other); + try f.object.dg.renderValue(writer, Value.fromInterned(info.sentinel), .Other); try a.end(f, writer); } }, - .Struct => switch (inst_ty.containerLayout(zcu)) { - .auto, .@"extern" => for (resolved_elements, 0..) |element, field_index| { - if (inst_ty.structFieldIsComptime(field_index, zcu)) continue; - const field_ty = inst_ty.structFieldType(field_index, zcu); - if (!field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; - - const a = try Assignment.start(f, writer, field_ty); - try f.writeCValueMember(writer, local, if (inst_ty.isSimpleTuple(zcu)) - .{ .field = field_index } - else - .{ .identifier = ip.stringToSlice(inst_ty.legacyStructFieldName(@intCast(field_index), zcu)) }); - try a.assign(f, writer); - try f.writeCValue(writer, element, .Other); - try a.end(f, writer); - }, - .@"packed" => { - try f.writeCValue(writer, local, .Other); - try writer.writeAll(" = "); - const int_info = inst_ty.intInfo(zcu); + .struct_type => { + const loaded_struct = ip.loadStructType(inst_ty.toIntern()); + switch (loaded_struct.layout) { + .auto, .@"extern" => { + var field_it = loaded_struct.iterateRuntimeOrder(ip); + while (field_it.next()) |field_index| { + const field_ty = Type.fromInterned(loaded_struct.field_types.get(ip)[field_index]); + if (!field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; - const bit_offset_ty = try zcu.intType(.unsigned, Type.smallestUnsignedBits(int_info.bits - 1)); + const a = try Assignment.start(f, writer, field_ty); + try f.writeCValueMember(writer, local, if (loaded_struct.fieldName(ip, field_index).unwrap()) |field_name| + .{ .identifier = ip.stringToSlice(field_name) } + else + .{ .field = field_index }); + try a.assign(f, writer); + try f.writeCValue(writer, resolved_elements[field_index], .Other); + try a.end(f, writer); + } + }, + .@"packed" => { + try f.writeCValue(writer, local, .Other); + try writer.writeAll(" = "); + const int_info = inst_ty.intInfo(zcu); - var bit_offset: u64 = 0; + const bit_offset_ty = try zcu.intType(.unsigned, Type.smallestUnsignedBits(int_info.bits - 1)); - var empty = true; - for (0..elements.len) |field_index| { - if (inst_ty.structFieldIsComptime(field_index, zcu)) continue; - const field_ty = inst_ty.structFieldType(field_index, zcu); - if (!field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; + var bit_offset: u64 = 0; - if (!empty) { - try writer.writeAll("zig_or_"); - try f.object.dg.renderTypeForBuiltinFnName(writer, inst_ty); - try writer.writeByte('('); + var empty = true; + for (0..elements.len) |field_index| { + if (inst_ty.structFieldIsComptime(field_index, zcu)) continue; + const field_ty = inst_ty.structFieldType(field_index, zcu); + if (!field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; + + if (!empty) { + try writer.writeAll("zig_or_"); + try f.object.dg.renderTypeForBuiltinFnName(writer, inst_ty); + try writer.writeByte('('); + } + empty = false; } - empty = false; - } - empty = true; - for (resolved_elements, 0..) |element, field_index| { - if (inst_ty.structFieldIsComptime(field_index, zcu)) continue; - const field_ty = inst_ty.structFieldType(field_index, zcu); - if (!field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; - - if (!empty) try writer.writeAll(", "); - // TODO: Skip this entire shift if val is 0? - try writer.writeAll("zig_shlw_"); - try f.object.dg.renderTypeForBuiltinFnName(writer, inst_ty); - try writer.writeByte('('); + empty = true; + for (resolved_elements, 0..) |element, field_index| { + if (inst_ty.structFieldIsComptime(field_index, zcu)) continue; + const field_ty = inst_ty.structFieldType(field_index, zcu); + if (!field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; - if (inst_ty.isAbiInt(zcu) and (field_ty.isAbiInt(zcu) or field_ty.isPtrAtRuntime(zcu))) { - try f.renderIntCast(writer, inst_ty, element, .{}, field_ty, .FunctionArgument); - } else { + if (!empty) try writer.writeAll(", "); + // TODO: Skip this entire shift if val is 0? + try writer.writeAll("zig_shlw_"); + try f.object.dg.renderTypeForBuiltinFnName(writer, inst_ty); try writer.writeByte('('); - try f.renderType(writer, inst_ty); - try writer.writeByte(')'); - if (field_ty.isPtrAtRuntime(zcu)) { + + if (inst_ty.isAbiInt(zcu) and (field_ty.isAbiInt(zcu) or field_ty.isPtrAtRuntime(zcu))) { + try f.renderIntCast(writer, inst_ty, element, .{}, field_ty, .FunctionArgument); + } else { try writer.writeByte('('); - try f.renderType(writer, switch (int_info.signedness) { - .unsigned => Type.usize, - .signed => Type.isize, - }); + try f.renderType(writer, inst_ty); try writer.writeByte(')'); + if (field_ty.isPtrAtRuntime(zcu)) { + try writer.writeByte('('); + try f.renderType(writer, switch (int_info.signedness) { + .unsigned => Type.usize, + .signed => Type.isize, + }); + try writer.writeByte(')'); + } + try f.writeCValue(writer, element, .Other); } - try f.writeCValue(writer, element, .Other); - } - - try writer.print(", {}", .{ - try f.fmtIntLiteral(try zcu.intValue(bit_offset_ty, bit_offset)), - }); - try f.object.dg.renderBuiltinInfo(writer, inst_ty, .bits); - try writer.writeByte(')'); - if (!empty) try writer.writeByte(')'); - bit_offset += field_ty.bitSize(zcu); - empty = false; - } + try writer.print(", {}", .{ + try f.fmtIntLiteral(try zcu.intValue(bit_offset_ty, bit_offset)), + }); + try f.object.dg.renderBuiltinInfo(writer, inst_ty, .bits); + try writer.writeByte(')'); + if (!empty) try writer.writeByte(')'); - try writer.writeAll(";\n"); - }, + bit_offset += field_ty.bitSize(zcu); + empty = false; + } + try writer.writeAll(";\n"); + }, + } + }, + .anon_struct_type => |anon_struct_info| for (0..anon_struct_info.types.len) |field_index| { + if (anon_struct_info.values.get(ip)[field_index] != .none) continue; + const field_ty = Type.fromInterned(anon_struct_info.types.get(ip)[field_index]); + if (!field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; + + const a = try Assignment.start(f, writer, field_ty); + try f.writeCValueMember(writer, local, if (anon_struct_info.fieldName(ip, field_index).unwrap()) |field_name| + .{ .identifier = ip.stringToSlice(field_name) } + else + .{ .field = field_index }); + try a.assign(f, writer); + try f.writeCValue(writer, resolved_elements[field_index], .Other); + try a.end(f, writer); }, else => unreachable, } @@ -7225,15 +7189,15 @@ fn airUnionInit(f: *Function, inst: Air.Inst.Index) !CValue { const extra = f.air.extraData(Air.UnionInit, ty_pl.payload).data; const union_ty = f.typeOfIndex(inst); - const union_obj = zcu.typeToUnion(union_ty).?; - const field_name = union_obj.loadTagType(ip).names.get(ip)[extra.field_index]; + const loaded_union = ip.loadUnionType(union_ty.toIntern()); + const field_name = loaded_union.loadTagType(ip).names.get(ip)[extra.field_index]; const payload_ty = f.typeOf(extra.init); const payload = try f.resolveInst(extra.init); try reap(f, inst, &.{extra.init}); const writer = f.object.writer(); const local = try f.allocLocal(inst, union_ty); - if (union_obj.getLayout(ip) == .@"packed") { + if (loaded_union.getLayout(ip) == .@"packed") { try f.writeCValue(writer, local, .Other); try writer.writeAll(" = "); try f.writeCValue(writer, payload, .Initializer); @@ -7465,16 +7429,16 @@ fn airCVaStart(f: *Function, inst: Air.Inst.Index) !CValue { const inst_ty = f.typeOfIndex(inst); const decl_index = f.object.dg.pass.decl; const decl = zcu.declPtr(decl_index); - const fn_cty = try f.typeToCType(decl.typeOf(zcu), .complete); - const param_len = fn_cty.castTag(.varargs_function).?.data.param_types.len; + const function_ctype = try f.ctypeFromType(decl.typeOf(zcu), .complete); + const params_len = function_ctype.info(&f.object.dg.ctype_pool).function.param_ctypes.len; const writer = f.object.writer(); const local = try f.allocLocal(inst, inst_ty); try writer.writeAll("va_start(*(va_list *)&"); try f.writeCValue(writer, local, .Other); - if (param_len > 0) { + if (params_len > 0) { try writer.writeAll(", "); - try f.writeCValue(writer, .{ .arg = param_len - 1 }, .FunctionArgument); + try f.writeCValue(writer, .{ .arg = params_len - 1 }, .FunctionArgument); } try writer.writeAll(");\n"); return local; @@ -7823,7 +7787,7 @@ const FormatIntLiteralContext = struct { dg: *DeclGen, int_info: InternPool.Key.IntType, kind: CType.Kind, - cty: CType, + ctype: CType, val: Value, }; fn formatIntLiteral( @@ -7834,6 +7798,7 @@ fn formatIntLiteral( ) @TypeOf(writer).Error!void { const zcu = data.dg.zcu; const target = &data.dg.mod.resolved_target.result; + const ctype_pool = &data.dg.ctype_pool; const ExpectedContents = struct { const base = 10; @@ -7867,7 +7832,7 @@ fn formatIntLiteral( } else data.val.toBigInt(&int_buf, zcu); assert(int.fitsInTwosComp(data.int_info.signedness, data.int_info.bits)); - const c_bits: usize = @intCast(data.cty.byteSize(data.dg.ctypes.set, data.dg.mod) * 8); + const c_bits: usize = @intCast(data.ctype.byteSize(ctype_pool, data.dg.mod) * 8); var one_limbs: [BigInt.calcLimbLen(1)]BigIntLimb = undefined; const one = BigInt.Mutable.init(&one_limbs, 1).toConst(); @@ -7879,45 +7844,45 @@ fn formatIntLiteral( defer allocator.free(wrap.limbs); const c_limb_info: struct { - cty: CType, + ctype: CType, count: usize, endian: std.builtin.Endian, homogeneous: bool, - } = switch (data.cty.tag()) { - else => .{ - .cty = CType.initTag(.void), - .count = 1, - .endian = .little, - .homogeneous = true, - }, - .zig_u128, .zig_i128 => .{ - .cty = CType.initTag(.uint64_t), - .count = 2, - .endian = .big, - .homogeneous = false, - }, - .array => info: { - const array_data = data.cty.castTag(.array).?.data; - break :info .{ - .cty = data.dg.indexToCType(array_data.elem_type), - .count = @as(usize, @intCast(array_data.len)), - .endian = target.cpu.arch.endian(), + } = switch (data.ctype.info(ctype_pool)) { + .basic => |basic_info| switch (basic_info) { + else => .{ + .ctype = .{ .index = .void }, + .count = 1, + .endian = .little, .homogeneous = true, - }; + }, + .zig_u128, .zig_i128 => .{ + .ctype = .{ .index = .uint64_t }, + .count = 2, + .endian = .big, + .homogeneous = false, + }, + }, + .array => |array_info| .{ + .ctype = array_info.elem_ctype, + .count = @intCast(array_info.len), + .endian = target.cpu.arch.endian(), + .homogeneous = true, }, + else => unreachable, }; if (c_limb_info.count == 1) { if (wrap.addWrap(int, one, data.int_info.signedness, c_bits) or data.int_info.signedness == .signed and wrap.subWrap(int, one, data.int_info.signedness, c_bits)) return writer.print("{s}_{s}", .{ - data.cty.getStandardDefineAbbrev() orelse return writer.print("zig_{s}Int_{c}{d}", .{ + data.ctype.getStandardDefineAbbrev() orelse return writer.print("zig_{s}Int_{c}{d}", .{ if (int.positive) "max" else "min", signAbbrev(data.int_info.signedness), c_bits, }), if (int.positive) "MAX" else "MIN", }); if (!int.positive) try writer.writeByte('-'); - try data.cty.renderLiteralPrefix(writer, data.kind); + try data.ctype.renderLiteralPrefix(writer, data.kind, ctype_pool); const style: struct { base: u8, case: std.fmt.Case = undefined } = switch (fmt.len) { 0 => .{ .base = 10 }, @@ -7948,7 +7913,7 @@ fn formatIntLiteral( defer allocator.free(string); try writer.writeAll(string); } else { - try data.cty.renderLiteralPrefix(writer, data.kind); + try data.ctype.renderLiteralPrefix(writer, data.kind, ctype_pool); wrap.convertToTwosComplement(int, data.int_info.signedness, c_bits); @memset(wrap.limbs[wrap.len..], 0); wrap.len = wrap.limbs.len; @@ -7958,7 +7923,7 @@ fn formatIntLiteral( .signedness = undefined, .bits = @as(u16, @intCast(@divExact(c_bits, c_limb_info.count))), }; - var c_limb_cty: CType = undefined; + var c_limb_ctype: CType = undefined; var limb_offset: usize = 0; const most_significant_limb_i = wrap.len - limbs_per_c_limb; @@ -7979,7 +7944,7 @@ fn formatIntLiteral( { // most significant limb is actually signed c_limb_int_info.signedness = .signed; - c_limb_cty = c_limb_info.cty.toSigned(); + c_limb_ctype = c_limb_info.ctype.toSigned(); c_limb_mut.positive = wrap.positive; c_limb_mut.truncate( @@ -7989,7 +7954,7 @@ fn formatIntLiteral( ); } else { c_limb_int_info.signedness = .unsigned; - c_limb_cty = c_limb_info.cty; + c_limb_ctype = c_limb_info.ctype; } if (limb_offset > 0) try writer.writeAll(", "); @@ -7997,12 +7962,12 @@ fn formatIntLiteral( .dg = data.dg, .int_info = c_limb_int_info, .kind = data.kind, - .cty = c_limb_cty, + .ctype = c_limb_ctype, .val = try zcu.intValue_big(Type.comptime_int, c_limb_mut.toConst()), }, fmt, options, writer); } } - try data.cty.renderLiteralSuffix(writer); + try data.ctype.renderLiteralSuffix(writer, ctype_pool); } const Materialize = struct { @@ -8045,10 +8010,10 @@ const Materialize = struct { }; const Assignment = struct { - cty: CType.Index, + ctype: CType, pub fn init(f: *Function, ty: Type) !Assignment { - return .{ .cty = try f.typeToIndex(ty, .complete) }; + return .{ .ctype = try f.ctypeFromType(ty, .complete) }; } pub fn start(f: *Function, writer: anytype, ty: Type) !Assignment { @@ -8076,7 +8041,7 @@ const Assignment = struct { .assign => {}, .memcpy => { try writer.writeAll(", sizeof("); - try f.renderCType(writer, self.cty); + try f.renderCType(writer, self.ctype); try writer.writeAll("))"); }, } @@ -8084,7 +8049,7 @@ const Assignment = struct { } fn strategy(self: Assignment, f: *Function) enum { assign, memcpy } { - return switch (f.indexToCType(self.cty).tag()) { + return switch (self.ctype.info(&f.object.dg.ctype_pool)) { else => .assign, .array, .vector => .memcpy, }; @@ -8129,28 +8094,6 @@ const Vectorize = struct { } }; -fn lowerFnRetTy(ret_ty: Type, zcu: *Zcu) !Type { - if (ret_ty.toIntern() == .noreturn_type) return Type.noreturn; - - if (lowersToArray(ret_ty, zcu)) { - const gpa = zcu.gpa; - const ip = &zcu.intern_pool; - const names = [1]InternPool.NullTerminatedString{ - try ip.getOrPutString(gpa, "array"), - }; - const types = [1]InternPool.Index{ret_ty.toIntern()}; - const values = [1]InternPool.Index{.none}; - const interned = try ip.getAnonStructType(gpa, .{ - .names = &names, - .types = &types, - .values = &values, - }); - return Type.fromInterned(interned); - } - - return if (ret_ty.hasRuntimeBitsIgnoreComptime(zcu)) ret_ty else Type.void; -} - fn lowersToArray(ty: Type, zcu: *Zcu) bool { return switch (ty.zigTypeTag(zcu)) { .Array, .Vector => return true, diff --git a/src/codegen/c/Type.zig b/src/codegen/c/Type.zig new file mode 100644 index 000000000000..16fb7d708ad4 --- /dev/null +++ b/src/codegen/c/Type.zig @@ -0,0 +1,2472 @@ +index: CType.Index, + +pub fn fromPoolIndex(pool_index: usize) CType { + return .{ .index = @enumFromInt(CType.Index.first_pool_index + pool_index) }; +} + +pub fn toPoolIndex(ctype: CType) ?u32 { + const pool_index, const is_basic = + @subWithOverflow(@intFromEnum(ctype.index), CType.Index.first_pool_index); + return switch (is_basic) { + 0 => pool_index, + 1 => null, + }; +} + +pub fn eql(lhs: CType, rhs: CType) bool { + return lhs.index == rhs.index; +} + +pub fn isBool(ctype: CType) bool { + return switch (ctype.index) { + ._Bool, .bool => true, + else => false, + }; +} + +pub fn isInteger(ctype: CType) bool { + return switch (ctype.index) { + .char, + .@"signed char", + .short, + .int, + .long, + .@"long long", + .@"unsigned char", + .@"unsigned short", + .@"unsigned int", + .@"unsigned long", + .@"unsigned long long", + .size_t, + .ptrdiff_t, + .uint8_t, + .int8_t, + .uint16_t, + .int16_t, + .uint32_t, + .int32_t, + .uint64_t, + .int64_t, + .uintptr_t, + .intptr_t, + .zig_u128, + .zig_i128, + => true, + else => false, + }; +} + +pub fn signedness(ctype: CType, mod: *Module) std.builtin.Signedness { + return switch (ctype.index) { + .char => mod.resolved_target.result.charSignedness(), + .@"signed char", + .short, + .int, + .long, + .@"long long", + .ptrdiff_t, + .int8_t, + .int16_t, + .int32_t, + .int64_t, + .intptr_t, + .zig_i128, + => .signed, + .@"unsigned char", + .@"unsigned short", + .@"unsigned int", + .@"unsigned long", + .@"unsigned long long", + .size_t, + .uint8_t, + .uint16_t, + .uint32_t, + .uint64_t, + .uintptr_t, + .zig_u128, + => .unsigned, + else => unreachable, + }; +} + +pub fn isFloat(ctype: CType) bool { + return switch (ctype.index) { + .float, + .double, + .@"long double", + .zig_f16, + .zig_f32, + .zig_f64, + .zig_f80, + .zig_f128, + .zig_c_longdouble, + => true, + else => false, + }; +} + +pub fn toSigned(ctype: CType) CType { + return switch (ctype.index) { + .char, .@"signed char", .@"unsigned char" => .{ .index = .@"signed char" }, + .short, .@"unsigned short" => .{ .index = .short }, + .int, .@"unsigned int" => .{ .index = .int }, + .long, .@"unsigned long" => .{ .index = .long }, + .@"long long", .@"unsigned long long" => .{ .index = .@"long long" }, + .size_t, .ptrdiff_t => .{ .index = .ptrdiff_t }, + .uint8_t, .int8_t => .{ .index = .int8_t }, + .uint16_t, .int16_t => .{ .index = .int16_t }, + .uint32_t, .int32_t => .{ .index = .int32_t }, + .uint64_t, .int64_t => .{ .index = .int64_t }, + .uintptr_t, .intptr_t => .{ .index = .intptr_t }, + .zig_u128, .zig_i128 => .{ .index = .zig_i128 }, + .float, + .double, + .@"long double", + .zig_f16, + .zig_f32, + .zig_f80, + .zig_f128, + .zig_c_longdouble, + => ctype, + else => unreachable, + }; +} + +pub fn toUnsigned(ctype: CType) CType { + return switch (ctype.index) { + .char, .@"signed char", .@"unsigned char" => .{ .index = .@"unsigned char" }, + .short, .@"unsigned short" => .{ .index = .@"unsigned short" }, + .int, .@"unsigned int" => .{ .index = .@"unsigned int" }, + .long, .@"unsigned long" => .{ .index = .@"unsigned long" }, + .@"long long", .@"unsigned long long" => .{ .index = .@"unsigned long long" }, + .size_t, .ptrdiff_t => .{ .index = .size_t }, + .uint8_t, .int8_t => .{ .index = .uint8_t }, + .uint16_t, .int16_t => .{ .index = .uint16_t }, + .uint32_t, .int32_t => .{ .index = .uint32_t }, + .uint64_t, .int64_t => .{ .index = .uint64_t }, + .uintptr_t, .intptr_t => .{ .index = .uintptr_t }, + .zig_u128, .zig_i128 => .{ .index = .zig_u128 }, + else => unreachable, + }; +} + +pub fn toSignedness(ctype: CType, s: std.builtin.Signedness) CType { + return switch (s) { + .unsigned => ctype.toUnsigned(), + .signed => ctype.toSigned(), + }; +} + +pub fn getStandardDefineAbbrev(ctype: CType) ?[]const u8 { + return switch (ctype.index) { + .char => "CHAR", + .@"signed char" => "SCHAR", + .short => "SHRT", + .int => "INT", + .long => "LONG", + .@"long long" => "LLONG", + .@"unsigned char" => "UCHAR", + .@"unsigned short" => "USHRT", + .@"unsigned int" => "UINT", + .@"unsigned long" => "ULONG", + .@"unsigned long long" => "ULLONG", + .float => "FLT", + .double => "DBL", + .@"long double" => "LDBL", + .size_t => "SIZE", + .ptrdiff_t => "PTRDIFF", + .uint8_t => "UINT8", + .int8_t => "INT8", + .uint16_t => "UINT16", + .int16_t => "INT16", + .uint32_t => "UINT32", + .int32_t => "INT32", + .uint64_t => "UINT64", + .int64_t => "INT64", + .uintptr_t => "UINTPTR", + .intptr_t => "INTPTR", + else => null, + }; +} + +pub fn renderLiteralPrefix(ctype: CType, writer: anytype, kind: Kind, pool: *const Pool) @TypeOf(writer).Error!void { + switch (ctype.info(pool)) { + .basic => |basic_info| switch (basic_info) { + .void => unreachable, + ._Bool, + .char, + .@"signed char", + .short, + .@"unsigned short", + .bool, + .size_t, + .ptrdiff_t, + .uintptr_t, + .intptr_t, + => switch (kind) { + else => try writer.print("({s})", .{@tagName(basic_info)}), + .global => {}, + }, + .int, + .long, + .@"long long", + .@"unsigned char", + .@"unsigned int", + .@"unsigned long", + .@"unsigned long long", + .float, + .double, + .@"long double", + => {}, + .uint8_t, + .int8_t, + .uint16_t, + .int16_t, + .uint32_t, + .int32_t, + .uint64_t, + .int64_t, + => try writer.print("{s}_C(", .{ctype.getStandardDefineAbbrev().?}), + .zig_u128, + .zig_i128, + .zig_f16, + .zig_f32, + .zig_f64, + .zig_f80, + .zig_f128, + .zig_c_longdouble, + => try writer.print("zig_{s}_{s}(", .{ + switch (kind) { + else => "make", + .global => "init", + }, + @tagName(basic_info)["zig_".len..], + }), + .va_list => unreachable, + _ => unreachable, + }, + .array, .vector => try writer.writeByte('{'), + else => unreachable, + } +} + +pub fn renderLiteralSuffix(ctype: CType, writer: anytype, pool: *const Pool) @TypeOf(writer).Error!void { + switch (ctype.info(pool)) { + .basic => |basic_info| switch (basic_info) { + .void => unreachable, + ._Bool => {}, + .char, + .@"signed char", + .short, + .int, + => {}, + .long => try writer.writeByte('l'), + .@"long long" => try writer.writeAll("ll"), + .@"unsigned char", + .@"unsigned short", + .@"unsigned int", + => try writer.writeByte('u'), + .@"unsigned long", + .size_t, + .uintptr_t, + => try writer.writeAll("ul"), + .@"unsigned long long" => try writer.writeAll("ull"), + .float => try writer.writeByte('f'), + .double => {}, + .@"long double" => try writer.writeByte('l'), + .bool, + .ptrdiff_t, + .intptr_t, + => {}, + .uint8_t, + .int8_t, + .uint16_t, + .int16_t, + .uint32_t, + .int32_t, + .uint64_t, + .int64_t, + .zig_u128, + .zig_i128, + .zig_f16, + .zig_f32, + .zig_f64, + .zig_f80, + .zig_f128, + .zig_c_longdouble, + => try writer.writeByte(')'), + .va_list => unreachable, + _ => unreachable, + }, + .array, .vector => try writer.writeByte('}'), + else => unreachable, + } +} + +pub fn floatActiveBits(ctype: CType, mod: *Module) u16 { + const target = &mod.resolved_target.result; + return switch (ctype.index) { + .float => target.c_type_bit_size(.float), + .double => target.c_type_bit_size(.double), + .@"long double", .zig_c_longdouble => target.c_type_bit_size(.longdouble), + .zig_f16 => 16, + .zig_f32 => 32, + .zig_f64 => 64, + .zig_f80 => 80, + .zig_f128 => 128, + else => unreachable, + }; +} + +pub fn byteSize(ctype: CType, pool: *const Pool, mod: *Module) u64 { + const target = &mod.resolved_target.result; + return switch (ctype.info(pool)) { + .basic => |basic_info| switch (basic_info) { + .void => 0, + .char, .@"signed char", ._Bool, .@"unsigned char", .bool, .uint8_t, .int8_t => 1, + .short => target.c_type_byte_size(.short), + .int => target.c_type_byte_size(.int), + .long => target.c_type_byte_size(.long), + .@"long long" => target.c_type_byte_size(.longlong), + .@"unsigned short" => target.c_type_byte_size(.ushort), + .@"unsigned int" => target.c_type_byte_size(.uint), + .@"unsigned long" => target.c_type_byte_size(.ulong), + .@"unsigned long long" => target.c_type_byte_size(.ulonglong), + .float => target.c_type_byte_size(.float), + .double => target.c_type_byte_size(.double), + .@"long double" => target.c_type_byte_size(.longdouble), + .size_t, + .ptrdiff_t, + .uintptr_t, + .intptr_t, + => @divExact(target.ptrBitWidth(), 8), + .uint16_t, .int16_t, .zig_f16 => 2, + .uint32_t, .int32_t, .zig_f32 => 4, + .uint64_t, .int64_t, .zig_f64 => 8, + .zig_u128, .zig_i128, .zig_f128 => 16, + .zig_f80 => if (target.c_type_bit_size(.longdouble) == 80) + target.c_type_byte_size(.longdouble) + else + 16, + .zig_c_longdouble => target.c_type_byte_size(.longdouble), + .va_list => unreachable, + _ => unreachable, + }, + .pointer => @divExact(target.ptrBitWidth(), 8), + .array, .vector => |sequence_info| sequence_info.elem_ctype.byteSize(pool, mod) * sequence_info.len, + else => unreachable, + }; +} + +pub fn info(ctype: CType, pool: *const Pool) Info { + const pool_index = ctype.toPoolIndex() orelse return .{ .basic = ctype.index }; + const item = pool.items.get(pool_index); + switch (item.tag) { + .basic => unreachable, + .pointer => return .{ .pointer = .{ + .elem_ctype = .{ .index = @enumFromInt(item.data) }, + } }, + .pointer_const => return .{ .pointer = .{ + .elem_ctype = .{ .index = @enumFromInt(item.data) }, + .@"const" = true, + } }, + .pointer_volatile => return .{ .pointer = .{ + .elem_ctype = .{ .index = @enumFromInt(item.data) }, + .@"volatile" = true, + } }, + .pointer_const_volatile => return .{ .pointer = .{ + .elem_ctype = .{ .index = @enumFromInt(item.data) }, + .@"const" = true, + .@"volatile" = true, + } }, + .aligned => { + const extra = pool.getExtra(Pool.Aligned, item.data); + return .{ .aligned = .{ + .ctype = .{ .index = extra.ctype }, + .alignas = extra.flags.alignas, + } }; + }, + .array_small => { + const extra = pool.getExtra(Pool.SequenceSmall, item.data); + return .{ .array = .{ + .elem_ctype = .{ .index = extra.elem_ctype }, + .len = extra.len, + } }; + }, + .array_large => { + const extra = pool.getExtra(Pool.SequenceLarge, item.data); + return .{ .array = .{ + .elem_ctype = .{ .index = extra.elem_ctype }, + .len = extra.len(), + } }; + }, + .vector => { + const extra = pool.getExtra(Pool.SequenceSmall, item.data); + return .{ .vector = .{ + .elem_ctype = .{ .index = extra.elem_ctype }, + .len = extra.len, + } }; + }, + .fwd_decl_struct_anon => { + const extra_trail = pool.getExtraTrail(Pool.FwdDeclAnon, item.data); + return .{ .fwd_decl = .{ + .tag = .@"struct", + .name = .{ .anon = .{ + .extra_index = extra_trail.trail.extra_index, + .len = extra_trail.extra.fields_len, + } }, + } }; + }, + .fwd_decl_union_anon => { + const extra_trail = pool.getExtraTrail(Pool.FwdDeclAnon, item.data); + return .{ .fwd_decl = .{ + .tag = .@"union", + .name = .{ .anon = .{ + .extra_index = extra_trail.trail.extra_index, + .len = extra_trail.extra.fields_len, + } }, + } }; + }, + .fwd_decl_struct => return .{ .fwd_decl = .{ + .tag = .@"struct", + .name = .{ .owner_decl = @enumFromInt(item.data) }, + } }, + .fwd_decl_union => return .{ .fwd_decl = .{ + .tag = .@"union", + .name = .{ .owner_decl = @enumFromInt(item.data) }, + } }, + .aggregate_struct_anon => { + const extra_trail = pool.getExtraTrail(Pool.AggregateAnon, item.data); + return .{ .aggregate = .{ + .tag = .@"struct", + .name = .{ .anon = .{ + .owner_decl = extra_trail.extra.owner_decl, + .id = extra_trail.extra.id, + } }, + .fields = .{ + .extra_index = extra_trail.trail.extra_index, + .len = extra_trail.extra.fields_len, + }, + } }; + }, + .aggregate_union_anon => { + const extra_trail = pool.getExtraTrail(Pool.AggregateAnon, item.data); + return .{ .aggregate = .{ + .tag = .@"union", + .name = .{ .anon = .{ + .owner_decl = extra_trail.extra.owner_decl, + .id = extra_trail.extra.id, + } }, + .fields = .{ + .extra_index = extra_trail.trail.extra_index, + .len = extra_trail.extra.fields_len, + }, + } }; + }, + .aggregate_struct_packed_anon => { + const extra_trail = pool.getExtraTrail(Pool.AggregateAnon, item.data); + return .{ .aggregate = .{ + .tag = .@"struct", + .@"packed" = true, + .name = .{ .anon = .{ + .owner_decl = extra_trail.extra.owner_decl, + .id = extra_trail.extra.id, + } }, + .fields = .{ + .extra_index = extra_trail.trail.extra_index, + .len = extra_trail.extra.fields_len, + }, + } }; + }, + .aggregate_union_packed_anon => { + const extra_trail = pool.getExtraTrail(Pool.AggregateAnon, item.data); + return .{ .aggregate = .{ + .tag = .@"union", + .@"packed" = true, + .name = .{ .anon = .{ + .owner_decl = extra_trail.extra.owner_decl, + .id = extra_trail.extra.id, + } }, + .fields = .{ + .extra_index = extra_trail.trail.extra_index, + .len = extra_trail.extra.fields_len, + }, + } }; + }, + .aggregate_struct => { + const extra_trail = pool.getExtraTrail(Pool.Aggregate, item.data); + return .{ .aggregate = .{ + .tag = .@"struct", + .name = .{ .fwd_decl = .{ .index = extra_trail.extra.fwd_decl } }, + .fields = .{ + .extra_index = extra_trail.trail.extra_index, + .len = extra_trail.extra.fields_len, + }, + } }; + }, + .aggregate_union => { + const extra_trail = pool.getExtraTrail(Pool.Aggregate, item.data); + return .{ .aggregate = .{ + .tag = .@"union", + .name = .{ .fwd_decl = .{ .index = extra_trail.extra.fwd_decl } }, + .fields = .{ + .extra_index = extra_trail.trail.extra_index, + .len = extra_trail.extra.fields_len, + }, + } }; + }, + .aggregate_struct_packed => { + const extra_trail = pool.getExtraTrail(Pool.Aggregate, item.data); + return .{ .aggregate = .{ + .tag = .@"struct", + .@"packed" = true, + .name = .{ .fwd_decl = .{ .index = extra_trail.extra.fwd_decl } }, + .fields = .{ + .extra_index = extra_trail.trail.extra_index, + .len = extra_trail.extra.fields_len, + }, + } }; + }, + .aggregate_union_packed => { + const extra_trail = pool.getExtraTrail(Pool.Aggregate, item.data); + return .{ .aggregate = .{ + .tag = .@"union", + .@"packed" = true, + .name = .{ .fwd_decl = .{ .index = extra_trail.extra.fwd_decl } }, + .fields = .{ + .extra_index = extra_trail.trail.extra_index, + .len = extra_trail.extra.fields_len, + }, + } }; + }, + .function => { + const extra_trail = pool.getExtraTrail(Pool.Function, item.data); + return .{ .function = .{ + .return_ctype = .{ .index = extra_trail.extra.return_ctype }, + .param_ctypes = .{ + .extra_index = extra_trail.trail.extra_index, + .len = extra_trail.extra.param_ctypes_len, + }, + .varargs = false, + } }; + }, + .function_varargs => { + const extra_trail = pool.getExtraTrail(Pool.Function, item.data); + return .{ .function = .{ + .return_ctype = .{ .index = extra_trail.extra.return_ctype }, + .param_ctypes = .{ + .extra_index = extra_trail.trail.extra_index, + .len = extra_trail.extra.param_ctypes_len, + }, + .varargs = true, + } }; + }, + } +} + +pub fn hash(ctype: CType, pool: *const Pool) Pool.Map.Hash { + return if (ctype.toPoolIndex()) |pool_index| + pool.map.entries.items(.hash)[pool_index] + else + CType.Index.basic_hashes[@intFromEnum(ctype.index)]; +} + +fn toForward(ctype: CType, pool: *Pool, allocator: std.mem.Allocator) !CType { + return switch (ctype.info(pool)) { + .basic, .pointer, .fwd_decl => ctype, + .aligned => |aligned_info| pool.getAligned(allocator, .{ + .ctype = try aligned_info.ctype.toForward(pool, allocator), + .alignas = aligned_info.alignas, + }), + .array => |array_info| pool.getArray(allocator, .{ + .elem_ctype = try array_info.elem_ctype.toForward(pool, allocator), + .len = array_info.len, + }), + .vector => |vector_info| pool.getVector(allocator, .{ + .elem_ctype = try vector_info.elem_ctype.toForward(pool, allocator), + .len = vector_info.len, + }), + .aggregate => |aggregate_info| switch (aggregate_info.name) { + .anon => ctype, + .fwd_decl => |fwd_decl| fwd_decl, + }, + .function => unreachable, + }; +} + +const Index = enum(u32) { + void, + + // C basic types + char, + + @"signed char", + short, + int, + long, + @"long long", + + _Bool, + @"unsigned char", + @"unsigned short", + @"unsigned int", + @"unsigned long", + @"unsigned long long", + + float, + double, + @"long double", + + // C header types + // - stdbool.h + bool, + // - stddef.h + size_t, + ptrdiff_t, + // - stdint.h + uint8_t, + int8_t, + uint16_t, + int16_t, + uint32_t, + int32_t, + uint64_t, + int64_t, + uintptr_t, + intptr_t, + // - stdarg.h + va_list, + + // zig.h types + zig_u128, + zig_i128, + zig_f16, + zig_f32, + zig_f64, + zig_f80, + zig_f128, + zig_c_longdouble, + + _, + + const first_pool_index: u32 = @typeInfo(CType.Index).Enum.fields.len; + const basic_hashes = init: { + @setEvalBranchQuota(1_600); + var basic_hashes_init: [first_pool_index]Pool.Map.Hash = undefined; + for (&basic_hashes_init, 0..) |*basic_hash, index| { + const ctype_index: CType.Index = @enumFromInt(index); + var hasher = Pool.Hasher.init; + hasher.update(@intFromEnum(ctype_index)); + basic_hash.* = hasher.final(.basic); + } + break :init basic_hashes_init; + }; +}; + +const Slice = struct { + extra_index: Pool.ExtraIndex, + len: u32, + + pub fn at(slice: CType.Slice, index: usize, pool: *const Pool) CType { + var extra: Pool.ExtraTrail = .{ .extra_index = slice.extra_index }; + return .{ .index = extra.next(slice.len, CType.Index, pool)[index] }; + } +}; + +pub const Kind = enum { + forward, + forward_parameter, + complete, + global, + parameter, + + pub fn isForward(kind: Kind) bool { + return switch (kind) { + .forward, .forward_parameter => true, + .complete, .global, .parameter => false, + }; + } + + pub fn isParameter(kind: Kind) bool { + return switch (kind) { + .forward_parameter, .parameter => true, + .forward, .complete, .global => false, + }; + } + + pub fn asParameter(kind: Kind) Kind { + return switch (kind) { + .forward, .forward_parameter => .forward_parameter, + .complete, .parameter, .global => .parameter, + }; + } + + pub fn noParameter(kind: Kind) Kind { + return switch (kind) { + .forward, .forward_parameter => .forward, + .complete, .parameter => .complete, + .global => .global, + }; + } +}; + +pub const String = struct { + index: String.Index, + + const Index = enum(u32) { + _, + }; + + pub fn slice(string: String, pool: *const Pool) []const u8 { + const start = pool.string_indices.items[@intFromEnum(string.index)]; + const end = pool.string_indices.items[@intFromEnum(string.index) + 1]; + return pool.string_bytes.items[start..end]; + } +}; + +pub const Info = union(enum) { + basic: CType.Index, + pointer: Pointer, + aligned: Aligned, + array: Sequence, + vector: Sequence, + fwd_decl: FwdDecl, + aggregate: Aggregate, + function: Function, + + pub const Pointer = struct { + elem_ctype: CType, + @"const": bool = false, + @"volatile": bool = false, + + fn tag(pointer_info: Pointer) Pool.Tag { + return @enumFromInt(@intFromEnum(Pool.Tag.pointer) + + @as(u2, @bitCast(packed struct(u2) { + @"const": bool, + @"volatile": bool, + }{ + .@"const" = pointer_info.@"const", + .@"volatile" = pointer_info.@"volatile", + }))); + } + }; + + pub const Aligned = struct { + ctype: CType, + alignas: AlignAs, + }; + + pub const Sequence = struct { + elem_ctype: CType, + len: u64, + }; + + pub const Tag = enum { @"enum", @"struct", @"union" }; + + pub const Field = struct { + name: String, + ctype: CType, + alignas: AlignAs, + + pub const Slice = struct { + extra_index: Pool.ExtraIndex, + len: u32, + + pub fn at(slice: Field.Slice, index: usize, pool: *const Pool) Field { + assert(index < slice.len); + const extra = pool.getExtra(Pool.Field, @intCast(slice.extra_index + + index * @typeInfo(Pool.Field).Struct.fields.len)); + return .{ + .name = .{ .index = extra.name }, + .ctype = .{ .index = extra.ctype }, + .alignas = extra.flags.alignas, + }; + } + + fn eqlAdapted( + lhs_slice: Field.Slice, + lhs_pool: *const Pool, + rhs_slice: Field.Slice, + rhs_pool: *const Pool, + pool_adapter: anytype, + ) bool { + if (lhs_slice.len != rhs_slice.len) return false; + for (0..lhs_slice.len) |index| { + if (!lhs_slice.at(index, lhs_pool).eqlAdapted( + lhs_pool, + rhs_slice.at(index, rhs_pool), + rhs_pool, + pool_adapter, + )) return false; + } + return true; + } + }; + + fn eqlAdapted( + lhs_field: Field, + lhs_pool: *const Pool, + rhs_field: Field, + rhs_pool: *const Pool, + pool_adapter: anytype, + ) bool { + return std.meta.eql(lhs_field.alignas, rhs_field.alignas) and + pool_adapter.eql(lhs_field.ctype, rhs_field.ctype) and std.mem.eql( + u8, + lhs_field.name.slice(lhs_pool), + rhs_field.name.slice(rhs_pool), + ); + } + }; + + pub const FwdDecl = struct { + tag: Tag, + name: union(enum) { + anon: Field.Slice, + owner_decl: DeclIndex, + }, + }; + + pub const Aggregate = struct { + tag: Tag, + @"packed": bool = false, + name: union(enum) { + anon: struct { + owner_decl: DeclIndex, + id: u32, + }, + fwd_decl: CType, + }, + fields: Field.Slice, + }; + + pub const Function = struct { + return_ctype: CType, + param_ctypes: CType.Slice, + varargs: bool = false, + }; + + pub fn eqlAdapted( + lhs_info: Info, + lhs_pool: *const Pool, + rhs_ctype: CType, + rhs_pool: *const Pool, + pool_adapter: anytype, + ) bool { + const InfoTag = @typeInfo(Info).Union.tag_type.?; + const rhs_info = rhs_ctype.info(rhs_pool); + if (@as(InfoTag, lhs_info) != @as(InfoTag, rhs_info)) return false; + return switch (lhs_info) { + .basic => |lhs_basic_info| lhs_basic_info == rhs_info.basic, + .pointer => |lhs_pointer_info| lhs_pointer_info.@"const" == rhs_info.pointer.@"const" and + lhs_pointer_info.@"volatile" == rhs_info.pointer.@"volatile" and + pool_adapter.eql(lhs_pointer_info.elem_ctype, rhs_info.pointer.elem_ctype), + .aligned => |lhs_aligned_info| std.meta.eql(lhs_aligned_info.alignas, rhs_info.aligned.alignas) and + pool_adapter.eql(lhs_aligned_info.ctype, rhs_info.aligned.ctype), + .array => |lhs_array_info| lhs_array_info.len == rhs_info.array.len and + pool_adapter.eql(lhs_array_info.elem_ctype, rhs_info.array.elem_ctype), + .vector => |lhs_vector_info| lhs_vector_info.len == rhs_info.vector.len and + pool_adapter.eql(lhs_vector_info.elem_ctype, rhs_info.vector.elem_ctype), + .fwd_decl => |lhs_fwd_decl_info| lhs_fwd_decl_info.tag == rhs_info.fwd_decl.tag and + switch (lhs_fwd_decl_info.name) { + .anon => |lhs_anon| rhs_info.fwd_decl.name == .anon and lhs_anon.eqlAdapted( + lhs_pool, + rhs_info.fwd_decl.name.anon, + rhs_pool, + pool_adapter, + ), + .owner_decl => |lhs_owner_decl| rhs_info.fwd_decl.name == .owner_decl and + lhs_owner_decl == rhs_info.fwd_decl.name.owner_decl, + }, + .aggregate => |lhs_aggregate_info| lhs_aggregate_info.tag == rhs_info.aggregate.tag and + lhs_aggregate_info.@"packed" == rhs_info.aggregate.@"packed" and + switch (lhs_aggregate_info.name) { + .anon => |lhs_anon| rhs_info.aggregate.name == .anon and + lhs_anon.owner_decl == rhs_info.aggregate.name.anon.owner_decl and + lhs_anon.id == rhs_info.aggregate.name.anon.id, + .fwd_decl => |lhs_fwd_decl| rhs_info.aggregate.name == .fwd_decl and + pool_adapter.eql(lhs_fwd_decl, rhs_info.aggregate.name.fwd_decl), + } and lhs_aggregate_info.fields.eqlAdapted( + lhs_pool, + rhs_info.aggregate.fields, + rhs_pool, + pool_adapter, + ), + .function => |lhs_function_info| lhs_function_info.param_ctypes.len == + rhs_info.function.param_ctypes.len and + pool_adapter.eql(lhs_function_info.return_ctype, rhs_info.function.return_ctype) and + for (0..lhs_function_info.param_ctypes.len) |param_index| + { + if (!pool_adapter.eql( + lhs_function_info.param_ctypes.at(param_index, lhs_pool), + rhs_info.function.param_ctypes.at(param_index, rhs_pool), + )) break false; + } else true, + }; + } +}; + +pub const Pool = struct { + map: Map, + items: std.MultiArrayList(Item), + extra: std.ArrayListUnmanaged(u32), + + string_map: Map, + string_indices: std.ArrayListUnmanaged(u32), + string_bytes: std.ArrayListUnmanaged(u8), + + const Map = std.AutoArrayHashMapUnmanaged(void, void); + + pub const empty: Pool = .{ + .map = .{}, + .items = .{}, + .extra = .{}, + + .string_map = .{}, + .string_indices = .{}, + .string_bytes = .{}, + }; + + pub fn init(pool: *Pool, allocator: std.mem.Allocator) !void { + if (pool.string_indices.items.len == 0) + try pool.string_indices.append(allocator, 0); + } + + pub fn deinit(pool: *Pool, allocator: std.mem.Allocator) void { + pool.map.deinit(allocator); + pool.items.deinit(allocator); + pool.extra.deinit(allocator); + + pool.string_map.deinit(allocator); + pool.string_indices.deinit(allocator); + pool.string_bytes.deinit(allocator); + + pool.* = undefined; + } + + pub fn move(pool: *Pool) Pool { + defer pool.* = empty; + return pool.*; + } + + pub fn clearRetainingCapacity(pool: *Pool) void { + pool.map.clearRetainingCapacity(); + pool.items.shrinkRetainingCapacity(0); + pool.extra.clearRetainingCapacity(); + + pool.string_map.clearRetainingCapacity(); + pool.string_indices.shrinkRetainingCapacity(1); + pool.string_bytes.clearRetainingCapacity(); + } + + pub fn freeUnusedCapacity(pool: *Pool, allocator: std.mem.Allocator) void { + pool.map.shrinkAndFree(allocator, pool.map.count()); + pool.items.shrinkAndFree(allocator, pool.items.len); + pool.extra.shrinkAndFree(allocator, pool.extra.items.len); + + pool.string_map.shrinkAndFree(allocator, pool.string_map.count()); + pool.string_indices.shrinkAndFree(allocator, pool.string_indices.items.len); + pool.string_bytes.shrinkAndFree(allocator, pool.string_bytes.items.len); + } + + pub fn getPointer(pool: *Pool, allocator: std.mem.Allocator, pointer_info: Info.Pointer) !CType { + var hasher = Hasher.init; + hasher.update(pointer_info.elem_ctype.hash(pool)); + return pool.tagData( + allocator, + hasher, + pointer_info.tag(), + @intFromEnum(pointer_info.elem_ctype.index), + ); + } + + pub fn getAligned(pool: *Pool, allocator: std.mem.Allocator, aligned_info: Info.Aligned) !CType { + return pool.tagExtra(allocator, .aligned, Aligned, .{ + .ctype = aligned_info.ctype.index, + .flags = .{ .alignas = aligned_info.alignas }, + }); + } + + pub fn getArray(pool: *Pool, allocator: std.mem.Allocator, array_info: Info.Sequence) !CType { + return if (std.math.cast(u32, array_info.len)) |small_len| + pool.tagExtra(allocator, .array_small, SequenceSmall, .{ + .elem_ctype = array_info.elem_ctype.index, + .len = small_len, + }) + else + pool.tagExtra(allocator, .array_large, SequenceLarge, .{ + .elem_ctype = array_info.elem_ctype.index, + .len_lo = @truncate(array_info.len >> 0), + .len_hi = @truncate(array_info.len >> 32), + }); + } + + pub fn getVector(pool: *Pool, allocator: std.mem.Allocator, vector_info: Info.Sequence) !CType { + return pool.tagExtra(allocator, .vector, SequenceSmall, .{ + .elem_ctype = vector_info.elem_ctype.index, + .len = @intCast(vector_info.len), + }); + } + + pub fn getFwdDecl( + pool: *Pool, + allocator: std.mem.Allocator, + fwd_decl_info: struct { + tag: Info.Tag, + name: union(enum) { + anon: []const Info.Field, + owner_decl: DeclIndex, + }, + }, + ) !CType { + var hasher = Hasher.init; + switch (fwd_decl_info.name) { + .anon => |fields| { + const ExpectedContents = [32]CType; + var stack align(@max( + @alignOf(std.heap.StackFallbackAllocator(0)), + @alignOf(ExpectedContents), + )) = std.heap.stackFallback(@sizeOf(ExpectedContents), allocator); + const stack_allocator = stack.get(); + const field_ctypes = try stack_allocator.alloc(CType, fields.len); + defer stack_allocator.free(field_ctypes); + for (field_ctypes, fields) |*field_ctype, field| + field_ctype.* = try field.ctype.toForward(pool, allocator); + const extra: FwdDeclAnon = .{ .fields_len = @intCast(fields.len) }; + const extra_index = try pool.addExtra( + allocator, + FwdDeclAnon, + extra, + fields.len * @typeInfo(Field).Struct.fields.len, + ); + for (fields, field_ctypes) |field, field_ctype| pool.addHashedExtraAssumeCapacity( + &hasher, + Field, + .{ + .name = field.name.index, + .ctype = field_ctype.index, + .flags = .{ .alignas = field.alignas }, + }, + ); + hasher.updateExtra(FwdDeclAnon, extra, pool); + return pool.tagTrailingExtra(allocator, hasher, switch (fwd_decl_info.tag) { + .@"struct" => .fwd_decl_struct_anon, + .@"union" => .fwd_decl_union_anon, + .@"enum" => unreachable, + }, extra_index); + }, + .owner_decl => |owner_decl| { + hasher.update(owner_decl); + return pool.tagData(allocator, hasher, switch (fwd_decl_info.tag) { + .@"struct" => .fwd_decl_struct, + .@"union" => .fwd_decl_union, + .@"enum" => unreachable, + }, @intFromEnum(owner_decl)); + }, + } + } + + pub fn getAggregate( + pool: *Pool, + allocator: std.mem.Allocator, + aggregate_info: struct { + tag: Info.Tag, + @"packed": bool = false, + name: union(enum) { + anon: struct { + owner_decl: DeclIndex, + id: u32, + }, + fwd_decl: CType, + }, + fields: []const Info.Field, + }, + ) !CType { + var hasher = Hasher.init; + switch (aggregate_info.name) { + .anon => |anon| { + const extra: AggregateAnon = .{ + .owner_decl = anon.owner_decl, + .id = anon.id, + .fields_len = @intCast(aggregate_info.fields.len), + }; + const extra_index = try pool.addExtra( + allocator, + AggregateAnon, + extra, + aggregate_info.fields.len * @typeInfo(Field).Struct.fields.len, + ); + for (aggregate_info.fields) |field| pool.addHashedExtraAssumeCapacity(&hasher, Field, .{ + .name = field.name.index, + .ctype = field.ctype.index, + .flags = .{ .alignas = field.alignas }, + }); + hasher.updateExtra(AggregateAnon, extra, pool); + return pool.tagTrailingExtra(allocator, hasher, switch (aggregate_info.tag) { + .@"struct" => switch (aggregate_info.@"packed") { + false => .aggregate_struct_anon, + true => .aggregate_struct_packed_anon, + }, + .@"union" => switch (aggregate_info.@"packed") { + false => .aggregate_union_anon, + true => .aggregate_union_packed_anon, + }, + .@"enum" => unreachable, + }, extra_index); + }, + .fwd_decl => |fwd_decl| { + const extra: Aggregate = .{ + .fwd_decl = fwd_decl.index, + .fields_len = @intCast(aggregate_info.fields.len), + }; + const extra_index = try pool.addExtra( + allocator, + Aggregate, + extra, + aggregate_info.fields.len * @typeInfo(Field).Struct.fields.len, + ); + for (aggregate_info.fields) |field| pool.addHashedExtraAssumeCapacity(&hasher, Field, .{ + .name = field.name.index, + .ctype = field.ctype.index, + .flags = .{ .alignas = field.alignas }, + }); + hasher.updateExtra(Aggregate, extra, pool); + return pool.tagTrailingExtra(allocator, hasher, switch (aggregate_info.tag) { + .@"struct" => switch (aggregate_info.@"packed") { + false => .aggregate_struct, + true => .aggregate_struct_packed, + }, + .@"union" => switch (aggregate_info.@"packed") { + false => .aggregate_union, + true => .aggregate_union_packed, + }, + .@"enum" => unreachable, + }, extra_index); + }, + } + } + + pub fn getFunction( + pool: *Pool, + allocator: std.mem.Allocator, + function_info: struct { + return_ctype: CType, + param_ctypes: []const CType, + varargs: bool = false, + }, + ) !CType { + var hasher = Hasher.init; + const extra: Function = .{ + .return_ctype = function_info.return_ctype.index, + .param_ctypes_len = @intCast(function_info.param_ctypes.len), + }; + const extra_index = try pool.addExtra(allocator, Function, extra, function_info.param_ctypes.len); + for (function_info.param_ctypes) |param_ctype| { + hasher.update(param_ctype.hash(pool)); + pool.extra.appendAssumeCapacity(@intFromEnum(param_ctype.index)); + } + hasher.updateExtra(Function, extra, pool); + return pool.tagTrailingExtra(allocator, hasher, switch (function_info.varargs) { + false => .function, + true => .function_varargs, + }, extra_index); + } + + pub fn fromFields( + pool: *Pool, + allocator: std.mem.Allocator, + tag: Info.Tag, + fields: []Info.Field, + kind: Kind, + ) !CType { + sortFields(fields); + const fwd_decl = try pool.getFwdDecl(allocator, .{ + .tag = tag, + .name = .{ .anon = fields }, + }); + return if (kind.isForward()) fwd_decl else pool.getAggregate(allocator, .{ + .tag = tag, + .name = .{ .fwd_decl = fwd_decl }, + .fields = fields, + }); + } + + pub fn fromIntInfo( + pool: *Pool, + allocator: std.mem.Allocator, + int_info: std.builtin.Type.Int, + mod: *Module, + kind: Kind, + ) !CType { + switch (int_info.bits) { + 0 => return .{ .index = .void }, + 1...8 => switch (int_info.signedness) { + .unsigned => return .{ .index = .uint8_t }, + .signed => return .{ .index = .int8_t }, + }, + 9...16 => switch (int_info.signedness) { + .unsigned => return .{ .index = .uint16_t }, + .signed => return .{ .index = .int16_t }, + }, + 17...32 => switch (int_info.signedness) { + .unsigned => return .{ .index = .uint32_t }, + .signed => return .{ .index = .int32_t }, + }, + 33...64 => switch (int_info.signedness) { + .unsigned => return .{ .index = .uint64_t }, + .signed => return .{ .index = .int64_t }, + }, + 65...128 => switch (int_info.signedness) { + .unsigned => return .{ .index = .zig_u128 }, + .signed => return .{ .index = .zig_i128 }, + }, + else => { + const target = &mod.resolved_target.result; + const abi_align = Type.intAbiAlignment(int_info.bits, target.*); + const abi_align_bytes = abi_align.toByteUnits().?; + const array_ctype = try pool.getArray(allocator, .{ + .len = @divExact(Type.intAbiSize(int_info.bits, target.*), abi_align_bytes), + .elem_ctype = try pool.fromIntInfo(allocator, .{ + .signedness = .unsigned, + .bits = @intCast(abi_align_bytes * 8), + }, mod, kind.noParameter()), + }); + if (!kind.isParameter()) return array_ctype; + var fields = [_]Info.Field{ + .{ + .name = try pool.string(allocator, "array"), + .ctype = array_ctype, + .alignas = AlignAs.fromAbiAlignment(abi_align), + }, + }; + return pool.fromFields(allocator, .@"struct", &fields, kind); + }, + } + } + + pub fn fromType( + pool: *Pool, + allocator: std.mem.Allocator, + scratch: *std.ArrayListUnmanaged(u32), + ty: Type, + zcu: *Zcu, + mod: *Module, + kind: Kind, + ) !CType { + const ip = &zcu.intern_pool; + switch (ty.toIntern()) { + .u0_type, + .i0_type, + .anyopaque_type, + .void_type, + .empty_struct_type, + .type_type, + .comptime_int_type, + .comptime_float_type, + .null_type, + .undefined_type, + .enum_literal_type, + => return .{ .index = .void }, + .u1_type, .u8_type => return .{ .index = .uint8_t }, + .i8_type => return .{ .index = .int8_t }, + .u16_type => return .{ .index = .uint16_t }, + .i16_type => return .{ .index = .int16_t }, + .u29_type, .u32_type => return .{ .index = .uint32_t }, + .i32_type => return .{ .index = .int32_t }, + .u64_type => return .{ .index = .uint64_t }, + .i64_type => return .{ .index = .int64_t }, + .u80_type, .u128_type => return .{ .index = .zig_u128 }, + .i128_type => return .{ .index = .zig_i128 }, + .usize_type => return .{ .index = .uintptr_t }, + .isize_type => return .{ .index = .intptr_t }, + .c_char_type => return .{ .index = .char }, + .c_short_type => return .{ .index = .short }, + .c_ushort_type => return .{ .index = .@"unsigned short" }, + .c_int_type => return .{ .index = .int }, + .c_uint_type => return .{ .index = .@"unsigned int" }, + .c_long_type => return .{ .index = .long }, + .c_ulong_type => return .{ .index = .@"unsigned long" }, + .c_longlong_type => return .{ .index = .@"long long" }, + .c_ulonglong_type => return .{ .index = .@"unsigned long long" }, + .c_longdouble_type => return .{ .index = .@"long double" }, + .f16_type => return .{ .index = .zig_f16 }, + .f32_type => return .{ .index = .zig_f32 }, + .f64_type => return .{ .index = .zig_f64 }, + .f80_type => return .{ .index = .zig_f80 }, + .f128_type => return .{ .index = .zig_f128 }, + .bool_type, .optional_noreturn_type => return .{ .index = .bool }, + .noreturn_type, + .anyframe_type, + .generic_poison_type, + => unreachable, + .atomic_order_type, + .atomic_rmw_op_type, + .calling_convention_type, + .address_space_type, + .float_mode_type, + .reduce_op_type, + .call_modifier_type, + => |ip_index| return pool.fromType( + allocator, + scratch, + Type.fromInterned(ip.loadEnumType(ip_index).tag_ty), + zcu, + mod, + kind, + ), + .anyerror_type, + .anyerror_void_error_union_type, + .adhoc_inferred_error_set_type, + => return pool.fromIntInfo(allocator, .{ + .signedness = .unsigned, + .bits = zcu.errorSetBits(), + }, mod, kind), + .manyptr_u8_type, + => return pool.getPointer(allocator, .{ + .elem_ctype = .{ .index = .uint8_t }, + }), + .manyptr_const_u8_type, + .manyptr_const_u8_sentinel_0_type, + => return pool.getPointer(allocator, .{ + .elem_ctype = .{ .index = .uint8_t }, + .@"const" = true, + }), + .single_const_pointer_to_comptime_int_type, + => return pool.getPointer(allocator, .{ + .elem_ctype = .{ .index = .void }, + .@"const" = true, + }), + .slice_const_u8_type, + .slice_const_u8_sentinel_0_type, + => { + const target = &mod.resolved_target.result; + var fields = [_]Info.Field{ + .{ + .name = try pool.string(allocator, "ptr"), + .ctype = try pool.getPointer(allocator, .{ + .elem_ctype = .{ .index = .uint8_t }, + .@"const" = true, + }), + .alignas = AlignAs.fromAbiAlignment(Type.ptrAbiAlignment(target.*)), + }, + .{ + .name = try pool.string(allocator, "len"), + .ctype = .{ .index = .uintptr_t }, + .alignas = AlignAs.fromAbiAlignment( + Type.intAbiAlignment(target.ptrBitWidth(), target.*), + ), + }, + }; + return pool.fromFields(allocator, .@"struct", &fields, kind); + }, + + .undef, + .zero, + .zero_usize, + .zero_u8, + .one, + .one_usize, + .one_u8, + .four_u8, + .negative_one, + .calling_convention_c, + .calling_convention_inline, + .void_value, + .unreachable_value, + .null_value, + .bool_true, + .bool_false, + .empty_struct, + .generic_poison, + .var_args_param_type, + .none, + => unreachable, + + //.prefetch_options_type, + //.export_options_type, + //.extern_options_type, + //.type_info_type, + //_, + else => |ip_index| switch (ip.indexToKey(ip_index)) { + .int_type => |int_info| return pool.fromIntInfo(allocator, int_info, mod, kind), + .ptr_type => |ptr_info| switch (ptr_info.flags.size) { + .One, .Many, .C => return pool.getPointer(allocator, .{ + .elem_ctype = elem_ctype: { + if (ptr_info.packed_offset.host_size > 0 and + ptr_info.flags.vector_index == .none) + break :elem_ctype try pool.fromIntInfo(allocator, .{ + .signedness = .unsigned, + .bits = ptr_info.packed_offset.host_size * 8, + }, mod, .forward); + const elem: Info.Aligned = .{ + .ctype = try pool.fromType( + allocator, + scratch, + Type.fromInterned(ptr_info.child), + zcu, + mod, + .forward, + ), + .alignas = AlignAs.fromAlignment(.{ + .@"align" = ptr_info.flags.alignment, + .abi = Type.fromInterned(ptr_info.child).abiAlignment(zcu), + }), + }; + if (elem.alignas.abiOrder().compare(.gte)) + break :elem_ctype elem.ctype; + break :elem_ctype try pool.getAligned(allocator, elem); + }, + .@"const" = ptr_info.flags.is_const, + .@"volatile" = ptr_info.flags.is_volatile, + }), + .Slice => { + const target = &mod.resolved_target.result; + var fields = [_]Info.Field{ + .{ + .name = try pool.string(allocator, "ptr"), + .ctype = try pool.fromType( + allocator, + scratch, + Type.fromInterned(ip.slicePtrType(ip_index)), + zcu, + mod, + kind, + ), + .alignas = AlignAs.fromAbiAlignment(Type.ptrAbiAlignment(target.*)), + }, + .{ + .name = try pool.string(allocator, "len"), + .ctype = .{ .index = .uintptr_t }, + .alignas = AlignAs.fromAbiAlignment( + Type.intAbiAlignment(target.ptrBitWidth(), target.*), + ), + }, + }; + return pool.fromFields(allocator, .@"struct", &fields, kind); + }, + }, + .array_type => |array_info| { + const len = array_info.len + @intFromBool(array_info.sentinel != .none); + if (len == 0) return .{ .index = .void }; + const elem_type = Type.fromInterned(array_info.child); + const elem_ctype = try pool.fromType( + allocator, + scratch, + elem_type, + zcu, + mod, + kind.noParameter(), + ); + if (elem_ctype.index == .void) return .{ .index = .void }; + const array_ctype = try pool.getArray(allocator, .{ + .elem_ctype = elem_ctype, + .len = array_info.len + @intFromBool(array_info.sentinel != .none), + }); + if (!kind.isParameter()) return array_ctype; + var fields = [_]Info.Field{ + .{ + .name = try pool.string(allocator, "array"), + .ctype = array_ctype, + .alignas = AlignAs.fromAbiAlignment(elem_type.abiAlignment(zcu)), + }, + }; + return pool.fromFields(allocator, .@"struct", &fields, kind); + }, + .vector_type => |vector_info| { + if (vector_info.len == 0) return .{ .index = .void }; + const elem_type = Type.fromInterned(vector_info.child); + const elem_ctype = try pool.fromType( + allocator, + scratch, + elem_type, + zcu, + mod, + kind.noParameter(), + ); + if (elem_ctype.index == .void) return .{ .index = .void }; + const vector_ctype = try pool.getVector(allocator, .{ + .elem_ctype = elem_ctype, + .len = vector_info.len, + }); + if (!kind.isParameter()) return vector_ctype; + var fields = [_]Info.Field{ + .{ + .name = try pool.string(allocator, "array"), + .ctype = vector_ctype, + .alignas = AlignAs.fromAbiAlignment(elem_type.abiAlignment(zcu)), + }, + }; + return pool.fromFields(allocator, .@"struct", &fields, kind); + }, + .opt_type => |payload_type| { + if (ip.isNoReturn(payload_type)) return .{ .index = .void }; + const payload_ctype = try pool.fromType( + allocator, + scratch, + Type.fromInterned(payload_type), + zcu, + mod, + kind.noParameter(), + ); + if (payload_ctype.index == .void) return .{ .index = .bool }; + switch (payload_type) { + .anyerror_type => return payload_ctype, + else => switch (ip.indexToKey(payload_type)) { + .ptr_type => |payload_ptr_info| if (payload_ptr_info.flags.size != .C and + !payload_ptr_info.flags.is_allowzero) return payload_ctype, + .error_set_type, .inferred_error_set_type => return payload_ctype, + else => {}, + }, + } + var fields = [_]Info.Field{ + .{ + .name = try pool.string(allocator, "is_null"), + .ctype = .{ .index = .bool }, + .alignas = AlignAs.fromAbiAlignment(.@"1"), + }, + .{ + .name = try pool.string(allocator, "payload"), + .ctype = payload_ctype, + .alignas = AlignAs.fromAbiAlignment( + Type.fromInterned(payload_type).abiAlignment(zcu), + ), + }, + }; + return pool.fromFields(allocator, .@"struct", &fields, kind); + }, + .anyframe_type => unreachable, + .error_union_type => |error_union_info| { + const error_set_bits = zcu.errorSetBits(); + const error_set_ctype = try pool.fromIntInfo(allocator, .{ + .signedness = .unsigned, + .bits = error_set_bits, + }, mod, kind); + if (ip.isNoReturn(error_union_info.payload_type)) return error_set_ctype; + const payload_type = Type.fromInterned(error_union_info.payload_type); + const payload_ctype = try pool.fromType( + allocator, + scratch, + payload_type, + zcu, + mod, + kind.noParameter(), + ); + if (payload_ctype.index == .void) return error_set_ctype; + const target = &mod.resolved_target.result; + var fields = [_]Info.Field{ + .{ + .name = try pool.string(allocator, "error"), + .ctype = error_set_ctype, + .alignas = AlignAs.fromAbiAlignment( + Type.intAbiAlignment(error_set_bits, target.*), + ), + }, + .{ + .name = try pool.string(allocator, "payload"), + .ctype = payload_ctype, + .alignas = AlignAs.fromAbiAlignment(payload_type.abiAlignment(zcu)), + }, + }; + return pool.fromFields(allocator, .@"struct", &fields, kind); + }, + .simple_type => unreachable, + .struct_type => { + const loaded_struct = ip.loadStructType(ip_index); + switch (loaded_struct.layout) { + .auto, .@"extern" => { + const fwd_decl = try pool.getFwdDecl(allocator, .{ + .tag = .@"struct", + .name = .{ .owner_decl = loaded_struct.decl.unwrap().? }, + }); + if (kind.isForward()) return if (ty.hasRuntimeBitsIgnoreComptime(zcu)) + fwd_decl + else + .{ .index = .void }; + const scratch_top = scratch.items.len; + defer scratch.shrinkRetainingCapacity(scratch_top); + try scratch.ensureUnusedCapacity( + allocator, + loaded_struct.field_types.len * @typeInfo(Field).Struct.fields.len, + ); + var hasher = Hasher.init; + var tag: Tag = .aggregate_struct; + var field_it = loaded_struct.iterateRuntimeOrder(ip); + while (field_it.next()) |field_index| { + const field_type = Type.fromInterned( + loaded_struct.field_types.get(ip)[field_index], + ); + const field_ctype = try pool.fromType( + allocator, + scratch, + field_type, + zcu, + mod, + kind.noParameter(), + ); + if (field_ctype.index == .void) continue; + const field_name = if (loaded_struct.fieldName(ip, field_index) + .unwrap()) |field_name| + try pool.string(allocator, ip.stringToSlice(field_name)) + else + try pool.fmt(allocator, "f{d}", .{field_index}); + const field_alignas = AlignAs.fromAlignment(.{ + .@"align" = loaded_struct.fieldAlign(ip, field_index), + .abi = field_type.abiAlignment(zcu), + }); + pool.addHashedExtraAssumeCapacityTo(scratch, &hasher, Field, .{ + .name = field_name.index, + .ctype = field_ctype.index, + .flags = .{ .alignas = field_alignas }, + }); + if (field_alignas.abiOrder().compare(.lt)) + tag = .aggregate_struct_packed; + } + const fields_len: u32 = @intCast(@divExact( + scratch.items.len - scratch_top, + @typeInfo(Field).Struct.fields.len, + )); + if (fields_len == 0) return .{ .index = .void }; + try pool.ensureUnusedCapacity(allocator, 1); + const extra_index = try pool.addHashedExtra(allocator, &hasher, Aggregate, .{ + .fwd_decl = fwd_decl.index, + .fields_len = fields_len, + }, fields_len * @typeInfo(Field).Struct.fields.len); + pool.extra.appendSliceAssumeCapacity(scratch.items[scratch_top..]); + return pool.tagTrailingExtraAssumeCapacity(hasher, tag, extra_index); + }, + .@"packed" => return pool.fromType( + allocator, + scratch, + Type.fromInterned(loaded_struct.backingIntType(ip).*), + zcu, + mod, + kind, + ), + } + }, + .anon_struct_type => |anon_struct_info| { + const scratch_top = scratch.items.len; + defer scratch.shrinkRetainingCapacity(scratch_top); + try scratch.ensureUnusedCapacity(allocator, anon_struct_info.types.len * + @typeInfo(Field).Struct.fields.len); + var hasher = Hasher.init; + for (0..anon_struct_info.types.len) |field_index| { + if (anon_struct_info.values.get(ip)[field_index] != .none) continue; + const field_type = Type.fromInterned( + anon_struct_info.types.get(ip)[field_index], + ); + const field_ctype = try pool.fromType( + allocator, + scratch, + field_type, + zcu, + mod, + kind.noParameter(), + ); + if (field_ctype.index == .void) continue; + const field_name = if (anon_struct_info.fieldName(ip, @intCast(field_index)) + .unwrap()) |field_name| + try pool.string(allocator, ip.stringToSlice(field_name)) + else + try pool.fmt(allocator, "f{d}", .{field_index}); + pool.addHashedExtraAssumeCapacityTo(scratch, &hasher, Field, .{ + .name = field_name.index, + .ctype = field_ctype.index, + .flags = .{ .alignas = AlignAs.fromAbiAlignment( + field_type.abiAlignment(zcu), + ) }, + }); + } + const fields_len: u32 = @intCast(@divExact( + scratch.items.len - scratch_top, + @typeInfo(Field).Struct.fields.len, + )); + if (fields_len == 0) return .{ .index = .void }; + if (kind.isForward()) { + try pool.ensureUnusedCapacity(allocator, 1); + const extra_index = try pool.addHashedExtra( + allocator, + &hasher, + FwdDeclAnon, + .{ .fields_len = fields_len }, + fields_len * @typeInfo(Field).Struct.fields.len, + ); + pool.extra.appendSliceAssumeCapacity(scratch.items[scratch_top..]); + return pool.tagTrailingExtra( + allocator, + hasher, + .fwd_decl_struct_anon, + extra_index, + ); + } + const fwd_decl = try pool.fromType(allocator, scratch, ty, zcu, mod, .forward); + try pool.ensureUnusedCapacity(allocator, 1); + const extra_index = try pool.addHashedExtra(allocator, &hasher, Aggregate, .{ + .fwd_decl = fwd_decl.index, + .fields_len = fields_len, + }, fields_len * @typeInfo(Field).Struct.fields.len); + pool.extra.appendSliceAssumeCapacity(scratch.items[scratch_top..]); + return pool.tagTrailingExtraAssumeCapacity(hasher, .aggregate_struct, extra_index); + }, + .union_type => { + const loaded_union = ip.loadUnionType(ip_index); + switch (loaded_union.getLayout(ip)) { + .auto, .@"extern" => { + const has_tag = loaded_union.hasTag(ip); + const fwd_decl = try pool.getFwdDecl(allocator, .{ + .tag = if (has_tag) .@"struct" else .@"union", + .name = .{ .owner_decl = loaded_union.decl }, + }); + if (kind.isForward()) return if (ty.hasRuntimeBitsIgnoreComptime(zcu)) + fwd_decl + else + .{ .index = .void }; + const loaded_tag = loaded_union.loadTagType(ip); + const scratch_top = scratch.items.len; + defer scratch.shrinkRetainingCapacity(scratch_top); + try scratch.ensureUnusedCapacity( + allocator, + loaded_union.field_types.len * @typeInfo(Field).Struct.fields.len, + ); + var hasher = Hasher.init; + var tag: Tag = .aggregate_union; + var payload_align: Alignment = .@"1"; + for (0..loaded_union.field_types.len) |field_index| { + const field_type = Type.fromInterned( + loaded_union.field_types.get(ip)[field_index], + ); + if (ip.isNoReturn(field_type.toIntern())) continue; + const field_ctype = try pool.fromType( + allocator, + scratch, + field_type, + zcu, + mod, + kind.noParameter(), + ); + if (field_ctype.index == .void) continue; + const field_name = try pool.string( + allocator, + ip.stringToSlice(loaded_tag.names.get(ip)[field_index]), + ); + const field_alignas = AlignAs.fromAlignment(.{ + .@"align" = loaded_union.fieldAlign(ip, @intCast(field_index)), + .abi = field_type.abiAlignment(zcu), + }); + pool.addHashedExtraAssumeCapacityTo(scratch, &hasher, Field, .{ + .name = field_name.index, + .ctype = field_ctype.index, + .flags = .{ .alignas = field_alignas }, + }); + if (field_alignas.abiOrder().compare(.lt)) + tag = .aggregate_union_packed; + payload_align = payload_align.maxStrict(field_alignas.@"align"); + } + const fields_len: u32 = @intCast(@divExact( + scratch.items.len - scratch_top, + @typeInfo(Field).Struct.fields.len, + )); + if (!has_tag) { + if (fields_len == 0) return .{ .index = .void }; + try pool.ensureUnusedCapacity(allocator, 1); + const extra_index = try pool.addHashedExtra( + allocator, + &hasher, + Aggregate, + .{ .fwd_decl = fwd_decl.index, .fields_len = fields_len }, + fields_len * @typeInfo(Field).Struct.fields.len, + ); + pool.extra.appendSliceAssumeCapacity(scratch.items[scratch_top..]); + return pool.tagTrailingExtraAssumeCapacity(hasher, tag, extra_index); + } + try pool.ensureUnusedCapacity(allocator, 2); + var struct_fields: [2]Info.Field = undefined; + var struct_fields_len: usize = 0; + if (loaded_tag.tag_ty != .comptime_int_type) { + const tag_type = Type.fromInterned(loaded_tag.tag_ty); + const tag_ctype: CType = try pool.fromType( + allocator, + scratch, + tag_type, + zcu, + mod, + kind.noParameter(), + ); + if (tag_ctype.index != .void) { + struct_fields[struct_fields_len] = .{ + .name = try pool.string(allocator, "tag"), + .ctype = tag_ctype, + .alignas = AlignAs.fromAbiAlignment(tag_type.abiAlignment(zcu)), + }; + struct_fields_len += 1; + } + } + if (fields_len > 0) { + const payload_ctype = payload_ctype: { + const extra_index = try pool.addHashedExtra( + allocator, + &hasher, + AggregateAnon, + .{ + .owner_decl = loaded_union.decl, + .id = 0, + .fields_len = fields_len, + }, + fields_len * @typeInfo(Field).Struct.fields.len, + ); + pool.extra.appendSliceAssumeCapacity(scratch.items[scratch_top..]); + break :payload_ctype pool.tagTrailingExtraAssumeCapacity( + hasher, + switch (tag) { + .aggregate_union => .aggregate_union_anon, + .aggregate_union_packed => .aggregate_union_packed_anon, + else => unreachable, + }, + extra_index, + ); + }; + if (payload_ctype.index != .void) { + struct_fields[struct_fields_len] = .{ + .name = try pool.string(allocator, "payload"), + .ctype = payload_ctype, + .alignas = AlignAs.fromAbiAlignment(payload_align), + }; + struct_fields_len += 1; + } + } + if (struct_fields_len == 0) return .{ .index = .void }; + sortFields(struct_fields[0..struct_fields_len]); + return pool.getAggregate(allocator, .{ + .tag = .@"struct", + .name = .{ .fwd_decl = fwd_decl }, + .fields = struct_fields[0..struct_fields_len], + }); + }, + .@"packed" => return pool.fromIntInfo(allocator, .{ + .signedness = .unsigned, + .bits = @intCast(ty.bitSize(zcu)), + }, mod, kind), + } + }, + .opaque_type => return .{ .index = .void }, + .enum_type => return pool.fromType( + allocator, + scratch, + Type.fromInterned(ip.loadEnumType(ip_index).tag_ty), + zcu, + mod, + kind, + ), + .func_type => |func_info| if (func_info.is_generic) return .{ .index = .void } else { + const scratch_top = scratch.items.len; + defer scratch.shrinkRetainingCapacity(scratch_top); + try scratch.ensureUnusedCapacity(allocator, func_info.param_types.len); + var hasher = Hasher.init; + const return_type = Type.fromInterned(func_info.return_type); + const return_ctype: CType = + if (!ip.isNoReturn(func_info.return_type)) try pool.fromType( + allocator, + scratch, + return_type, + zcu, + mod, + kind.asParameter(), + ) else .{ .index = .void }; + for (0..func_info.param_types.len) |param_index| { + const param_type = Type.fromInterned( + func_info.param_types.get(ip)[param_index], + ); + const param_ctype = try pool.fromType( + allocator, + scratch, + param_type, + zcu, + mod, + kind.asParameter(), + ); + if (param_ctype.index == .void) continue; + hasher.update(param_ctype.hash(pool)); + scratch.appendAssumeCapacity(@intFromEnum(param_ctype.index)); + } + const param_ctypes_len: u32 = @intCast(scratch.items.len - scratch_top); + try pool.ensureUnusedCapacity(allocator, 1); + const extra_index = try pool.addHashedExtra(allocator, &hasher, Function, .{ + .return_ctype = return_ctype.index, + .param_ctypes_len = param_ctypes_len, + }, param_ctypes_len); + pool.extra.appendSliceAssumeCapacity(scratch.items[scratch_top..]); + return pool.tagTrailingExtraAssumeCapacity(hasher, switch (func_info.is_var_args) { + false => .function, + true => .function_varargs, + }, extra_index); + }, + .error_set_type, + .inferred_error_set_type, + => return pool.fromIntInfo(allocator, .{ + .signedness = .unsigned, + .bits = zcu.errorSetBits(), + }, mod, kind), + + .undef, + .simple_value, + .variable, + .extern_func, + .func, + .int, + .err, + .error_union, + .enum_literal, + .enum_tag, + .empty_enum_value, + .float, + .ptr, + .slice, + .opt, + .aggregate, + .un, + .memoized_call, + => unreachable, + }, + } + } + + pub fn getOrPutAdapted( + pool: *Pool, + allocator: std.mem.Allocator, + source_pool: *const Pool, + source_ctype: CType, + pool_adapter: anytype, + ) !struct { CType, bool } { + const tag = source_pool.items.items(.tag)[ + source_ctype.toPoolIndex() orelse return .{ source_ctype, true } + ]; + try pool.ensureUnusedCapacity(allocator, 1); + const CTypeAdapter = struct { + pool: *const Pool, + source_pool: *const Pool, + source_info: Info, + pool_adapter: @TypeOf(pool_adapter), + pub fn hash(map_adapter: @This(), key_ctype: CType) Map.Hash { + return key_ctype.hash(map_adapter.source_pool); + } + pub fn eql(map_adapter: @This(), _: CType, _: void, pool_index: usize) bool { + return map_adapter.source_info.eqlAdapted( + map_adapter.source_pool, + CType.fromPoolIndex(pool_index), + map_adapter.pool, + map_adapter.pool_adapter, + ); + } + }; + const source_info = source_ctype.info(source_pool); + const gop = pool.map.getOrPutAssumeCapacityAdapted(source_ctype, CTypeAdapter{ + .pool = pool, + .source_pool = source_pool, + .source_info = source_info, + .pool_adapter = pool_adapter, + }); + errdefer _ = pool.map.pop(); + const ctype = CType.fromPoolIndex(gop.index); + if (!gop.found_existing) switch (source_info) { + .basic => unreachable, + .pointer => |pointer_info| pool.items.appendAssumeCapacity(.{ + .tag = tag, + .data = @intFromEnum(pool_adapter.copy(pointer_info.elem_ctype).index), + }), + .aligned => |aligned_info| pool.items.appendAssumeCapacity(.{ + .tag = tag, + .data = try pool.addExtra(allocator, Aligned, .{ + .ctype = pool_adapter.copy(aligned_info.ctype).index, + .flags = .{ .alignas = aligned_info.alignas }, + }, 0), + }), + .array, .vector => |sequence_info| pool.items.appendAssumeCapacity(.{ + .tag = tag, + .data = switch (tag) { + .array_small, .vector => try pool.addExtra(allocator, SequenceSmall, .{ + .elem_ctype = pool_adapter.copy(sequence_info.elem_ctype).index, + .len = @intCast(sequence_info.len), + }, 0), + .array_large => try pool.addExtra(allocator, SequenceLarge, .{ + .elem_ctype = pool_adapter.copy(sequence_info.elem_ctype).index, + .len_lo = @truncate(sequence_info.len >> 0), + .len_hi = @truncate(sequence_info.len >> 32), + }, 0), + else => unreachable, + }, + }), + .fwd_decl => |fwd_decl_info| switch (fwd_decl_info.name) { + .anon => |fields| { + pool.items.appendAssumeCapacity(.{ + .tag = tag, + .data = try pool.addExtra(allocator, FwdDeclAnon, .{ + .fields_len = fields.len, + }, fields.len * @typeInfo(Field).Struct.fields.len), + }); + for (0..fields.len) |field_index| { + const field = fields.at(field_index, source_pool); + const field_name = try pool.string(allocator, field.name.slice(source_pool)); + pool.addExtraAssumeCapacity(Field, .{ + .name = field_name.index, + .ctype = pool_adapter.copy(field.ctype).index, + .flags = .{ .alignas = field.alignas }, + }); + } + }, + .owner_decl => |owner_decl| pool.items.appendAssumeCapacity(.{ + .tag = tag, + .data = @intFromEnum(owner_decl), + }), + }, + .aggregate => |aggregate_info| { + pool.items.appendAssumeCapacity(.{ + .tag = tag, + .data = switch (aggregate_info.name) { + .anon => |anon| try pool.addExtra(allocator, AggregateAnon, .{ + .owner_decl = anon.owner_decl, + .id = anon.id, + .fields_len = aggregate_info.fields.len, + }, aggregate_info.fields.len * @typeInfo(Field).Struct.fields.len), + .fwd_decl => |fwd_decl| try pool.addExtra(allocator, Aggregate, .{ + .fwd_decl = pool_adapter.copy(fwd_decl).index, + .fields_len = aggregate_info.fields.len, + }, aggregate_info.fields.len * @typeInfo(Field).Struct.fields.len), + }, + }); + for (0..aggregate_info.fields.len) |field_index| { + const field = aggregate_info.fields.at(field_index, source_pool); + const field_name = try pool.string(allocator, field.name.slice(source_pool)); + pool.addExtraAssumeCapacity(Field, .{ + .name = field_name.index, + .ctype = pool_adapter.copy(field.ctype).index, + .flags = .{ .alignas = field.alignas }, + }); + } + }, + .function => |function_info| { + pool.items.appendAssumeCapacity(.{ + .tag = tag, + .data = try pool.addExtra(allocator, Function, .{ + .return_ctype = pool_adapter.copy(function_info.return_ctype).index, + .param_ctypes_len = function_info.param_ctypes.len, + }, function_info.param_ctypes.len), + }); + for (0..function_info.param_ctypes.len) |param_index| pool.extra.appendAssumeCapacity( + @intFromEnum(pool_adapter.copy( + function_info.param_ctypes.at(param_index, source_pool), + ).index), + ); + }, + }; + assert(source_info.eqlAdapted(source_pool, ctype, pool, pool_adapter)); + assert(source_ctype.hash(source_pool) == ctype.hash(pool)); + return .{ ctype, gop.found_existing }; + } + + pub fn string(pool: *Pool, allocator: std.mem.Allocator, str: []const u8) !String { + try pool.string_bytes.appendSlice(allocator, str); + return pool.trailingString(allocator); + } + + pub fn fmt( + pool: *Pool, + allocator: std.mem.Allocator, + comptime fmt_str: []const u8, + fmt_args: anytype, + ) !String { + try pool.string_bytes.writer(allocator).print(fmt_str, fmt_args); + return pool.trailingString(allocator); + } + + fn ensureUnusedCapacity(pool: *Pool, allocator: std.mem.Allocator, len: u32) !void { + try pool.map.ensureUnusedCapacity(allocator, len); + try pool.items.ensureUnusedCapacity(allocator, len); + } + + const Hasher = struct { + const Impl = std.hash.Wyhash; + impl: Impl, + + const init: Hasher = .{ .impl = Impl.init(0) }; + + fn updateExtra(hasher: *Hasher, comptime Extra: type, extra: Extra, pool: *const Pool) void { + inline for (@typeInfo(Extra).Struct.fields) |field| { + const value = @field(extra, field.name); + hasher.update(switch (field.type) { + Tag, String, CType => unreachable, + CType.Index => (CType{ .index = value }).hash(pool), + String.Index => (String{ .index = value }).slice(pool), + else => value, + }); + } + } + fn update(hasher: *Hasher, data: anytype) void { + switch (@TypeOf(data)) { + Tag => @compileError("pass tag to final"), + CType, CType.Index => @compileError("hash ctype.hash(pool) instead"), + String, String.Index => @compileError("hash string.slice(pool) instead"), + u32, DeclIndex, Aligned.Flags => hasher.impl.update(std.mem.asBytes(&data)), + []const u8 => hasher.impl.update(data), + else => @compileError("unhandled type: " ++ @typeName(@TypeOf(data))), + } + } + + fn final(hasher: Hasher, tag: Tag) Map.Hash { + var impl = hasher.impl; + impl.update(std.mem.asBytes(&tag)); + return @truncate(impl.final()); + } + }; + + fn tagData( + pool: *Pool, + allocator: std.mem.Allocator, + hasher: Hasher, + tag: Tag, + data: u32, + ) !CType { + try pool.ensureUnusedCapacity(allocator, 1); + const Key = struct { hash: Map.Hash, tag: Tag, data: u32 }; + const CTypeAdapter = struct { + pool: *const Pool, + pub fn hash(_: @This(), key: Key) Map.Hash { + return key.hash; + } + pub fn eql(ctype_adapter: @This(), lhs_key: Key, _: void, rhs_index: usize) bool { + const rhs_item = ctype_adapter.pool.items.get(rhs_index); + return lhs_key.tag == rhs_item.tag and lhs_key.data == rhs_item.data; + } + }; + const gop = pool.map.getOrPutAssumeCapacityAdapted( + Key{ .hash = hasher.final(tag), .tag = tag, .data = data }, + CTypeAdapter{ .pool = pool }, + ); + if (!gop.found_existing) pool.items.appendAssumeCapacity(.{ .tag = tag, .data = data }); + return CType.fromPoolIndex(gop.index); + } + + fn tagExtra( + pool: *Pool, + allocator: std.mem.Allocator, + tag: Tag, + comptime Extra: type, + extra: Extra, + ) !CType { + var hasher = Hasher.init; + hasher.updateExtra(Extra, extra, pool); + return pool.tagTrailingExtra( + allocator, + hasher, + tag, + try pool.addExtra(allocator, Extra, extra, 0), + ); + } + + fn tagTrailingExtra( + pool: *Pool, + allocator: std.mem.Allocator, + hasher: Hasher, + tag: Tag, + extra_index: ExtraIndex, + ) !CType { + try pool.ensureUnusedCapacity(allocator, 1); + return pool.tagTrailingExtraAssumeCapacity(hasher, tag, extra_index); + } + + fn tagTrailingExtraAssumeCapacity( + pool: *Pool, + hasher: Hasher, + tag: Tag, + extra_index: ExtraIndex, + ) CType { + const Key = struct { hash: Map.Hash, tag: Tag, extra: []const u32 }; + const CTypeAdapter = struct { + pool: *const Pool, + pub fn hash(_: @This(), key: Key) Map.Hash { + return key.hash; + } + pub fn eql(ctype_adapter: @This(), lhs_key: Key, _: void, rhs_index: usize) bool { + const rhs_item = ctype_adapter.pool.items.get(rhs_index); + if (lhs_key.tag != rhs_item.tag) return false; + const rhs_extra = ctype_adapter.pool.extra.items[rhs_item.data..]; + return std.mem.startsWith(u32, rhs_extra, lhs_key.extra); + } + }; + const gop = pool.map.getOrPutAssumeCapacityAdapted( + Key{ .hash = hasher.final(tag), .tag = tag, .extra = pool.extra.items[extra_index..] }, + CTypeAdapter{ .pool = pool }, + ); + if (gop.found_existing) + pool.extra.shrinkRetainingCapacity(extra_index) + else + pool.items.appendAssumeCapacity(.{ .tag = tag, .data = extra_index }); + return CType.fromPoolIndex(gop.index); + } + + fn sortFields(fields: []Info.Field) void { + std.mem.sort(Info.Field, fields, {}, struct { + fn before(_: void, lhs_field: Info.Field, rhs_field: Info.Field) bool { + return lhs_field.alignas.order(rhs_field.alignas).compare(.gt); + } + }.before); + } + + fn trailingString(pool: *Pool, allocator: std.mem.Allocator) !String { + const StringAdapter = struct { + pool: *const Pool, + pub fn hash(_: @This(), slice: []const u8) Map.Hash { + return @truncate(Hasher.Impl.hash(1, slice)); + } + pub fn eql(string_adapter: @This(), lhs_slice: []const u8, _: void, rhs_index: usize) bool { + const rhs_string: String = .{ .index = @enumFromInt(rhs_index) }; + const rhs_slice = rhs_string.slice(string_adapter.pool); + return std.mem.eql(u8, lhs_slice, rhs_slice); + } + }; + try pool.string_map.ensureUnusedCapacity(allocator, 1); + try pool.string_indices.ensureUnusedCapacity(allocator, 1); + + const start = pool.string_indices.getLast(); + const gop = pool.string_map.getOrPutAssumeCapacityAdapted( + @as([]const u8, pool.string_bytes.items[start..]), + StringAdapter{ .pool = pool }, + ); + if (gop.found_existing) + pool.string_bytes.shrinkRetainingCapacity(start) + else + pool.string_indices.appendAssumeCapacity(@intCast(pool.string_bytes.items.len)); + return .{ .index = @enumFromInt(gop.index) }; + } + + const Item = struct { + tag: Tag, + data: u32, + }; + + const ExtraIndex = u32; + + const Tag = enum(u8) { + basic, + pointer, + pointer_const, + pointer_volatile, + pointer_const_volatile, + aligned, + array_small, + array_large, + vector, + fwd_decl_struct_anon, + fwd_decl_union_anon, + fwd_decl_struct, + fwd_decl_union, + aggregate_struct_anon, + aggregate_struct_packed_anon, + aggregate_union_anon, + aggregate_union_packed_anon, + aggregate_struct, + aggregate_struct_packed, + aggregate_union, + aggregate_union_packed, + function, + function_varargs, + }; + + const Aligned = struct { + ctype: CType.Index, + flags: Flags, + + const Flags = packed struct(u32) { + alignas: AlignAs, + _: u20 = 0, + }; + }; + + const SequenceSmall = struct { + elem_ctype: CType.Index, + len: u32, + }; + + const SequenceLarge = struct { + elem_ctype: CType.Index, + len_lo: u32, + len_hi: u32, + + fn len(extra: SequenceLarge) u64 { + return @as(u64, extra.len_lo) << 0 | + @as(u64, extra.len_hi) << 32; + } + }; + + const Field = struct { + name: String.Index, + ctype: CType.Index, + flags: Flags, + + const Flags = Aligned.Flags; + }; + + const FwdDeclAnon = struct { + fields_len: u32, + }; + + const AggregateAnon = struct { + owner_decl: DeclIndex, + id: u32, + fields_len: u32, + }; + + const Aggregate = struct { + fwd_decl: CType.Index, + fields_len: u32, + }; + + const Function = struct { + return_ctype: CType.Index, + param_ctypes_len: u32, + }; + + fn addExtra( + pool: *Pool, + allocator: std.mem.Allocator, + comptime Extra: type, + extra: Extra, + trailing_len: usize, + ) !ExtraIndex { + try pool.extra.ensureUnusedCapacity( + allocator, + @typeInfo(Extra).Struct.fields.len + trailing_len, + ); + defer pool.addExtraAssumeCapacity(Extra, extra); + return @intCast(pool.extra.items.len); + } + fn addExtraAssumeCapacity(pool: *Pool, comptime Extra: type, extra: Extra) void { + addExtraAssumeCapacityTo(&pool.extra, Extra, extra); + } + fn addExtraAssumeCapacityTo( + array: *std.ArrayListUnmanaged(u32), + comptime Extra: type, + extra: Extra, + ) void { + inline for (@typeInfo(Extra).Struct.fields) |field| { + const value = @field(extra, field.name); + array.appendAssumeCapacity(switch (field.type) { + u32 => value, + CType.Index, String.Index, DeclIndex => @intFromEnum(value), + Aligned.Flags => @bitCast(value), + else => @compileError("bad field type: " ++ field.name ++ ": " ++ + @typeName(field.type)), + }); + } + } + + fn addHashedExtra( + pool: *Pool, + allocator: std.mem.Allocator, + hasher: *Hasher, + comptime Extra: type, + extra: Extra, + trailing_len: usize, + ) !ExtraIndex { + hasher.updateExtra(Extra, extra, pool); + return pool.addExtra(allocator, Extra, extra, trailing_len); + } + fn addHashedExtraAssumeCapacity( + pool: *Pool, + hasher: *Hasher, + comptime Extra: type, + extra: Extra, + ) void { + hasher.updateExtra(Extra, extra, pool); + pool.addExtraAssumeCapacity(Extra, extra); + } + fn addHashedExtraAssumeCapacityTo( + pool: *Pool, + array: *std.ArrayListUnmanaged(u32), + hasher: *Hasher, + comptime Extra: type, + extra: Extra, + ) void { + hasher.updateExtra(Extra, extra, pool); + addExtraAssumeCapacityTo(array, Extra, extra); + } + + const ExtraTrail = struct { + extra_index: ExtraIndex, + + fn next( + extra_trail: *ExtraTrail, + len: u32, + comptime Extra: type, + pool: *const Pool, + ) []const Extra { + defer extra_trail.extra_index += @intCast(len); + return @ptrCast(pool.extra.items[extra_trail.extra_index..][0..len]); + } + }; + + fn getExtraTrail( + pool: *const Pool, + comptime Extra: type, + extra_index: ExtraIndex, + ) struct { extra: Extra, trail: ExtraTrail } { + var extra: Extra = undefined; + const fields = @typeInfo(Extra).Struct.fields; + inline for (fields, pool.extra.items[extra_index..][0..fields.len]) |field, value| + @field(extra, field.name) = switch (field.type) { + u32 => value, + CType.Index, String.Index, DeclIndex => @enumFromInt(value), + Aligned.Flags => @bitCast(value), + else => @compileError("bad field type: " ++ field.name ++ ": " ++ @typeName(field.type)), + }; + return .{ + .extra = extra, + .trail = .{ .extra_index = extra_index + @as(ExtraIndex, @intCast(fields.len)) }, + }; + } + + fn getExtra(pool: *const Pool, comptime Extra: type, extra_index: ExtraIndex) Extra { + return pool.getExtraTrail(Extra, extra_index).extra; + } +}; + +pub const AlignAs = packed struct { + @"align": Alignment, + abi: Alignment, + + pub fn fromAlignment(alignas: AlignAs) AlignAs { + assert(alignas.abi != .none); + return .{ + .@"align" = if (alignas.@"align" != .none) alignas.@"align" else alignas.abi, + .abi = alignas.abi, + }; + } + pub fn fromAbiAlignment(abi: Alignment) AlignAs { + assert(abi != .none); + return .{ .@"align" = abi, .abi = abi }; + } + pub fn fromByteUnits(@"align": u64, abi: u64) AlignAs { + return fromAlignment(.{ + .@"align" = Alignment.fromByteUnits(@"align"), + .abi = Alignment.fromNonzeroByteUnits(abi), + }); + } + + pub fn order(lhs: AlignAs, rhs: AlignAs) std.math.Order { + return lhs.@"align".order(rhs.@"align"); + } + pub fn abiOrder(alignas: AlignAs) std.math.Order { + return alignas.@"align".order(alignas.abi); + } + pub fn toByteUnits(alignas: AlignAs) u64 { + return alignas.@"align".toByteUnits().?; + } +}; + +const Alignment = @import("../../InternPool.zig").Alignment; +const assert = std.debug.assert; +const CType = @This(); +const DeclIndex = std.zig.DeclIndex; +const Module = @import("../../Package/Module.zig"); +const std = @import("std"); +const Type = @import("../../type.zig").Type; +const Zcu = @import("../../Module.zig"); diff --git a/src/codegen/c/type.zig b/src/codegen/c/type.zig deleted file mode 100644 index a75f5e8f1564..000000000000 --- a/src/codegen/c/type.zig +++ /dev/null @@ -1,2332 +0,0 @@ -const std = @import("std"); -const mem = std.mem; -const Allocator = mem.Allocator; -const assert = std.debug.assert; -const autoHash = std.hash.autoHash; - -const Alignment = @import("../../InternPool.zig").Alignment; -const Zcu = @import("../../Module.zig"); -const Module = @import("../../Package/Module.zig"); -const InternPool = @import("../../InternPool.zig"); -const Type = @import("../../type.zig").Type; - -pub const CType = extern union { - /// If the tag value is less than Tag.no_payload_count, then no pointer - /// dereference is needed. - tag_if_small_enough: Tag, - ptr_otherwise: *const Payload, - - pub fn initTag(small_tag: Tag) CType { - assert(!small_tag.hasPayload()); - return .{ .tag_if_small_enough = small_tag }; - } - - pub fn initPayload(pl: anytype) CType { - const T = @typeInfo(@TypeOf(pl)).Pointer.child; - return switch (pl.base.tag) { - inline else => |t| if (comptime t.hasPayload() and t.Type() == T) .{ - .ptr_otherwise = &pl.base, - } else unreachable, - }; - } - - pub fn hasPayload(self: CType) bool { - return self.tag_if_small_enough.hasPayload(); - } - - pub fn tag(self: CType) Tag { - return if (self.hasPayload()) self.ptr_otherwise.tag else self.tag_if_small_enough; - } - - pub fn cast(self: CType, comptime T: type) ?*const T { - if (!self.hasPayload()) return null; - const pl = self.ptr_otherwise; - return switch (pl.tag) { - inline else => |t| if (comptime t.hasPayload() and t.Type() == T) - @fieldParentPtr(T, "base", pl) - else - null, - }; - } - - pub fn castTag(self: CType, comptime t: Tag) ?*const t.Type() { - return if (self.tag() == t) @fieldParentPtr(t.Type(), "base", self.ptr_otherwise) else null; - } - - pub const Tag = enum(usize) { - // The first section of this enum are tags that require no payload. - void, - - // C basic types - char, - - @"signed char", - short, - int, - long, - @"long long", - - _Bool, - @"unsigned char", - @"unsigned short", - @"unsigned int", - @"unsigned long", - @"unsigned long long", - - float, - double, - @"long double", - - // C header types - // - stdbool.h - bool, - // - stddef.h - size_t, - ptrdiff_t, - // - stdint.h - uint8_t, - int8_t, - uint16_t, - int16_t, - uint32_t, - int32_t, - uint64_t, - int64_t, - uintptr_t, - intptr_t, - - // zig.h types - zig_u128, - zig_i128, - zig_f16, - zig_f32, - zig_f64, - zig_f80, - zig_f128, - zig_c_longdouble, // Keep last_no_payload_tag updated! - - // After this, the tag requires a payload. - pointer, - pointer_const, - pointer_volatile, - pointer_const_volatile, - array, - vector, - fwd_anon_struct, - fwd_anon_union, - fwd_struct, - fwd_union, - unnamed_struct, - unnamed_union, - packed_unnamed_struct, - packed_unnamed_union, - anon_struct, - anon_union, - @"struct", - @"union", - packed_struct, - packed_union, - function, - varargs_function, - - pub const last_no_payload_tag = Tag.zig_c_longdouble; - pub const no_payload_count = @intFromEnum(last_no_payload_tag) + 1; - - pub fn hasPayload(self: Tag) bool { - return @intFromEnum(self) >= no_payload_count; - } - - pub fn toIndex(self: Tag) Index { - assert(!self.hasPayload()); - return @as(Index, @intCast(@intFromEnum(self))); - } - - pub fn Type(comptime self: Tag) type { - return switch (self) { - .void, - .char, - .@"signed char", - .short, - .int, - .long, - .@"long long", - ._Bool, - .@"unsigned char", - .@"unsigned short", - .@"unsigned int", - .@"unsigned long", - .@"unsigned long long", - .float, - .double, - .@"long double", - .bool, - .size_t, - .ptrdiff_t, - .uint8_t, - .int8_t, - .uint16_t, - .int16_t, - .uint32_t, - .int32_t, - .uint64_t, - .int64_t, - .uintptr_t, - .intptr_t, - .zig_u128, - .zig_i128, - .zig_f16, - .zig_f32, - .zig_f64, - .zig_f80, - .zig_f128, - .zig_c_longdouble, - => @compileError("Type Tag " ++ @tagName(self) ++ " has no payload"), - - .pointer, - .pointer_const, - .pointer_volatile, - .pointer_const_volatile, - => Payload.Child, - - .array, - .vector, - => Payload.Sequence, - - .fwd_anon_struct, - .fwd_anon_union, - => Payload.Fields, - - .fwd_struct, - .fwd_union, - => Payload.FwdDecl, - - .unnamed_struct, - .unnamed_union, - .packed_unnamed_struct, - .packed_unnamed_union, - => Payload.Unnamed, - - .anon_struct, - .anon_union, - .@"struct", - .@"union", - .packed_struct, - .packed_union, - => Payload.Aggregate, - - .function, - .varargs_function, - => Payload.Function, - }; - } - }; - - pub const Payload = struct { - tag: Tag, - - pub const Child = struct { - base: Payload, - data: Index, - }; - - pub const Sequence = struct { - base: Payload, - data: struct { - len: u64, - elem_type: Index, - }, - }; - - pub const FwdDecl = struct { - base: Payload, - data: InternPool.DeclIndex, - }; - - pub const Fields = struct { - base: Payload, - data: Data, - - pub const Data = []const Field; - pub const Field = struct { - name: [*:0]const u8, - type: Index, - alignas: AlignAs, - }; - }; - - pub const Unnamed = struct { - base: Payload, - data: struct { - fields: Fields.Data, - owner_decl: InternPool.DeclIndex, - id: u32, - }, - }; - - pub const Aggregate = struct { - base: Payload, - data: struct { - fields: Fields.Data, - fwd_decl: Index, - }, - }; - - pub const Function = struct { - base: Payload, - data: struct { - return_type: Index, - param_types: []const Index, - }, - }; - }; - - pub const AlignAs = packed struct { - @"align": Alignment, - abi: Alignment, - - pub fn init(@"align": Alignment, abi_align: Alignment) AlignAs { - assert(abi_align != .none); - return .{ - .@"align" = if (@"align" != .none) @"align" else abi_align, - .abi = abi_align, - }; - } - - pub fn initByteUnits(alignment: u64, abi_alignment: u32) AlignAs { - return init( - Alignment.fromByteUnits(alignment), - Alignment.fromNonzeroByteUnits(abi_alignment), - ); - } - pub fn abiAlign(ty: Type, zcu: *Zcu) AlignAs { - const abi_align = ty.abiAlignment(zcu); - return init(abi_align, abi_align); - } - pub fn fieldAlign(struct_ty: Type, field_i: usize, zcu: *Zcu) AlignAs { - return init( - struct_ty.structFieldAlign(field_i, zcu), - struct_ty.structFieldType(field_i, zcu).abiAlignment(zcu), - ); - } - pub fn unionPayloadAlign(union_ty: Type, zcu: *Zcu) AlignAs { - const union_obj = zcu.typeToUnion(union_ty).?; - const union_payload_align = zcu.unionAbiAlignment(union_obj); - return init(union_payload_align, union_payload_align); - } - - pub fn order(lhs: AlignAs, rhs: AlignAs) std.math.Order { - return lhs.@"align".order(rhs.@"align"); - } - pub fn abiOrder(self: AlignAs) std.math.Order { - return self.@"align".order(self.abi); - } - pub fn toByteUnits(self: AlignAs) u64 { - return self.@"align".toByteUnitsOptional().?; - } - }; - - pub const Index = u32; - pub const Store = struct { - arena: std.heap.ArenaAllocator.State = .{}, - set: Set = .{}, - - pub const Set = struct { - pub const Map = std.ArrayHashMapUnmanaged(CType, void, HashContext, true); - const HashContext = struct { - store: *const Set, - - pub fn hash(self: @This(), cty: CType) Map.Hash { - return @as(Map.Hash, @truncate(cty.hash(self.store.*))); - } - pub fn eql(_: @This(), lhs: CType, rhs: CType, _: usize) bool { - return lhs.eql(rhs); - } - }; - - map: Map = .{}, - - pub fn indexToCType(self: Set, index: Index) CType { - if (index < Tag.no_payload_count) return initTag(@as(Tag, @enumFromInt(index))); - return self.map.keys()[index - Tag.no_payload_count]; - } - - pub fn indexToHash(self: Set, index: Index) Map.Hash { - if (index < Tag.no_payload_count) - return (HashContext{ .store = &self }).hash(self.indexToCType(index)); - return self.map.entries.items(.hash)[index - Tag.no_payload_count]; - } - - pub fn typeToIndex(self: Set, ty: Type, zcu: *Zcu, mod: *Module, kind: Kind) ?Index { - const lookup = Convert.Lookup{ .imm = .{ .set = &self, .zcu = zcu, .mod = mod } }; - - var convert: Convert = undefined; - convert.initType(ty, kind, lookup) catch unreachable; - - const t = convert.tag(); - if (!t.hasPayload()) return t.toIndex(); - - return if (self.map.getIndexAdapted( - ty, - TypeAdapter32{ .kind = kind, .lookup = lookup, .convert = &convert }, - )) |idx| @as(Index, @intCast(Tag.no_payload_count + idx)) else null; - } - }; - - pub const Promoted = struct { - arena: std.heap.ArenaAllocator, - set: Set, - - pub fn gpa(self: *Promoted) Allocator { - return self.arena.child_allocator; - } - - pub fn cTypeToIndex(self: *Promoted, cty: CType) Allocator.Error!Index { - const t = cty.tag(); - if (@intFromEnum(t) < Tag.no_payload_count) return @as(Index, @intCast(@intFromEnum(t))); - - const gop = try self.set.map.getOrPutContext(self.gpa(), cty, .{ .store = &self.set }); - if (!gop.found_existing) gop.key_ptr.* = cty; - if (std.debug.runtime_safety) { - const key = &self.set.map.entries.items(.key)[gop.index]; - assert(key == gop.key_ptr); - assert(cty.eql(key.*)); - assert(cty.hash(self.set) == key.hash(self.set)); - } - return @as(Index, @intCast(Tag.no_payload_count + gop.index)); - } - - pub fn typeToIndex( - self: *Promoted, - ty: Type, - zcu: *Zcu, - mod: *Module, - kind: Kind, - ) Allocator.Error!Index { - const lookup = Convert.Lookup{ .mut = .{ .promoted = self, .zcu = zcu, .mod = mod } }; - - var convert: Convert = undefined; - try convert.initType(ty, kind, lookup); - - const t = convert.tag(); - if (!t.hasPayload()) return t.toIndex(); - - const gop = try self.set.map.getOrPutContextAdapted( - self.gpa(), - ty, - TypeAdapter32{ .kind = kind, .lookup = lookup.freeze(), .convert = &convert }, - .{ .store = &self.set }, - ); - if (!gop.found_existing) { - errdefer _ = self.set.map.pop(); - gop.key_ptr.* = try createFromConvert(self, ty, zcu, mod, kind, convert); - } - if (std.debug.runtime_safety) { - const adapter = TypeAdapter64{ - .kind = kind, - .lookup = lookup.freeze(), - .convert = &convert, - }; - const cty = &self.set.map.entries.items(.key)[gop.index]; - assert(cty == gop.key_ptr); - assert(adapter.eql(ty, cty.*)); - assert(adapter.hash(ty) == cty.hash(self.set)); - } - return @as(Index, @intCast(Tag.no_payload_count + gop.index)); - } - }; - - pub fn promote(self: Store, gpa: Allocator) Promoted { - return .{ .arena = self.arena.promote(gpa), .set = self.set }; - } - - pub fn demote(self: *Store, promoted: Promoted) void { - self.arena = promoted.arena.state; - self.set = promoted.set; - } - - pub fn indexToCType(self: Store, index: Index) CType { - return self.set.indexToCType(index); - } - - pub fn indexToHash(self: Store, index: Index) Set.Map.Hash { - return self.set.indexToHash(index); - } - - pub fn cTypeToIndex(self: *Store, gpa: Allocator, cty: CType) !Index { - var promoted = self.promote(gpa); - defer self.demote(promoted); - return promoted.cTypeToIndex(cty); - } - - pub fn typeToCType(self: *Store, gpa: Allocator, ty: Type, zcu: *Zcu, mod: *Module, kind: Kind) !CType { - const idx = try self.typeToIndex(gpa, ty, zcu, mod, kind); - return self.indexToCType(idx); - } - - pub fn typeToIndex(self: *Store, gpa: Allocator, ty: Type, zcu: *Zcu, mod: *Module, kind: Kind) !Index { - var promoted = self.promote(gpa); - defer self.demote(promoted); - return promoted.typeToIndex(ty, zcu, mod, kind); - } - - pub fn clearRetainingCapacity(self: *Store, gpa: Allocator) void { - var promoted = self.promote(gpa); - defer self.demote(promoted); - promoted.set.map.clearRetainingCapacity(); - _ = promoted.arena.reset(.retain_capacity); - } - - pub fn clearAndFree(self: *Store, gpa: Allocator) void { - var promoted = self.promote(gpa); - defer self.demote(promoted); - promoted.set.map.clearAndFree(gpa); - _ = promoted.arena.reset(.free_all); - } - - pub fn shrinkRetainingCapacity(self: *Store, gpa: Allocator, new_len: usize) void { - self.set.map.shrinkRetainingCapacity(gpa, new_len); - } - - pub fn shrinkAndFree(self: *Store, gpa: Allocator, new_len: usize) void { - self.set.map.shrinkAndFree(gpa, new_len); - } - - pub fn count(self: Store) usize { - return self.set.map.count(); - } - - pub fn move(self: *Store) Store { - const moved = self.*; - self.* = .{}; - return moved; - } - - pub fn deinit(self: *Store, gpa: Allocator) void { - var promoted = self.promote(gpa); - promoted.set.map.deinit(gpa); - _ = promoted.arena.deinit(); - self.* = undefined; - } - }; - - pub fn isBool(self: CType) bool { - return switch (self.tag()) { - ._Bool, - .bool, - => true, - else => false, - }; - } - - pub fn isInteger(self: CType) bool { - return switch (self.tag()) { - .char, - .@"signed char", - .short, - .int, - .long, - .@"long long", - .@"unsigned char", - .@"unsigned short", - .@"unsigned int", - .@"unsigned long", - .@"unsigned long long", - .size_t, - .ptrdiff_t, - .uint8_t, - .int8_t, - .uint16_t, - .int16_t, - .uint32_t, - .int32_t, - .uint64_t, - .int64_t, - .uintptr_t, - .intptr_t, - .zig_u128, - .zig_i128, - => true, - else => false, - }; - } - - pub fn signedness(self: CType, mod: *Module) std.builtin.Signedness { - return switch (self.tag()) { - .char => mod.resolved_target.result.charSignedness(), - .@"signed char", - .short, - .int, - .long, - .@"long long", - .ptrdiff_t, - .int8_t, - .int16_t, - .int32_t, - .int64_t, - .intptr_t, - .zig_i128, - => .signed, - .@"unsigned char", - .@"unsigned short", - .@"unsigned int", - .@"unsigned long", - .@"unsigned long long", - .size_t, - .uint8_t, - .uint16_t, - .uint32_t, - .uint64_t, - .uintptr_t, - .zig_u128, - => .unsigned, - else => unreachable, - }; - } - - pub fn isFloat(self: CType) bool { - return switch (self.tag()) { - .float, - .double, - .@"long double", - .zig_f16, - .zig_f32, - .zig_f64, - .zig_f80, - .zig_f128, - .zig_c_longdouble, - => true, - else => false, - }; - } - - pub fn isPointer(self: CType) bool { - return switch (self.tag()) { - .pointer, - .pointer_const, - .pointer_volatile, - .pointer_const_volatile, - => true, - else => false, - }; - } - - pub fn isFunction(self: CType) bool { - return switch (self.tag()) { - .function, - .varargs_function, - => true, - else => false, - }; - } - - pub fn toSigned(self: CType) CType { - return CType.initTag(switch (self.tag()) { - .char, .@"signed char", .@"unsigned char" => .@"signed char", - .short, .@"unsigned short" => .short, - .int, .@"unsigned int" => .int, - .long, .@"unsigned long" => .long, - .@"long long", .@"unsigned long long" => .@"long long", - .size_t, .ptrdiff_t => .ptrdiff_t, - .uint8_t, .int8_t => .int8_t, - .uint16_t, .int16_t => .int16_t, - .uint32_t, .int32_t => .int32_t, - .uint64_t, .int64_t => .int64_t, - .uintptr_t, .intptr_t => .intptr_t, - .zig_u128, .zig_i128 => .zig_i128, - .float, - .double, - .@"long double", - .zig_f16, - .zig_f32, - .zig_f80, - .zig_f128, - .zig_c_longdouble, - => |t| t, - else => unreachable, - }); - } - - pub fn toUnsigned(self: CType) CType { - return CType.initTag(switch (self.tag()) { - .char, .@"signed char", .@"unsigned char" => .@"unsigned char", - .short, .@"unsigned short" => .@"unsigned short", - .int, .@"unsigned int" => .@"unsigned int", - .long, .@"unsigned long" => .@"unsigned long", - .@"long long", .@"unsigned long long" => .@"unsigned long long", - .size_t, .ptrdiff_t => .size_t, - .uint8_t, .int8_t => .uint8_t, - .uint16_t, .int16_t => .uint16_t, - .uint32_t, .int32_t => .uint32_t, - .uint64_t, .int64_t => .uint64_t, - .uintptr_t, .intptr_t => .uintptr_t, - .zig_u128, .zig_i128 => .zig_u128, - else => unreachable, - }); - } - - pub fn toSignedness(self: CType, s: std.builtin.Signedness) CType { - return switch (s) { - .unsigned => self.toUnsigned(), - .signed => self.toSigned(), - }; - } - - pub fn getStandardDefineAbbrev(self: CType) ?[]const u8 { - return switch (self.tag()) { - .char => "CHAR", - .@"signed char" => "SCHAR", - .short => "SHRT", - .int => "INT", - .long => "LONG", - .@"long long" => "LLONG", - .@"unsigned char" => "UCHAR", - .@"unsigned short" => "USHRT", - .@"unsigned int" => "UINT", - .@"unsigned long" => "ULONG", - .@"unsigned long long" => "ULLONG", - .float => "FLT", - .double => "DBL", - .@"long double" => "LDBL", - .size_t => "SIZE", - .ptrdiff_t => "PTRDIFF", - .uint8_t => "UINT8", - .int8_t => "INT8", - .uint16_t => "UINT16", - .int16_t => "INT16", - .uint32_t => "UINT32", - .int32_t => "INT32", - .uint64_t => "UINT64", - .int64_t => "INT64", - .uintptr_t => "UINTPTR", - .intptr_t => "INTPTR", - else => null, - }; - } - - pub fn renderLiteralPrefix(self: CType, writer: anytype, kind: Kind) @TypeOf(writer).Error!void { - switch (self.tag()) { - .void => unreachable, - ._Bool, - .char, - .@"signed char", - .short, - .@"unsigned short", - .bool, - .size_t, - .ptrdiff_t, - .uintptr_t, - .intptr_t, - => |t| switch (kind) { - else => try writer.print("({s})", .{@tagName(t)}), - .global => {}, - }, - .int, - .long, - .@"long long", - .@"unsigned char", - .@"unsigned int", - .@"unsigned long", - .@"unsigned long long", - .float, - .double, - .@"long double", - => {}, - .uint8_t, - .int8_t, - .uint16_t, - .int16_t, - .uint32_t, - .int32_t, - .uint64_t, - .int64_t, - => try writer.print("{s}_C(", .{self.getStandardDefineAbbrev().?}), - .zig_u128, - .zig_i128, - .zig_f16, - .zig_f32, - .zig_f64, - .zig_f80, - .zig_f128, - .zig_c_longdouble, - => |t| try writer.print("zig_{s}_{s}(", .{ - switch (kind) { - else => "make", - .global => "init", - }, - @tagName(t)["zig_".len..], - }), - .pointer, - .pointer_const, - .pointer_volatile, - .pointer_const_volatile, - => unreachable, - .array, - .vector, - => try writer.writeByte('{'), - .fwd_anon_struct, - .fwd_anon_union, - .fwd_struct, - .fwd_union, - .unnamed_struct, - .unnamed_union, - .packed_unnamed_struct, - .packed_unnamed_union, - .anon_struct, - .anon_union, - .@"struct", - .@"union", - .packed_struct, - .packed_union, - .function, - .varargs_function, - => unreachable, - } - } - - pub fn renderLiteralSuffix(self: CType, writer: anytype) @TypeOf(writer).Error!void { - switch (self.tag()) { - .void => unreachable, - ._Bool => {}, - .char, - .@"signed char", - .short, - .int, - => {}, - .long => try writer.writeByte('l'), - .@"long long" => try writer.writeAll("ll"), - .@"unsigned char", - .@"unsigned short", - .@"unsigned int", - => try writer.writeByte('u'), - .@"unsigned long", - .size_t, - .uintptr_t, - => try writer.writeAll("ul"), - .@"unsigned long long" => try writer.writeAll("ull"), - .float => try writer.writeByte('f'), - .double => {}, - .@"long double" => try writer.writeByte('l'), - .bool, - .ptrdiff_t, - .intptr_t, - => {}, - .uint8_t, - .int8_t, - .uint16_t, - .int16_t, - .uint32_t, - .int32_t, - .uint64_t, - .int64_t, - .zig_u128, - .zig_i128, - .zig_f16, - .zig_f32, - .zig_f64, - .zig_f80, - .zig_f128, - .zig_c_longdouble, - => try writer.writeByte(')'), - .pointer, - .pointer_const, - .pointer_volatile, - .pointer_const_volatile, - => unreachable, - .array, - .vector, - => try writer.writeByte('}'), - .fwd_anon_struct, - .fwd_anon_union, - .fwd_struct, - .fwd_union, - .unnamed_struct, - .unnamed_union, - .packed_unnamed_struct, - .packed_unnamed_union, - .anon_struct, - .anon_union, - .@"struct", - .@"union", - .packed_struct, - .packed_union, - .function, - .varargs_function, - => unreachable, - } - } - - pub fn floatActiveBits(self: CType, mod: *Module) u16 { - const target = &mod.resolved_target.result; - return switch (self.tag()) { - .float => target.c_type_bit_size(.float), - .double => target.c_type_bit_size(.double), - .@"long double", .zig_c_longdouble => target.c_type_bit_size(.longdouble), - .zig_f16 => 16, - .zig_f32 => 32, - .zig_f64 => 64, - .zig_f80 => 80, - .zig_f128 => 128, - else => unreachable, - }; - } - - pub fn byteSize(self: CType, store: Store.Set, mod: *Module) u64 { - const target = &mod.resolved_target.result; - return switch (self.tag()) { - .void => 0, - .char, .@"signed char", ._Bool, .@"unsigned char", .bool, .uint8_t, .int8_t => 1, - .short => target.c_type_byte_size(.short), - .int => target.c_type_byte_size(.int), - .long => target.c_type_byte_size(.long), - .@"long long" => target.c_type_byte_size(.longlong), - .@"unsigned short" => target.c_type_byte_size(.ushort), - .@"unsigned int" => target.c_type_byte_size(.uint), - .@"unsigned long" => target.c_type_byte_size(.ulong), - .@"unsigned long long" => target.c_type_byte_size(.ulonglong), - .float => target.c_type_byte_size(.float), - .double => target.c_type_byte_size(.double), - .@"long double" => target.c_type_byte_size(.longdouble), - .size_t, - .ptrdiff_t, - .uintptr_t, - .intptr_t, - .pointer, - .pointer_const, - .pointer_volatile, - .pointer_const_volatile, - => @divExact(target.ptrBitWidth(), 8), - .uint16_t, .int16_t, .zig_f16 => 2, - .uint32_t, .int32_t, .zig_f32 => 4, - .uint64_t, .int64_t, .zig_f64 => 8, - .zig_u128, .zig_i128, .zig_f128 => 16, - .zig_f80 => if (target.c_type_bit_size(.longdouble) == 80) - target.c_type_byte_size(.longdouble) - else - 16, - .zig_c_longdouble => target.c_type_byte_size(.longdouble), - - .array, - .vector, - => { - const data = self.cast(Payload.Sequence).?.data; - return data.len * store.indexToCType(data.elem_type).byteSize(store, mod); - }, - - .fwd_anon_struct, - .fwd_anon_union, - .fwd_struct, - .fwd_union, - .unnamed_struct, - .unnamed_union, - .packed_unnamed_struct, - .packed_unnamed_union, - .anon_struct, - .anon_union, - .@"struct", - .@"union", - .packed_struct, - .packed_union, - .function, - .varargs_function, - => unreachable, - }; - } - - pub fn isPacked(self: CType) bool { - return switch (self.tag()) { - else => false, - .packed_unnamed_struct, - .packed_unnamed_union, - .packed_struct, - .packed_union, - => true, - }; - } - - pub fn fields(self: CType) Payload.Fields.Data { - return if (self.cast(Payload.Aggregate)) |pl| - pl.data.fields - else if (self.cast(Payload.Unnamed)) |pl| - pl.data.fields - else if (self.cast(Payload.Fields)) |pl| - pl.data - else - unreachable; - } - - pub fn eql(lhs: CType, rhs: CType) bool { - return lhs.eqlContext(rhs, struct { - pub fn eqlIndex(_: @This(), lhs_idx: Index, rhs_idx: Index) bool { - return lhs_idx == rhs_idx; - } - }{}); - } - - pub fn eqlContext(lhs: CType, rhs: CType, ctx: anytype) bool { - // As a shortcut, if the small tags / addresses match, we're done. - if (lhs.tag_if_small_enough == rhs.tag_if_small_enough) return true; - - const lhs_tag = lhs.tag(); - const rhs_tag = rhs.tag(); - if (lhs_tag != rhs_tag) return false; - - return switch (lhs_tag) { - .void, - .char, - .@"signed char", - .short, - .int, - .long, - .@"long long", - ._Bool, - .@"unsigned char", - .@"unsigned short", - .@"unsigned int", - .@"unsigned long", - .@"unsigned long long", - .float, - .double, - .@"long double", - .bool, - .size_t, - .ptrdiff_t, - .uint8_t, - .int8_t, - .uint16_t, - .int16_t, - .uint32_t, - .int32_t, - .uint64_t, - .int64_t, - .uintptr_t, - .intptr_t, - .zig_u128, - .zig_i128, - .zig_f16, - .zig_f32, - .zig_f64, - .zig_f80, - .zig_f128, - .zig_c_longdouble, - => false, - - .pointer, - .pointer_const, - .pointer_volatile, - .pointer_const_volatile, - => ctx.eqlIndex(lhs.cast(Payload.Child).?.data, rhs.cast(Payload.Child).?.data), - - .array, - .vector, - => { - const lhs_data = lhs.cast(Payload.Sequence).?.data; - const rhs_data = rhs.cast(Payload.Sequence).?.data; - return lhs_data.len == rhs_data.len and - ctx.eqlIndex(lhs_data.elem_type, rhs_data.elem_type); - }, - - .fwd_anon_struct, - .fwd_anon_union, - => { - const lhs_data = lhs.cast(Payload.Fields).?.data; - const rhs_data = rhs.cast(Payload.Fields).?.data; - if (lhs_data.len != rhs_data.len) return false; - for (lhs_data, rhs_data) |lhs_field, rhs_field| { - if (!ctx.eqlIndex(lhs_field.type, rhs_field.type)) return false; - if (lhs_field.alignas.@"align" != rhs_field.alignas.@"align") return false; - if (std.mem.orderZ(u8, lhs_field.name, rhs_field.name) != .eq) return false; - } - return true; - }, - - .fwd_struct, - .fwd_union, - => lhs.cast(Payload.FwdDecl).?.data == rhs.cast(Payload.FwdDecl).?.data, - - .unnamed_struct, - .unnamed_union, - .packed_unnamed_struct, - .packed_unnamed_union, - => { - const lhs_data = lhs.cast(Payload.Unnamed).?.data; - const rhs_data = rhs.cast(Payload.Unnamed).?.data; - return lhs_data.owner_decl == rhs_data.owner_decl and lhs_data.id == rhs_data.id; - }, - - .anon_struct, - .anon_union, - .@"struct", - .@"union", - .packed_struct, - .packed_union, - => ctx.eqlIndex( - lhs.cast(Payload.Aggregate).?.data.fwd_decl, - rhs.cast(Payload.Aggregate).?.data.fwd_decl, - ), - - .function, - .varargs_function, - => { - const lhs_data = lhs.cast(Payload.Function).?.data; - const rhs_data = rhs.cast(Payload.Function).?.data; - if (lhs_data.param_types.len != rhs_data.param_types.len) return false; - if (!ctx.eqlIndex(lhs_data.return_type, rhs_data.return_type)) return false; - for (lhs_data.param_types, rhs_data.param_types) |lhs_param_idx, rhs_param_idx| { - if (!ctx.eqlIndex(lhs_param_idx, rhs_param_idx)) return false; - } - return true; - }, - }; - } - - pub fn hash(self: CType, store: Store.Set) u64 { - var hasher = std.hash.Wyhash.init(0); - self.updateHasher(&hasher, store); - return hasher.final(); - } - - pub fn updateHasher(self: CType, hasher: anytype, store: Store.Set) void { - const t = self.tag(); - autoHash(hasher, t); - switch (t) { - .void, - .char, - .@"signed char", - .short, - .int, - .long, - .@"long long", - ._Bool, - .@"unsigned char", - .@"unsigned short", - .@"unsigned int", - .@"unsigned long", - .@"unsigned long long", - .float, - .double, - .@"long double", - .bool, - .size_t, - .ptrdiff_t, - .uint8_t, - .int8_t, - .uint16_t, - .int16_t, - .uint32_t, - .int32_t, - .uint64_t, - .int64_t, - .uintptr_t, - .intptr_t, - .zig_u128, - .zig_i128, - .zig_f16, - .zig_f32, - .zig_f64, - .zig_f80, - .zig_f128, - .zig_c_longdouble, - => {}, - - .pointer, - .pointer_const, - .pointer_volatile, - .pointer_const_volatile, - => store.indexToCType(self.cast(Payload.Child).?.data).updateHasher(hasher, store), - - .array, - .vector, - => { - const data = self.cast(Payload.Sequence).?.data; - autoHash(hasher, data.len); - store.indexToCType(data.elem_type).updateHasher(hasher, store); - }, - - .fwd_anon_struct, - .fwd_anon_union, - => for (self.cast(Payload.Fields).?.data) |field| { - store.indexToCType(field.type).updateHasher(hasher, store); - hasher.update(mem.span(field.name)); - autoHash(hasher, field.alignas.@"align"); - }, - - .fwd_struct, - .fwd_union, - => autoHash(hasher, self.cast(Payload.FwdDecl).?.data), - - .unnamed_struct, - .unnamed_union, - .packed_unnamed_struct, - .packed_unnamed_union, - => { - const data = self.cast(Payload.Unnamed).?.data; - autoHash(hasher, data.owner_decl); - autoHash(hasher, data.id); - }, - - .anon_struct, - .anon_union, - .@"struct", - .@"union", - .packed_struct, - .packed_union, - => store.indexToCType(self.cast(Payload.Aggregate).?.data.fwd_decl) - .updateHasher(hasher, store), - - .function, - .varargs_function, - => { - const data = self.cast(Payload.Function).?.data; - store.indexToCType(data.return_type).updateHasher(hasher, store); - for (data.param_types) |param_ty| { - store.indexToCType(param_ty).updateHasher(hasher, store); - } - }, - } - } - - pub const Kind = enum { forward, forward_parameter, complete, global, parameter, payload }; - - const Convert = struct { - storage: union { - none: void, - child: Payload.Child, - seq: Payload.Sequence, - fwd: Payload.FwdDecl, - anon: struct { - fields: [2]Payload.Fields.Field, - pl: union { - forward: Payload.Fields, - complete: Payload.Aggregate, - }, - }, - }, - value: union(enum) { - tag: Tag, - cty: CType, - }, - - pub fn init(self: *@This(), t: Tag) void { - self.* = if (t.hasPayload()) .{ - .storage = .{ .none = {} }, - .value = .{ .tag = t }, - } else .{ - .storage = .{ .none = {} }, - .value = .{ .cty = initTag(t) }, - }; - } - - pub fn tag(self: @This()) Tag { - return switch (self.value) { - .tag => |t| t, - .cty => |c| c.tag(), - }; - } - - fn tagFromIntInfo(int_info: std.builtin.Type.Int) Tag { - return switch (int_info.bits) { - 0 => .void, - 1...8 => switch (int_info.signedness) { - .unsigned => .uint8_t, - .signed => .int8_t, - }, - 9...16 => switch (int_info.signedness) { - .unsigned => .uint16_t, - .signed => .int16_t, - }, - 17...32 => switch (int_info.signedness) { - .unsigned => .uint32_t, - .signed => .int32_t, - }, - 33...64 => switch (int_info.signedness) { - .unsigned => .uint64_t, - .signed => .int64_t, - }, - 65...128 => switch (int_info.signedness) { - .unsigned => .zig_u128, - .signed => .zig_i128, - }, - else => .array, - }; - } - - pub const Lookup = union(enum) { - fail: struct { - zcu: *Zcu, - mod: *Module, - }, - imm: struct { - set: *const Store.Set, - zcu: *Zcu, - mod: *Module, - }, - mut: struct { - promoted: *Store.Promoted, - zcu: *Zcu, - mod: *Module, - }, - - pub fn isMutable(self: @This()) bool { - return switch (self) { - .fail, .imm => false, - .mut => true, - }; - } - - pub fn getZcu(self: @This()) *Zcu { - return switch (self) { - inline else => |pl| pl.zcu, - }; - } - - pub fn getModule(self: @This()) *Module { - return switch (self) { - inline else => |pl| pl.mod, - }; - } - - pub fn getSet(self: @This()) ?*const Store.Set { - return switch (self) { - .fail => null, - .imm => |imm| imm.set, - .mut => |mut| &mut.promoted.set, - }; - } - - pub fn typeToIndex(self: @This(), ty: Type, kind: Kind) !?Index { - return switch (self) { - .fail => null, - .imm => |imm| imm.set.typeToIndex(ty, imm.zcu, imm.mod, kind), - .mut => |mut| try mut.promoted.typeToIndex(ty, mut.zcu, mut.mod, kind), - }; - } - - pub fn indexToCType(self: @This(), index: Index) ?CType { - return if (self.getSet()) |set| set.indexToCType(index) else null; - } - - pub fn freeze(self: @This()) @This() { - return switch (self) { - .fail, .imm => self, - .mut => |mut| .{ .imm = .{ .set = &mut.promoted.set, .zcu = mut.zcu, .mod = mut.mod } }, - }; - } - }; - - fn sortFields(self: *@This(), fields_len: usize) []Payload.Fields.Field { - const Field = Payload.Fields.Field; - const slice = self.storage.anon.fields[0..fields_len]; - mem.sort(Field, slice, {}, struct { - fn before(_: void, lhs: Field, rhs: Field) bool { - return lhs.alignas.order(rhs.alignas).compare(.gt); - } - }.before); - return slice; - } - - fn initAnon(self: *@This(), kind: Kind, fwd_idx: Index, fields_len: usize) void { - switch (kind) { - .forward, .forward_parameter => { - self.storage.anon.pl = .{ .forward = .{ - .base = .{ .tag = .fwd_anon_struct }, - .data = self.sortFields(fields_len), - } }; - self.value = .{ .cty = initPayload(&self.storage.anon.pl.forward) }; - }, - .complete, .parameter, .global => { - self.storage.anon.pl = .{ .complete = .{ - .base = .{ .tag = .anon_struct }, - .data = .{ - .fields = self.sortFields(fields_len), - .fwd_decl = fwd_idx, - }, - } }; - self.value = .{ .cty = initPayload(&self.storage.anon.pl.complete) }; - }, - .payload => unreachable, - } - } - - fn initArrayParameter(self: *@This(), ty: Type, kind: Kind, lookup: Lookup) !void { - if (switch (kind) { - .forward_parameter => @as(Index, undefined), - .parameter => try lookup.typeToIndex(ty, .forward_parameter), - .forward, .complete, .global, .payload => unreachable, - }) |fwd_idx| { - if (try lookup.typeToIndex(ty, switch (kind) { - .forward_parameter => .forward, - .parameter => .complete, - .forward, .complete, .global, .payload => unreachable, - })) |array_idx| { - self.storage = .{ .anon = undefined }; - self.storage.anon.fields[0] = .{ - .name = "array", - .type = array_idx, - .alignas = AlignAs.abiAlign(ty, lookup.getZcu()), - }; - self.initAnon(kind, fwd_idx, 1); - } else self.init(switch (kind) { - .forward_parameter => .fwd_anon_struct, - .parameter => .anon_struct, - .forward, .complete, .global, .payload => unreachable, - }); - } else self.init(.anon_struct); - } - - pub fn initType(self: *@This(), ty: Type, kind: Kind, lookup: Lookup) !void { - const zcu = lookup.getZcu(); - const ip = &zcu.intern_pool; - - self.* = undefined; - if (!ty.isFnOrHasRuntimeBitsIgnoreComptime(zcu)) - self.init(.void) - else if (ty.isAbiInt(zcu)) switch (ty.ip_index) { - .usize_type => self.init(.uintptr_t), - .isize_type => self.init(.intptr_t), - .c_char_type => self.init(.char), - .c_short_type => self.init(.short), - .c_ushort_type => self.init(.@"unsigned short"), - .c_int_type => self.init(.int), - .c_uint_type => self.init(.@"unsigned int"), - .c_long_type => self.init(.long), - .c_ulong_type => self.init(.@"unsigned long"), - .c_longlong_type => self.init(.@"long long"), - .c_ulonglong_type => self.init(.@"unsigned long long"), - else => switch (tagFromIntInfo(ty.intInfo(zcu))) { - .void => unreachable, - else => |t| self.init(t), - .array => switch (kind) { - .forward, .complete, .global => { - const abi_size = ty.abiSize(zcu); - const abi_align = ty.abiAlignment(zcu).toByteUnits(0); - self.storage = .{ .seq = .{ .base = .{ .tag = .array }, .data = .{ - .len = @divExact(abi_size, abi_align), - .elem_type = tagFromIntInfo(.{ - .signedness = .unsigned, - .bits = @intCast(abi_align * 8), - }).toIndex(), - } } }; - self.value = .{ .cty = initPayload(&self.storage.seq) }; - }, - .forward_parameter, - .parameter, - => try self.initArrayParameter(ty, kind, lookup), - .payload => unreachable, - }, - }, - } else switch (ty.zigTypeTag(zcu)) { - .Frame => unreachable, - .AnyFrame => unreachable, - - .Int, - .Enum, - .ErrorSet, - .Type, - .Void, - .NoReturn, - .ComptimeFloat, - .ComptimeInt, - .Undefined, - .Null, - .EnumLiteral, - => unreachable, - - .Bool => self.init(.bool), - - .Float => self.init(switch (ty.ip_index) { - .f16_type => .zig_f16, - .f32_type => .zig_f32, - .f64_type => .zig_f64, - .f80_type => .zig_f80, - .f128_type => .zig_f128, - .c_longdouble_type => .zig_c_longdouble, - else => unreachable, - }), - - .Pointer => { - const info = ty.ptrInfo(zcu); - switch (info.flags.size) { - .Slice => { - if (switch (kind) { - .forward, .forward_parameter => @as(Index, undefined), - .complete, .parameter, .global => try lookup.typeToIndex(ty, .forward), - .payload => unreachable, - }) |fwd_idx| { - const ptr_ty = ty.slicePtrFieldType(zcu); - if (try lookup.typeToIndex(ptr_ty, kind)) |ptr_idx| { - self.storage = .{ .anon = undefined }; - self.storage.anon.fields[0] = .{ - .name = "ptr", - .type = ptr_idx, - .alignas = AlignAs.abiAlign(ptr_ty, zcu), - }; - self.storage.anon.fields[1] = .{ - .name = "len", - .type = Tag.uintptr_t.toIndex(), - .alignas = AlignAs.abiAlign(Type.usize, zcu), - }; - self.initAnon(kind, fwd_idx, 2); - } else self.init(switch (kind) { - .forward, .forward_parameter => .fwd_anon_struct, - .complete, .parameter, .global => .anon_struct, - .payload => unreachable, - }); - } else self.init(.anon_struct); - }, - - .One, .Many, .C => { - const t: Tag = switch (info.flags.is_volatile) { - false => switch (info.flags.is_const) { - false => .pointer, - true => .pointer_const, - }, - true => switch (info.flags.is_const) { - false => .pointer_volatile, - true => .pointer_const_volatile, - }, - }; - - const pointee_ty = if (info.packed_offset.host_size > 0 and info.flags.vector_index == .none) - try zcu.intType(.unsigned, info.packed_offset.host_size * 8) - else if (info.flags.alignment == .none or - info.flags.alignment.compareStrict(.gte, Type.fromInterned(info.child).abiAlignment(zcu))) - Type.fromInterned(info.child) - else - try zcu.intType(.unsigned, @min( - info.flags.alignment.toByteUnitsOptional().?, - lookup.getModule().resolved_target.result.maxIntAlignment(), - ) * 8); - - if (try lookup.typeToIndex(pointee_ty, .forward)) |child_idx| { - self.storage = .{ .child = .{ - .base = .{ .tag = t }, - .data = child_idx, - } }; - self.value = .{ .cty = initPayload(&self.storage.child) }; - } else self.init(t); - }, - } - }, - - .Struct, .Union => |zig_ty_tag| if (ty.containerLayout(zcu) == .@"packed") { - if (zcu.typeToPackedStruct(ty)) |packed_struct| { - try self.initType(Type.fromInterned(packed_struct.backingIntType(ip).*), kind, lookup); - } else { - const bits: u16 = @intCast(ty.bitSize(zcu)); - const int_ty = try zcu.intType(.unsigned, bits); - try self.initType(int_ty, kind, lookup); - } - } else if (ty.isTupleOrAnonStruct(zcu)) { - if (lookup.isMutable()) { - for (0..switch (zig_ty_tag) { - .Struct => ty.structFieldCount(zcu), - .Union => zcu.typeToUnion(ty).?.field_types.len, - else => unreachable, - }) |field_i| { - const field_ty = ty.structFieldType(field_i, zcu); - if ((zig_ty_tag == .Struct and ty.structFieldIsComptime(field_i, zcu)) or - !field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; - _ = try lookup.typeToIndex(field_ty, switch (kind) { - .forward, .forward_parameter => .forward, - .complete, .parameter => .complete, - .global => .global, - .payload => unreachable, - }); - } - switch (kind) { - .forward, .forward_parameter => {}, - .complete, .parameter, .global => _ = try lookup.typeToIndex(ty, .forward), - .payload => unreachable, - } - } - self.init(switch (kind) { - .forward, .forward_parameter => switch (zig_ty_tag) { - .Struct => .fwd_anon_struct, - .Union => .fwd_anon_union, - else => unreachable, - }, - .complete, .parameter, .global => switch (zig_ty_tag) { - .Struct => .anon_struct, - .Union => .anon_union, - else => unreachable, - }, - .payload => unreachable, - }); - } else { - const tag_ty = ty.unionTagTypeSafety(zcu); - const is_tagged_union_wrapper = kind != .payload and tag_ty != null; - const is_struct = zig_ty_tag == .Struct or is_tagged_union_wrapper; - switch (kind) { - .forward, .forward_parameter => { - self.storage = .{ .fwd = .{ - .base = .{ .tag = if (is_struct) .fwd_struct else .fwd_union }, - .data = ty.getOwnerDecl(zcu), - } }; - self.value = .{ .cty = initPayload(&self.storage.fwd) }; - }, - .complete, .parameter, .global, .payload => if (is_tagged_union_wrapper) { - const fwd_idx = try lookup.typeToIndex(ty, .forward); - const payload_idx = try lookup.typeToIndex(ty, .payload); - const tag_idx = try lookup.typeToIndex(tag_ty.?, kind); - if (fwd_idx != null and payload_idx != null and tag_idx != null) { - self.storage = .{ .anon = undefined }; - var field_count: usize = 0; - if (payload_idx != Tag.void.toIndex()) { - self.storage.anon.fields[field_count] = .{ - .name = "payload", - .type = payload_idx.?, - .alignas = AlignAs.unionPayloadAlign(ty, zcu), - }; - field_count += 1; - } - if (tag_idx != Tag.void.toIndex()) { - self.storage.anon.fields[field_count] = .{ - .name = "tag", - .type = tag_idx.?, - .alignas = AlignAs.abiAlign(tag_ty.?, zcu), - }; - field_count += 1; - } - self.storage.anon.pl = .{ .complete = .{ - .base = .{ .tag = .@"struct" }, - .data = .{ - .fields = self.sortFields(field_count), - .fwd_decl = fwd_idx.?, - }, - } }; - self.value = .{ .cty = initPayload(&self.storage.anon.pl.complete) }; - } else self.init(.@"struct"); - } else if (kind == .payload and ty.unionHasAllZeroBitFieldTypes(zcu)) { - self.init(.void); - } else { - var is_packed = false; - for (0..switch (zig_ty_tag) { - .Struct => ty.structFieldCount(zcu), - .Union => zcu.typeToUnion(ty).?.field_types.len, - else => unreachable, - }) |field_i| { - const field_ty = ty.structFieldType(field_i, zcu); - if (!field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; - - const field_align = AlignAs.fieldAlign(ty, field_i, zcu); - if (field_align.abiOrder().compare(.lt)) { - is_packed = true; - if (!lookup.isMutable()) break; - } - - if (lookup.isMutable()) { - _ = try lookup.typeToIndex(field_ty, switch (kind) { - .forward, .forward_parameter => unreachable, - .complete, .parameter, .payload => .complete, - .global => .global, - }); - } - } - switch (kind) { - .forward, .forward_parameter => unreachable, - .complete, .parameter, .global => { - _ = try lookup.typeToIndex(ty, .forward); - self.init(if (is_struct) - if (is_packed) .packed_struct else .@"struct" - else if (is_packed) .packed_union else .@"union"); - }, - .payload => self.init(if (is_packed) - .packed_unnamed_union - else - .unnamed_union), - } - }, - } - }, - - .Array, .Vector => |zig_ty_tag| { - switch (kind) { - .forward, .complete, .global => { - const t: Tag = switch (zig_ty_tag) { - .Array => .array, - .Vector => .vector, - else => unreachable, - }; - if (try lookup.typeToIndex(ty.childType(zcu), kind)) |child_idx| { - self.storage = .{ .seq = .{ .base = .{ .tag = t }, .data = .{ - .len = ty.arrayLenIncludingSentinel(zcu), - .elem_type = child_idx, - } } }; - self.value = .{ .cty = initPayload(&self.storage.seq) }; - } else self.init(t); - }, - .forward_parameter, .parameter => try self.initArrayParameter(ty, kind, lookup), - .payload => unreachable, - } - }, - - .Optional => { - const payload_ty = ty.optionalChild(zcu); - if (payload_ty.hasRuntimeBitsIgnoreComptime(zcu)) { - if (ty.optionalReprIsPayload(zcu)) { - try self.initType(payload_ty, kind, lookup); - } else if (switch (kind) { - .forward, .forward_parameter => @as(Index, undefined), - .complete, .parameter, .global => try lookup.typeToIndex(ty, .forward), - .payload => unreachable, - }) |fwd_idx| { - if (try lookup.typeToIndex(payload_ty, switch (kind) { - .forward, .forward_parameter => .forward, - .complete, .parameter => .complete, - .global => .global, - .payload => unreachable, - })) |payload_idx| { - self.storage = .{ .anon = undefined }; - self.storage.anon.fields[0] = .{ - .name = "payload", - .type = payload_idx, - .alignas = AlignAs.abiAlign(payload_ty, zcu), - }; - self.storage.anon.fields[1] = .{ - .name = "is_null", - .type = Tag.bool.toIndex(), - .alignas = AlignAs.abiAlign(Type.bool, zcu), - }; - self.initAnon(kind, fwd_idx, 2); - } else self.init(switch (kind) { - .forward, .forward_parameter => .fwd_anon_struct, - .complete, .parameter, .global => .anon_struct, - .payload => unreachable, - }); - } else self.init(.anon_struct); - } else self.init(.bool); - }, - - .ErrorUnion => { - if (switch (kind) { - .forward, .forward_parameter => @as(Index, undefined), - .complete, .parameter, .global => try lookup.typeToIndex(ty, .forward), - .payload => unreachable, - }) |fwd_idx| { - const payload_ty = ty.errorUnionPayload(zcu); - if (try lookup.typeToIndex(payload_ty, switch (kind) { - .forward, .forward_parameter => .forward, - .complete, .parameter => .complete, - .global => .global, - .payload => unreachable, - })) |payload_idx| { - const error_ty = ty.errorUnionSet(zcu); - if (payload_idx == Tag.void.toIndex()) { - try self.initType(error_ty, kind, lookup); - } else if (try lookup.typeToIndex(error_ty, kind)) |error_idx| { - self.storage = .{ .anon = undefined }; - self.storage.anon.fields[0] = .{ - .name = "payload", - .type = payload_idx, - .alignas = AlignAs.abiAlign(payload_ty, zcu), - }; - self.storage.anon.fields[1] = .{ - .name = "error", - .type = error_idx, - .alignas = AlignAs.abiAlign(error_ty, zcu), - }; - self.initAnon(kind, fwd_idx, 2); - } else self.init(switch (kind) { - .forward, .forward_parameter => .fwd_anon_struct, - .complete, .parameter, .global => .anon_struct, - .payload => unreachable, - }); - } else self.init(switch (kind) { - .forward, .forward_parameter => .fwd_anon_struct, - .complete, .parameter, .global => .anon_struct, - .payload => unreachable, - }); - } else self.init(.anon_struct); - }, - - .Opaque => self.init(.void), - - .Fn => { - const info = zcu.typeToFunc(ty).?; - if (!info.is_generic) { - if (lookup.isMutable()) { - const param_kind: Kind = switch (kind) { - .forward, .forward_parameter => .forward_parameter, - .complete, .parameter, .global => .parameter, - .payload => unreachable, - }; - _ = try lookup.typeToIndex(Type.fromInterned(info.return_type), param_kind); - for (info.param_types.get(ip)) |param_type| { - if (!Type.fromInterned(param_type).hasRuntimeBitsIgnoreComptime(zcu)) continue; - _ = try lookup.typeToIndex(Type.fromInterned(param_type), param_kind); - } - } - self.init(if (info.is_var_args) .varargs_function else .function); - } else self.init(.void); - }, - } - } - }; - - pub fn copy(self: CType, arena: Allocator) !CType { - return self.copyContext(struct { - arena: Allocator, - pub fn copyIndex(_: @This(), idx: Index) Index { - return idx; - } - }{ .arena = arena }); - } - - fn copyFields(ctx: anytype, old_fields: Payload.Fields.Data) !Payload.Fields.Data { - const new_fields = try ctx.arena.alloc(Payload.Fields.Field, old_fields.len); - for (new_fields, old_fields) |*new_field, old_field| { - new_field.name = try ctx.arena.dupeZ(u8, mem.span(old_field.name)); - new_field.type = ctx.copyIndex(old_field.type); - new_field.alignas = old_field.alignas; - } - return new_fields; - } - - fn copyParams(ctx: anytype, old_param_types: []const Index) ![]const Index { - const new_param_types = try ctx.arena.alloc(Index, old_param_types.len); - for (new_param_types, old_param_types) |*new_param_type, old_param_type| - new_param_type.* = ctx.copyIndex(old_param_type); - return new_param_types; - } - - pub fn copyContext(self: CType, ctx: anytype) !CType { - switch (self.tag()) { - .void, - .char, - .@"signed char", - .short, - .int, - .long, - .@"long long", - ._Bool, - .@"unsigned char", - .@"unsigned short", - .@"unsigned int", - .@"unsigned long", - .@"unsigned long long", - .float, - .double, - .@"long double", - .bool, - .size_t, - .ptrdiff_t, - .uint8_t, - .int8_t, - .uint16_t, - .int16_t, - .uint32_t, - .int32_t, - .uint64_t, - .int64_t, - .uintptr_t, - .intptr_t, - .zig_u128, - .zig_i128, - .zig_f16, - .zig_f32, - .zig_f64, - .zig_f80, - .zig_f128, - .zig_c_longdouble, - => return self, - - .pointer, - .pointer_const, - .pointer_volatile, - .pointer_const_volatile, - => { - const pl = self.cast(Payload.Child).?; - const new_pl = try ctx.arena.create(Payload.Child); - new_pl.* = .{ .base = .{ .tag = pl.base.tag }, .data = ctx.copyIndex(pl.data) }; - return initPayload(new_pl); - }, - - .array, - .vector, - => { - const pl = self.cast(Payload.Sequence).?; - const new_pl = try ctx.arena.create(Payload.Sequence); - new_pl.* = .{ - .base = .{ .tag = pl.base.tag }, - .data = .{ .len = pl.data.len, .elem_type = ctx.copyIndex(pl.data.elem_type) }, - }; - return initPayload(new_pl); - }, - - .fwd_anon_struct, - .fwd_anon_union, - => { - const pl = self.cast(Payload.Fields).?; - const new_pl = try ctx.arena.create(Payload.Fields); - new_pl.* = .{ - .base = .{ .tag = pl.base.tag }, - .data = try copyFields(ctx, pl.data), - }; - return initPayload(new_pl); - }, - - .fwd_struct, - .fwd_union, - => { - const pl = self.cast(Payload.FwdDecl).?; - const new_pl = try ctx.arena.create(Payload.FwdDecl); - new_pl.* = .{ .base = .{ .tag = pl.base.tag }, .data = pl.data }; - return initPayload(new_pl); - }, - - .unnamed_struct, - .unnamed_union, - .packed_unnamed_struct, - .packed_unnamed_union, - => { - const pl = self.cast(Payload.Unnamed).?; - const new_pl = try ctx.arena.create(Payload.Unnamed); - new_pl.* = .{ .base = .{ .tag = pl.base.tag }, .data = .{ - .fields = try copyFields(ctx, pl.data.fields), - .owner_decl = pl.data.owner_decl, - .id = pl.data.id, - } }; - return initPayload(new_pl); - }, - - .anon_struct, - .anon_union, - .@"struct", - .@"union", - .packed_struct, - .packed_union, - => { - const pl = self.cast(Payload.Aggregate).?; - const new_pl = try ctx.arena.create(Payload.Aggregate); - new_pl.* = .{ .base = .{ .tag = pl.base.tag }, .data = .{ - .fields = try copyFields(ctx, pl.data.fields), - .fwd_decl = ctx.copyIndex(pl.data.fwd_decl), - } }; - return initPayload(new_pl); - }, - - .function, - .varargs_function, - => { - const pl = self.cast(Payload.Function).?; - const new_pl = try ctx.arena.create(Payload.Function); - new_pl.* = .{ .base = .{ .tag = pl.base.tag }, .data = .{ - .return_type = ctx.copyIndex(pl.data.return_type), - .param_types = try copyParams(ctx, pl.data.param_types), - } }; - return initPayload(new_pl); - }, - } - } - - fn createFromType(store: *Store.Promoted, ty: Type, zcu: *Zcu, mod: *Module, kind: Kind) !CType { - var convert: Convert = undefined; - try convert.initType(ty, kind, .{ .imm = .{ .set = &store.set, .zcu = zcu } }); - return createFromConvert(store, ty, zcu, mod, kind, &convert); - } - - fn createFromConvert( - store: *Store.Promoted, - ty: Type, - zcu: *Zcu, - mod: *Module, - kind: Kind, - convert: Convert, - ) !CType { - const ip = &zcu.intern_pool; - const arena = store.arena.allocator(); - switch (convert.value) { - .cty => |c| return c.copy(arena), - .tag => |t| switch (t) { - .fwd_anon_struct, - .fwd_anon_union, - .unnamed_struct, - .unnamed_union, - .packed_unnamed_struct, - .packed_unnamed_union, - .anon_struct, - .anon_union, - .@"struct", - .@"union", - .packed_struct, - .packed_union, - => { - const zig_ty_tag = ty.zigTypeTag(zcu); - const fields_len = switch (zig_ty_tag) { - .Struct => ty.structFieldCount(zcu), - .Union => zcu.typeToUnion(ty).?.field_types.len, - else => unreachable, - }; - - var c_fields_len: usize = 0; - for (0..fields_len) |field_i| { - const field_ty = ty.structFieldType(field_i, zcu); - if ((zig_ty_tag == .Struct and ty.structFieldIsComptime(field_i, zcu)) or - !field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; - c_fields_len += 1; - } - - const fields_pl = try arena.alloc(Payload.Fields.Field, c_fields_len); - var c_field_i: usize = 0; - for (0..fields_len) |field_i_usize| { - const field_i: u32 = @intCast(field_i_usize); - const field_ty = ty.structFieldType(field_i, zcu); - if ((zig_ty_tag == .Struct and ty.structFieldIsComptime(field_i, zcu)) or - !field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; - - defer c_field_i += 1; - fields_pl[c_field_i] = .{ - .name = try if (ty.isSimpleTuple(zcu)) - std.fmt.allocPrintZ(arena, "f{}", .{field_i}) - else - arena.dupeZ(u8, ip.stringToSlice(switch (zig_ty_tag) { - .Struct => ty.legacyStructFieldName(field_i, zcu), - .Union => ip.loadUnionType(ty.toIntern()).loadTagType(ip).names.get(ip)[field_i], - else => unreachable, - })), - .type = store.set.typeToIndex(field_ty, zcu, mod, switch (kind) { - .forward, .forward_parameter => .forward, - .complete, .parameter, .payload => .complete, - .global => .global, - }).?, - .alignas = AlignAs.fieldAlign(ty, field_i, zcu), - }; - } - - switch (t) { - .fwd_anon_struct, - .fwd_anon_union, - => { - const anon_pl = try arena.create(Payload.Fields); - anon_pl.* = .{ .base = .{ .tag = t }, .data = fields_pl }; - return initPayload(anon_pl); - }, - - .unnamed_struct, - .unnamed_union, - .packed_unnamed_struct, - .packed_unnamed_union, - => { - const unnamed_pl = try arena.create(Payload.Unnamed); - unnamed_pl.* = .{ .base = .{ .tag = t }, .data = .{ - .fields = fields_pl, - .owner_decl = ty.getOwnerDecl(zcu), - .id = if (ty.unionTagTypeSafety(zcu)) |_| 0 else unreachable, - } }; - return initPayload(unnamed_pl); - }, - - .anon_struct, - .anon_union, - .@"struct", - .@"union", - .packed_struct, - .packed_union, - => { - const struct_pl = try arena.create(Payload.Aggregate); - struct_pl.* = .{ .base = .{ .tag = t }, .data = .{ - .fields = fields_pl, - .fwd_decl = store.set.typeToIndex(ty, zcu, mod, .forward).?, - } }; - return initPayload(struct_pl); - }, - - else => unreachable, - } - }, - - .function, - .varargs_function, - => { - const info = zcu.typeToFunc(ty).?; - assert(!info.is_generic); - const param_kind: Kind = switch (kind) { - .forward, .forward_parameter => .forward_parameter, - .complete, .parameter, .global => .parameter, - .payload => unreachable, - }; - - var c_params_len: usize = 0; - for (info.param_types.get(ip)) |param_type| { - if (!Type.fromInterned(param_type).hasRuntimeBitsIgnoreComptime(zcu)) continue; - c_params_len += 1; - } - - const params_pl = try arena.alloc(Index, c_params_len); - var c_param_i: usize = 0; - for (info.param_types.get(ip)) |param_type| { - if (!Type.fromInterned(param_type).hasRuntimeBitsIgnoreComptime(zcu)) continue; - params_pl[c_param_i] = store.set.typeToIndex(Type.fromInterned(param_type), zcu, mod, param_kind).?; - c_param_i += 1; - } - - const fn_pl = try arena.create(Payload.Function); - fn_pl.* = .{ .base = .{ .tag = t }, .data = .{ - .return_type = store.set.typeToIndex(Type.fromInterned(info.return_type), zcu, mod, param_kind).?, - .param_types = params_pl, - } }; - return initPayload(fn_pl); - }, - - else => unreachable, - }, - } - } - - pub const TypeAdapter64 = struct { - kind: Kind, - lookup: Convert.Lookup, - convert: *const Convert, - - fn eqlRecurse(self: @This(), ty: Type, cty: Index, kind: Kind) bool { - assert(!self.lookup.isMutable()); - - var convert: Convert = undefined; - convert.initType(ty, kind, self.lookup) catch unreachable; - - const self_recurse = @This(){ .kind = kind, .lookup = self.lookup, .convert = &convert }; - return self_recurse.eql(ty, self.lookup.indexToCType(cty).?); - } - - pub fn eql(self: @This(), ty: Type, cty: CType) bool { - const zcu = self.lookup.getZcu(); - const ip = &zcu.intern_pool; - switch (self.convert.value) { - .cty => |c| return c.eql(cty), - .tag => |t| { - if (t != cty.tag()) return false; - - switch (t) { - .fwd_anon_struct, - .fwd_anon_union, - => { - if (!ty.isTupleOrAnonStruct(zcu)) return false; - - var name_buf: [ - std.fmt.count("f{}", .{std.math.maxInt(usize)}) - ]u8 = undefined; - const c_fields = cty.cast(Payload.Fields).?.data; - - const zig_ty_tag = ty.zigTypeTag(zcu); - var c_field_i: usize = 0; - for (0..switch (zig_ty_tag) { - .Struct => ty.structFieldCount(zcu), - .Union => zcu.typeToUnion(ty).?.field_types.len, - else => unreachable, - }) |field_i_usize| { - const field_i: u32 = @intCast(field_i_usize); - const field_ty = ty.structFieldType(field_i, zcu); - if ((zig_ty_tag == .Struct and ty.structFieldIsComptime(field_i, zcu)) or - !field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; - - defer c_field_i += 1; - const c_field = &c_fields[c_field_i]; - - if (!self.eqlRecurse(field_ty, c_field.type, switch (self.kind) { - .forward, .forward_parameter => .forward, - .complete, .parameter => .complete, - .global => .global, - .payload => unreachable, - }) or !mem.eql( - u8, - if (ty.isSimpleTuple(zcu)) - std.fmt.bufPrintZ(&name_buf, "f{}", .{field_i}) catch unreachable - else - ip.stringToSlice(switch (zig_ty_tag) { - .Struct => ty.legacyStructFieldName(field_i, zcu), - .Union => ip.loadUnionType(ty.toIntern()).loadTagType(ip).names.get(ip)[field_i], - else => unreachable, - }), - mem.span(c_field.name), - ) or AlignAs.fieldAlign(ty, field_i, zcu).@"align" != - c_field.alignas.@"align") return false; - } - return true; - }, - - .unnamed_struct, - .unnamed_union, - .packed_unnamed_struct, - .packed_unnamed_union, - => switch (self.kind) { - .forward, .forward_parameter, .complete, .parameter, .global => unreachable, - .payload => if (ty.unionTagTypeSafety(zcu)) |_| { - const data = cty.cast(Payload.Unnamed).?.data; - return ty.getOwnerDecl(zcu) == data.owner_decl and data.id == 0; - } else unreachable, - }, - - .anon_struct, - .anon_union, - .@"struct", - .@"union", - .packed_struct, - .packed_union, - => return self.eqlRecurse( - ty, - cty.cast(Payload.Aggregate).?.data.fwd_decl, - .forward, - ), - - .function, - .varargs_function, - => { - if (ty.zigTypeTag(zcu) != .Fn) return false; - - const info = zcu.typeToFunc(ty).?; - assert(!info.is_generic); - const data = cty.cast(Payload.Function).?.data; - const param_kind: Kind = switch (self.kind) { - .forward, .forward_parameter => .forward_parameter, - .complete, .parameter, .global => .parameter, - .payload => unreachable, - }; - - if (!self.eqlRecurse(Type.fromInterned(info.return_type), data.return_type, param_kind)) - return false; - - var c_param_i: usize = 0; - for (info.param_types.get(ip)) |param_type| { - if (!Type.fromInterned(param_type).hasRuntimeBitsIgnoreComptime(zcu)) continue; - - if (c_param_i >= data.param_types.len) return false; - const param_cty = data.param_types[c_param_i]; - c_param_i += 1; - - if (!self.eqlRecurse(Type.fromInterned(param_type), param_cty, param_kind)) - return false; - } - return c_param_i == data.param_types.len; - }, - - else => unreachable, - } - }, - } - } - - pub fn hash(self: @This(), ty: Type) u64 { - var hasher = std.hash.Wyhash.init(0); - self.updateHasher(&hasher, ty); - return hasher.final(); - } - - fn updateHasherRecurse(self: @This(), hasher: anytype, ty: Type, kind: Kind) void { - assert(!self.lookup.isMutable()); - - var convert: Convert = undefined; - convert.initType(ty, kind, self.lookup) catch unreachable; - - const self_recurse = @This(){ .kind = kind, .lookup = self.lookup, .convert = &convert }; - self_recurse.updateHasher(hasher, ty); - } - - pub fn updateHasher(self: @This(), hasher: anytype, ty: Type) void { - switch (self.convert.value) { - .cty => |c| return c.updateHasher(hasher, self.lookup.getSet().?.*), - .tag => |t| { - autoHash(hasher, t); - - const zcu = self.lookup.getZcu(); - const ip = &zcu.intern_pool; - switch (t) { - .fwd_anon_struct, - .fwd_anon_union, - => { - var name_buf: [ - std.fmt.count("f{}", .{std.math.maxInt(usize)}) - ]u8 = undefined; - - const zig_ty_tag = ty.zigTypeTag(zcu); - for (0..switch (ty.zigTypeTag(zcu)) { - .Struct => ty.structFieldCount(zcu), - .Union => zcu.typeToUnion(ty).?.field_types.len, - else => unreachable, - }) |field_i_usize| { - const field_i: u32 = @intCast(field_i_usize); - const field_ty = ty.structFieldType(field_i, zcu); - if ((zig_ty_tag == .Struct and ty.structFieldIsComptime(field_i, zcu)) or - !field_ty.hasRuntimeBitsIgnoreComptime(zcu)) continue; - - self.updateHasherRecurse(hasher, field_ty, switch (self.kind) { - .forward, .forward_parameter => .forward, - .complete, .parameter => .complete, - .global => .global, - .payload => unreachable, - }); - hasher.update(if (ty.isSimpleTuple(zcu)) - std.fmt.bufPrint(&name_buf, "f{}", .{field_i}) catch unreachable - else - zcu.intern_pool.stringToSlice(switch (zig_ty_tag) { - .Struct => ty.legacyStructFieldName(field_i, zcu), - .Union => ip.loadUnionType(ty.toIntern()).loadTagType(ip).names.get(ip)[field_i], - else => unreachable, - })); - autoHash(hasher, AlignAs.fieldAlign(ty, field_i, zcu).@"align"); - } - }, - - .unnamed_struct, - .unnamed_union, - .packed_unnamed_struct, - .packed_unnamed_union, - => switch (self.kind) { - .forward, .forward_parameter, .complete, .parameter, .global => unreachable, - .payload => if (ty.unionTagTypeSafety(zcu)) |_| { - autoHash(hasher, ty.getOwnerDecl(zcu)); - autoHash(hasher, @as(u32, 0)); - } else unreachable, - }, - - .anon_struct, - .anon_union, - .@"struct", - .@"union", - .packed_struct, - .packed_union, - => self.updateHasherRecurse(hasher, ty, .forward), - - .function, - .varargs_function, - => { - const info = zcu.typeToFunc(ty).?; - assert(!info.is_generic); - const param_kind: Kind = switch (self.kind) { - .forward, .forward_parameter => .forward_parameter, - .complete, .parameter, .global => .parameter, - .payload => unreachable, - }; - - self.updateHasherRecurse(hasher, Type.fromInterned(info.return_type), param_kind); - for (info.param_types.get(ip)) |param_type| { - if (!Type.fromInterned(param_type).hasRuntimeBitsIgnoreComptime(zcu)) continue; - self.updateHasherRecurse(hasher, Type.fromInterned(param_type), param_kind); - } - }, - - else => unreachable, - } - }, - } - } - }; - - pub const TypeAdapter32 = struct { - kind: Kind, - lookup: Convert.Lookup, - convert: *const Convert, - - fn to64(self: @This()) TypeAdapter64 { - return .{ .kind = self.kind, .lookup = self.lookup, .convert = self.convert }; - } - - pub fn eql(self: @This(), ty: Type, cty: CType, cty_index: usize) bool { - _ = cty_index; - return self.to64().eql(ty, cty); - } - - pub fn hash(self: @This(), ty: Type) u32 { - return @as(u32, @truncate(self.to64().hash(ty))); - } - }; -}; diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig index 8ddacbe11ca1..7419e778a18a 100644 --- a/src/codegen/llvm.zig +++ b/src/codegen/llvm.zig @@ -2033,7 +2033,7 @@ pub const Object = struct { owner_decl.src_node + 1, // Line try o.lowerDebugType(int_ty), ty.abiSize(mod) * 8, - ty.abiAlignment(mod).toByteUnits(0) * 8, + (ty.abiAlignment(mod).toByteUnits() orelse 0) * 8, try o.builder.debugTuple(enumerators), ); @@ -2120,7 +2120,7 @@ pub const Object = struct { 0, // Line try o.lowerDebugType(ptr_ty), ptr_size * 8, - ptr_align.toByteUnits(0) * 8, + (ptr_align.toByteUnits() orelse 0) * 8, 0, // Offset ); @@ -2131,7 +2131,7 @@ pub const Object = struct { 0, // Line try o.lowerDebugType(len_ty), len_size * 8, - len_align.toByteUnits(0) * 8, + (len_align.toByteUnits() orelse 0) * 8, len_offset * 8, ); @@ -2142,7 +2142,7 @@ pub const Object = struct { line, .none, // Underlying type ty.abiSize(mod) * 8, - ty.abiAlignment(mod).toByteUnits(0) * 8, + (ty.abiAlignment(mod).toByteUnits() orelse 0) * 8, try o.builder.debugTuple(&.{ debug_ptr_type, debug_len_type, @@ -2170,7 +2170,7 @@ pub const Object = struct { 0, // Line debug_elem_ty, target.ptrBitWidth(), - ty.ptrAlignment(mod).toByteUnits(0) * 8, + (ty.ptrAlignment(mod).toByteUnits() orelse 0) * 8, 0, // Offset ); @@ -2217,7 +2217,7 @@ pub const Object = struct { 0, // Line try o.lowerDebugType(ty.childType(mod)), ty.abiSize(mod) * 8, - ty.abiAlignment(mod).toByteUnits(0) * 8, + (ty.abiAlignment(mod).toByteUnits() orelse 0) * 8, try o.builder.debugTuple(&.{ try o.builder.debugSubrange( try o.builder.debugConstant(try o.builder.intConst(.i64, 0)), @@ -2260,7 +2260,7 @@ pub const Object = struct { 0, // Line debug_elem_type, ty.abiSize(mod) * 8, - ty.abiAlignment(mod).toByteUnits(0) * 8, + (ty.abiAlignment(mod).toByteUnits() orelse 0) * 8, try o.builder.debugTuple(&.{ try o.builder.debugSubrange( try o.builder.debugConstant(try o.builder.intConst(.i64, 0)), @@ -2316,7 +2316,7 @@ pub const Object = struct { 0, // Line try o.lowerDebugType(child_ty), payload_size * 8, - payload_align.toByteUnits(0) * 8, + (payload_align.toByteUnits() orelse 0) * 8, 0, // Offset ); @@ -2327,7 +2327,7 @@ pub const Object = struct { 0, try o.lowerDebugType(non_null_ty), non_null_size * 8, - non_null_align.toByteUnits(0) * 8, + (non_null_align.toByteUnits() orelse 0) * 8, non_null_offset * 8, ); @@ -2338,7 +2338,7 @@ pub const Object = struct { 0, // Line .none, // Underlying type ty.abiSize(mod) * 8, - ty.abiAlignment(mod).toByteUnits(0) * 8, + (ty.abiAlignment(mod).toByteUnits() orelse 0) * 8, try o.builder.debugTuple(&.{ debug_data_type, debug_some_type, @@ -2396,7 +2396,7 @@ pub const Object = struct { 0, // Line try o.lowerDebugType(Type.anyerror), error_size * 8, - error_align.toByteUnits(0) * 8, + (error_align.toByteUnits() orelse 0) * 8, error_offset * 8, ); fields[payload_index] = try o.builder.debugMemberType( @@ -2406,7 +2406,7 @@ pub const Object = struct { 0, // Line try o.lowerDebugType(payload_ty), payload_size * 8, - payload_align.toByteUnits(0) * 8, + (payload_align.toByteUnits() orelse 0) * 8, payload_offset * 8, ); @@ -2417,7 +2417,7 @@ pub const Object = struct { 0, // Line .none, // Underlying type ty.abiSize(mod) * 8, - ty.abiAlignment(mod).toByteUnits(0) * 8, + (ty.abiAlignment(mod).toByteUnits() orelse 0) * 8, try o.builder.debugTuple(&fields), ); @@ -2485,7 +2485,7 @@ pub const Object = struct { 0, try o.lowerDebugType(Type.fromInterned(field_ty)), field_size * 8, - field_align.toByteUnits(0) * 8, + (field_align.toByteUnits() orelse 0) * 8, field_offset * 8, )); } @@ -2497,7 +2497,7 @@ pub const Object = struct { 0, // Line .none, // Underlying type ty.abiSize(mod) * 8, - ty.abiAlignment(mod).toByteUnits(0) * 8, + (ty.abiAlignment(mod).toByteUnits() orelse 0) * 8, try o.builder.debugTuple(fields.items), ); @@ -2566,7 +2566,7 @@ pub const Object = struct { 0, // Line try o.lowerDebugType(field_ty), field_size * 8, - field_align.toByteUnits(0) * 8, + (field_align.toByteUnits() orelse 0) * 8, field_offset * 8, )); } @@ -2578,7 +2578,7 @@ pub const Object = struct { 0, // Line .none, // Underlying type ty.abiSize(mod) * 8, - ty.abiAlignment(mod).toByteUnits(0) * 8, + (ty.abiAlignment(mod).toByteUnits() orelse 0) * 8, try o.builder.debugTuple(fields.items), ); @@ -2621,7 +2621,7 @@ pub const Object = struct { 0, // Line .none, // Underlying type ty.abiSize(mod) * 8, - ty.abiAlignment(mod).toByteUnits(0) * 8, + (ty.abiAlignment(mod).toByteUnits() orelse 0) * 8, try o.builder.debugTuple( &.{try o.lowerDebugType(Type.fromInterned(union_type.enum_tag_ty))}, ), @@ -2661,7 +2661,7 @@ pub const Object = struct { 0, // Line try o.lowerDebugType(Type.fromInterned(field_ty)), field_size * 8, - field_align.toByteUnits(0) * 8, + (field_align.toByteUnits() orelse 0) * 8, 0, // Offset )); } @@ -2680,7 +2680,7 @@ pub const Object = struct { 0, // Line .none, // Underlying type ty.abiSize(mod) * 8, - ty.abiAlignment(mod).toByteUnits(0) * 8, + (ty.abiAlignment(mod).toByteUnits() orelse 0) * 8, try o.builder.debugTuple(fields.items), ); @@ -2711,7 +2711,7 @@ pub const Object = struct { 0, // Line try o.lowerDebugType(Type.fromInterned(union_type.enum_tag_ty)), layout.tag_size * 8, - layout.tag_align.toByteUnits(0) * 8, + (layout.tag_align.toByteUnits() orelse 0) * 8, tag_offset * 8, ); @@ -2722,7 +2722,7 @@ pub const Object = struct { 0, // Line debug_union_type, layout.payload_size * 8, - layout.payload_align.toByteUnits(0) * 8, + (layout.payload_align.toByteUnits() orelse 0) * 8, payload_offset * 8, ); @@ -2739,7 +2739,7 @@ pub const Object = struct { 0, // Line .none, // Underlying type ty.abiSize(mod) * 8, - ty.abiAlignment(mod).toByteUnits(0) * 8, + (ty.abiAlignment(mod).toByteUnits() orelse 0) * 8, try o.builder.debugTuple(&full_fields), ); @@ -4473,7 +4473,7 @@ pub const Object = struct { // The value cannot be undefined, because we use the `nonnull` annotation // for non-optional pointers. We also need to respect the alignment, even though // the address will never be dereferenced. - const int: u64 = ptr_ty.ptrInfo(mod).flags.alignment.toByteUnitsOptional() orelse + const int: u64 = ptr_ty.ptrInfo(mod).flags.alignment.toByteUnits() orelse // Note that these 0xaa values are appropriate even in release-optimized builds // because we need a well-defined value that is not null, and LLVM does not // have an "undef_but_not_null" attribute. As an example, if this `alloc` AIR diff --git a/src/crash_report.zig b/src/crash_report.zig index f33bef78e75c..311647f23ff7 100644 --- a/src/crash_report.zig +++ b/src/crash_report.zig @@ -172,7 +172,7 @@ pub fn attachSegfaultHandler() void { }; } -fn handleSegfaultPosix(sig: i32, info: *const posix.siginfo_t, ctx_ptr: ?*const anyopaque) callconv(.C) noreturn { +fn handleSegfaultPosix(sig: i32, info: *const posix.siginfo_t, ctx_ptr: ?*anyopaque) callconv(.C) noreturn { // TODO: use alarm() here to prevent infinite loops PanicSwitch.preDispatch(); diff --git a/src/link/C.zig b/src/link/C.zig index d717903ff317..8bff6d9fce5d 100644 --- a/src/link/C.zig +++ b/src/link/C.zig @@ -69,13 +69,13 @@ pub const DeclBlock = struct { fwd_decl: String = String.empty, /// Each `Decl` stores a set of used `CType`s. In `flush()`, we iterate /// over each `Decl` and generate the definition for each used `CType` once. - ctypes: codegen.CType.Store = .{}, - /// Key and Value storage use the ctype arena. + ctype_pool: codegen.CType.Pool = codegen.CType.Pool.empty, + /// May contain string references to ctype_pool lazy_fns: codegen.LazyFnMap = .{}, fn deinit(db: *DeclBlock, gpa: Allocator) void { db.lazy_fns.deinit(gpa); - db.ctypes.deinit(gpa); + db.ctype_pool.deinit(gpa); db.* = undefined; } }; @@ -190,11 +190,12 @@ pub fn updateFunc( const decl = zcu.declPtr(decl_index); const gop = try self.decl_table.getOrPut(gpa, decl_index); if (!gop.found_existing) gop.value_ptr.* = .{}; - const ctypes = &gop.value_ptr.ctypes; + const ctype_pool = &gop.value_ptr.ctype_pool; const lazy_fns = &gop.value_ptr.lazy_fns; const fwd_decl = &self.fwd_decl_buf; const code = &self.code_buf; - ctypes.clearRetainingCapacity(gpa); + try ctype_pool.init(gpa); + ctype_pool.clearRetainingCapacity(); lazy_fns.clearRetainingCapacity(); fwd_decl.clearRetainingCapacity(); code.clearRetainingCapacity(); @@ -213,7 +214,8 @@ pub fn updateFunc( .pass = .{ .decl = decl_index }, .is_naked_fn = decl.typeOf(zcu).fnCallingConvention(zcu) == .Naked, .fwd_decl = fwd_decl.toManaged(gpa), - .ctypes = ctypes.*, + .ctype_pool = ctype_pool.*, + .scratch = .{}, .anon_decl_deps = self.anon_decls, .aligned_anon_decls = self.aligned_anon_decls, }, @@ -222,12 +224,16 @@ pub fn updateFunc( }, .lazy_fns = lazy_fns.*, }; - function.object.indent_writer = .{ .underlying_writer = function.object.code.writer() }; defer { self.anon_decls = function.object.dg.anon_decl_deps; self.aligned_anon_decls = function.object.dg.aligned_anon_decls; fwd_decl.* = function.object.dg.fwd_decl.moveToUnmanaged(); + ctype_pool.* = function.object.dg.ctype_pool.move(); + ctype_pool.freeUnusedCapacity(gpa); + function.object.dg.scratch.deinit(gpa); + lazy_fns.* = function.lazy_fns.move(); + lazy_fns.shrinkAndFree(gpa, lazy_fns.count()); code.* = function.object.code.moveToUnmanaged(); function.deinit(); } @@ -239,16 +245,8 @@ pub fn updateFunc( }, else => |e| return e, }; - - ctypes.* = function.object.dg.ctypes.move(); - lazy_fns.* = function.lazy_fns.move(); - - // Free excess allocated memory for this Decl. - ctypes.shrinkAndFree(gpa, ctypes.count()); - lazy_fns.shrinkAndFree(gpa, lazy_fns.count()); - - gop.value_ptr.code = try self.addString(function.object.code.items); gop.value_ptr.fwd_decl = try self.addString(function.object.dg.fwd_decl.items); + gop.value_ptr.code = try self.addString(function.object.code.items); } fn updateAnonDecl(self: *C, zcu: *Zcu, i: usize) !void { @@ -269,7 +267,8 @@ fn updateAnonDecl(self: *C, zcu: *Zcu, i: usize) !void { .pass = .{ .anon = anon_decl }, .is_naked_fn = false, .fwd_decl = fwd_decl.toManaged(gpa), - .ctypes = .{}, + .ctype_pool = codegen.CType.Pool.empty, + .scratch = .{}, .anon_decl_deps = self.anon_decls, .aligned_anon_decls = self.aligned_anon_decls, }, @@ -277,14 +276,15 @@ fn updateAnonDecl(self: *C, zcu: *Zcu, i: usize) !void { .indent_writer = undefined, // set later so we can get a pointer to object.code }; object.indent_writer = .{ .underlying_writer = object.code.writer() }; - defer { self.anon_decls = object.dg.anon_decl_deps; self.aligned_anon_decls = object.dg.aligned_anon_decls; - object.dg.ctypes.deinit(object.dg.gpa); fwd_decl.* = object.dg.fwd_decl.moveToUnmanaged(); + object.dg.ctype_pool.deinit(object.dg.gpa); + object.dg.scratch.deinit(gpa); code.* = object.code.moveToUnmanaged(); } + try object.dg.ctype_pool.init(gpa); const c_value: codegen.CValue = .{ .constant = Value.fromInterned(anon_decl) }; const alignment: Alignment = self.aligned_anon_decls.get(anon_decl) orelse .none; @@ -297,13 +297,11 @@ fn updateAnonDecl(self: *C, zcu: *Zcu, i: usize) !void { else => |e| return e, }; - // Free excess allocated memory for this Decl. - object.dg.ctypes.shrinkAndFree(gpa, object.dg.ctypes.count()); - + object.dg.ctype_pool.freeUnusedCapacity(gpa); object.dg.anon_decl_deps.values()[i] = .{ .code = try self.addString(object.code.items), .fwd_decl = try self.addString(object.dg.fwd_decl.items), - .ctypes = object.dg.ctypes.move(), + .ctype_pool = object.dg.ctype_pool.move(), }; } @@ -315,13 +313,13 @@ pub fn updateDecl(self: *C, zcu: *Zcu, decl_index: InternPool.DeclIndex) !void { const decl = zcu.declPtr(decl_index); const gop = try self.decl_table.getOrPut(gpa, decl_index); - if (!gop.found_existing) { - gop.value_ptr.* = .{}; - } - const ctypes = &gop.value_ptr.ctypes; + errdefer _ = self.decl_table.pop(); + if (!gop.found_existing) gop.value_ptr.* = .{}; + const ctype_pool = &gop.value_ptr.ctype_pool; const fwd_decl = &self.fwd_decl_buf; const code = &self.code_buf; - ctypes.clearRetainingCapacity(gpa); + try ctype_pool.init(gpa); + ctype_pool.clearRetainingCapacity(); fwd_decl.clearRetainingCapacity(); code.clearRetainingCapacity(); @@ -334,7 +332,8 @@ pub fn updateDecl(self: *C, zcu: *Zcu, decl_index: InternPool.DeclIndex) !void { .pass = .{ .decl = decl_index }, .is_naked_fn = false, .fwd_decl = fwd_decl.toManaged(gpa), - .ctypes = ctypes.*, + .ctype_pool = ctype_pool.*, + .scratch = .{}, .anon_decl_deps = self.anon_decls, .aligned_anon_decls = self.aligned_anon_decls, }, @@ -345,8 +344,10 @@ pub fn updateDecl(self: *C, zcu: *Zcu, decl_index: InternPool.DeclIndex) !void { defer { self.anon_decls = object.dg.anon_decl_deps; self.aligned_anon_decls = object.dg.aligned_anon_decls; - object.dg.ctypes.deinit(object.dg.gpa); fwd_decl.* = object.dg.fwd_decl.moveToUnmanaged(); + ctype_pool.* = object.dg.ctype_pool.move(); + ctype_pool.freeUnusedCapacity(gpa); + object.dg.scratch.deinit(gpa); code.* = object.code.moveToUnmanaged(); } @@ -357,12 +358,6 @@ pub fn updateDecl(self: *C, zcu: *Zcu, decl_index: InternPool.DeclIndex) !void { }, else => |e| return e, }; - - ctypes.* = object.dg.ctypes.move(); - - // Free excess allocated memory for this Decl. - ctypes.shrinkAndFree(gpa, ctypes.count()); - gop.value_ptr.code = try self.addString(object.code.items); gop.value_ptr.fwd_decl = try self.addString(object.dg.fwd_decl.items); } @@ -416,7 +411,10 @@ pub fn flushModule(self: *C, arena: Allocator, prog_node: *std.Progress.Node) !v // This code path happens exclusively with -ofmt=c. The flush logic for // emit-h is in `flushEmitH` below. - var f: Flush = .{}; + var f: Flush = .{ + .ctype_pool = codegen.CType.Pool.empty, + .lazy_ctype_pool = codegen.CType.Pool.empty, + }; defer f.deinit(gpa); const abi_defines = try self.abiDefines(zcu.getTarget()); @@ -443,7 +441,8 @@ pub fn flushModule(self: *C, arena: Allocator, prog_node: *std.Progress.Node) !v self.lazy_fwd_decl_buf.clearRetainingCapacity(); self.lazy_code_buf.clearRetainingCapacity(); - try self.flushErrDecls(zcu, &f.lazy_ctypes); + try f.lazy_ctype_pool.init(gpa); + try self.flushErrDecls(zcu, &f.lazy_ctype_pool); // Unlike other backends, the .c code we are emitting has order-dependent decls. // `CType`s, forward decls, and non-functions first. @@ -471,15 +470,15 @@ pub fn flushModule(self: *C, arena: Allocator, prog_node: *std.Progress.Node) !v { // We need to flush lazy ctypes after flushing all decls but before flushing any decl ctypes. // This ensures that every lazy CType.Index exactly matches the global CType.Index. - assert(f.ctypes.count() == 0); - try self.flushCTypes(zcu, &f, .flush, f.lazy_ctypes); + try f.ctype_pool.init(gpa); + try self.flushCTypes(zcu, &f, .flush, &f.lazy_ctype_pool); for (self.anon_decls.keys(), self.anon_decls.values()) |anon_decl, decl_block| { - try self.flushCTypes(zcu, &f, .{ .anon = anon_decl }, decl_block.ctypes); + try self.flushCTypes(zcu, &f, .{ .anon = anon_decl }, &decl_block.ctype_pool); } for (self.decl_table.keys(), self.decl_table.values()) |decl_index, decl_block| { - try self.flushCTypes(zcu, &f, .{ .decl = decl_index }, decl_block.ctypes); + try self.flushCTypes(zcu, &f, .{ .decl = decl_index }, &decl_block.ctype_pool); } } @@ -510,11 +509,11 @@ pub fn flushModule(self: *C, arena: Allocator, prog_node: *std.Progress.Node) !v } const Flush = struct { - ctypes: codegen.CType.Store = .{}, - ctypes_map: std.ArrayListUnmanaged(codegen.CType.Index) = .{}, + ctype_pool: codegen.CType.Pool, + ctype_global_from_decl_map: std.ArrayListUnmanaged(codegen.CType) = .{}, ctypes_buf: std.ArrayListUnmanaged(u8) = .{}, - lazy_ctypes: codegen.CType.Store = .{}, + lazy_ctype_pool: codegen.CType.Pool, lazy_fns: LazyFns = .{}, asm_buf: std.ArrayListUnmanaged(u8) = .{}, @@ -536,10 +535,11 @@ const Flush = struct { f.all_buffers.deinit(gpa); f.asm_buf.deinit(gpa); f.lazy_fns.deinit(gpa); - f.lazy_ctypes.deinit(gpa); + f.lazy_ctype_pool.deinit(gpa); f.ctypes_buf.deinit(gpa); - f.ctypes_map.deinit(gpa); - f.ctypes.deinit(gpa); + assert(f.ctype_global_from_decl_map.items.len == 0); + f.ctype_global_from_decl_map.deinit(gpa); + f.ctype_pool.deinit(gpa); } }; @@ -552,88 +552,59 @@ fn flushCTypes( zcu: *Zcu, f: *Flush, pass: codegen.DeclGen.Pass, - decl_ctypes: codegen.CType.Store, + decl_ctype_pool: *const codegen.CType.Pool, ) FlushDeclError!void { const gpa = self.base.comp.gpa; + const global_ctype_pool = &f.ctype_pool; - const decl_ctypes_len = decl_ctypes.count(); - f.ctypes_map.clearRetainingCapacity(); - try f.ctypes_map.ensureTotalCapacity(gpa, decl_ctypes_len); - - var global_ctypes = f.ctypes.promote(gpa); - defer f.ctypes.demote(global_ctypes); + const global_from_decl_map = &f.ctype_global_from_decl_map; + assert(global_from_decl_map.items.len == 0); + try global_from_decl_map.ensureTotalCapacity(gpa, decl_ctype_pool.items.len); + defer global_from_decl_map.clearRetainingCapacity(); var ctypes_buf = f.ctypes_buf.toManaged(gpa); defer f.ctypes_buf = ctypes_buf.moveToUnmanaged(); const writer = ctypes_buf.writer(); - const slice = decl_ctypes.set.map.entries.slice(); - for (slice.items(.key), 0..) |decl_cty, decl_i| { - const Context = struct { - arena: Allocator, - ctypes_map: []codegen.CType.Index, - cached_hash: codegen.CType.Store.Set.Map.Hash, - idx: codegen.CType.Index, - - pub fn hash(ctx: @This(), _: codegen.CType) codegen.CType.Store.Set.Map.Hash { - return ctx.cached_hash; + for (0..decl_ctype_pool.items.len) |decl_ctype_pool_index| { + const PoolAdapter = struct { + global_from_decl_map: []const codegen.CType, + pub fn eql(pool_adapter: @This(), decl_ctype: codegen.CType, global_ctype: codegen.CType) bool { + return if (decl_ctype.toPoolIndex()) |decl_pool_index| + decl_pool_index < pool_adapter.global_from_decl_map.len and + pool_adapter.global_from_decl_map[decl_pool_index].eql(global_ctype) + else + decl_ctype.index == global_ctype.index; } - pub fn eql(ctx: @This(), lhs: codegen.CType, rhs: codegen.CType, _: usize) bool { - return lhs.eqlContext(rhs, ctx); + pub fn copy(pool_adapter: @This(), decl_ctype: codegen.CType) codegen.CType { + return if (decl_ctype.toPoolIndex()) |decl_pool_index| + pool_adapter.global_from_decl_map[decl_pool_index] + else + decl_ctype; } - pub fn eqlIndex( - ctx: @This(), - lhs_idx: codegen.CType.Index, - rhs_idx: codegen.CType.Index, - ) bool { - if (lhs_idx < codegen.CType.Tag.no_payload_count or - rhs_idx < codegen.CType.Tag.no_payload_count) return lhs_idx == rhs_idx; - const lhs_i = lhs_idx - codegen.CType.Tag.no_payload_count; - if (lhs_i >= ctx.ctypes_map.len) return false; - return ctx.ctypes_map[lhs_i] == rhs_idx; - } - pub fn copyIndex(ctx: @This(), idx: codegen.CType.Index) codegen.CType.Index { - if (idx < codegen.CType.Tag.no_payload_count) return idx; - return ctx.ctypes_map[idx - codegen.CType.Tag.no_payload_count]; - } - }; - const decl_idx = @as(codegen.CType.Index, @intCast(codegen.CType.Tag.no_payload_count + decl_i)); - const ctx = Context{ - .arena = global_ctypes.arena.allocator(), - .ctypes_map = f.ctypes_map.items, - .cached_hash = decl_ctypes.indexToHash(decl_idx), - .idx = decl_idx, }; - const gop = try global_ctypes.set.map.getOrPutContextAdapted(gpa, decl_cty, ctx, .{ - .store = &global_ctypes.set, - }); - const global_idx = - @as(codegen.CType.Index, @intCast(codegen.CType.Tag.no_payload_count + gop.index)); - f.ctypes_map.appendAssumeCapacity(global_idx); - if (!gop.found_existing) { - errdefer _ = global_ctypes.set.map.pop(); - gop.key_ptr.* = try decl_cty.copyContext(ctx); - } - if (std.debug.runtime_safety) { - const global_cty = &global_ctypes.set.map.entries.items(.key)[gop.index]; - assert(global_cty == gop.key_ptr); - assert(decl_cty.eqlContext(global_cty.*, ctx)); - assert(decl_cty.hash(decl_ctypes.set) == global_cty.hash(global_ctypes.set)); - } + const decl_ctype = codegen.CType.fromPoolIndex(decl_ctype_pool_index); + const global_ctype, const found_existing = try global_ctype_pool.getOrPutAdapted( + gpa, + decl_ctype_pool, + decl_ctype, + PoolAdapter{ .global_from_decl_map = global_from_decl_map.items }, + ); + global_from_decl_map.appendAssumeCapacity(global_ctype); try codegen.genTypeDecl( zcu, writer, - global_ctypes.set, - global_idx, + global_ctype_pool, + global_ctype, pass, - decl_ctypes.set, - decl_idx, - gop.found_existing, + decl_ctype_pool, + decl_ctype, + found_existing, ); } } -fn flushErrDecls(self: *C, zcu: *Zcu, ctypes: *codegen.CType.Store) FlushDeclError!void { +fn flushErrDecls(self: *C, zcu: *Zcu, ctype_pool: *codegen.CType.Pool) FlushDeclError!void { const gpa = self.base.comp.gpa; const fwd_decl = &self.lazy_fwd_decl_buf; @@ -648,7 +619,8 @@ fn flushErrDecls(self: *C, zcu: *Zcu, ctypes: *codegen.CType.Store) FlushDeclErr .pass = .flush, .is_naked_fn = false, .fwd_decl = fwd_decl.toManaged(gpa), - .ctypes = ctypes.*, + .ctype_pool = ctype_pool.*, + .scratch = .{}, .anon_decl_deps = self.anon_decls, .aligned_anon_decls = self.aligned_anon_decls, }, @@ -659,8 +631,10 @@ fn flushErrDecls(self: *C, zcu: *Zcu, ctypes: *codegen.CType.Store) FlushDeclErr defer { self.anon_decls = object.dg.anon_decl_deps; self.aligned_anon_decls = object.dg.aligned_anon_decls; - object.dg.ctypes.deinit(gpa); fwd_decl.* = object.dg.fwd_decl.moveToUnmanaged(); + ctype_pool.* = object.dg.ctype_pool.move(); + ctype_pool.freeUnusedCapacity(gpa); + object.dg.scratch.deinit(gpa); code.* = object.code.moveToUnmanaged(); } @@ -668,15 +642,14 @@ fn flushErrDecls(self: *C, zcu: *Zcu, ctypes: *codegen.CType.Store) FlushDeclErr error.AnalysisFail => unreachable, else => |e| return e, }; - - ctypes.* = object.dg.ctypes.move(); } fn flushLazyFn( self: *C, zcu: *Zcu, mod: *Module, - ctypes: *codegen.CType.Store, + ctype_pool: *codegen.CType.Pool, + lazy_ctype_pool: *const codegen.CType.Pool, lazy_fn: codegen.LazyFnMap.Entry, ) FlushDeclError!void { const gpa = self.base.comp.gpa; @@ -693,7 +666,8 @@ fn flushLazyFn( .pass = .flush, .is_naked_fn = false, .fwd_decl = fwd_decl.toManaged(gpa), - .ctypes = ctypes.*, + .ctype_pool = ctype_pool.*, + .scratch = .{}, .anon_decl_deps = .{}, .aligned_anon_decls = .{}, }, @@ -706,17 +680,17 @@ fn flushLazyFn( // `updateFunc()` does. assert(object.dg.anon_decl_deps.count() == 0); assert(object.dg.aligned_anon_decls.count() == 0); - object.dg.ctypes.deinit(gpa); fwd_decl.* = object.dg.fwd_decl.moveToUnmanaged(); + ctype_pool.* = object.dg.ctype_pool.move(); + ctype_pool.freeUnusedCapacity(gpa); + object.dg.scratch.deinit(gpa); code.* = object.code.moveToUnmanaged(); } - codegen.genLazyFn(&object, lazy_fn) catch |err| switch (err) { + codegen.genLazyFn(&object, lazy_ctype_pool, lazy_fn) catch |err| switch (err) { error.AnalysisFail => unreachable, else => |e| return e, }; - - ctypes.* = object.dg.ctypes.move(); } fn flushLazyFns( @@ -724,6 +698,7 @@ fn flushLazyFns( zcu: *Zcu, mod: *Module, f: *Flush, + lazy_ctype_pool: *const codegen.CType.Pool, lazy_fns: codegen.LazyFnMap, ) FlushDeclError!void { const gpa = self.base.comp.gpa; @@ -734,7 +709,7 @@ fn flushLazyFns( const gop = f.lazy_fns.getOrPutAssumeCapacity(entry.key_ptr.*); if (gop.found_existing) continue; gop.value_ptr.* = {}; - try self.flushLazyFn(zcu, mod, &f.lazy_ctypes, entry); + try self.flushLazyFn(zcu, mod, &f.lazy_ctype_pool, lazy_ctype_pool, entry); } } @@ -748,7 +723,7 @@ fn flushDeclBlock( extern_symbol_name: InternPool.OptionalNullTerminatedString, ) FlushDeclError!void { const gpa = self.base.comp.gpa; - try self.flushLazyFns(zcu, mod, f, decl_block.lazy_fns); + try self.flushLazyFns(zcu, mod, f, &decl_block.ctype_pool, decl_block.lazy_fns); try f.all_buffers.ensureUnusedCapacity(gpa, 1); fwd_decl: { if (extern_symbol_name.unwrap()) |name| { diff --git a/src/link/Coff.zig b/src/link/Coff.zig index 7becb3f366f8..aaf840e02ccf 100644 --- a/src/link/Coff.zig +++ b/src/link/Coff.zig @@ -1223,7 +1223,7 @@ fn lowerConst(self: *Coff, name: []const u8, val: Value, required_alignment: Int atom.getSymbolPtr(self).value = try self.allocateAtom( atom_index, atom.size, - @intCast(required_alignment.toByteUnitsOptional().?), + @intCast(required_alignment.toByteUnits().?), ); errdefer self.freeAtom(atom_index); @@ -1344,7 +1344,7 @@ fn updateLazySymbolAtom( symbol.section_number = @as(coff.SectionNumber, @enumFromInt(section_index + 1)); symbol.type = .{ .complex_type = .NULL, .base_type = .NULL }; - const vaddr = try self.allocateAtom(atom_index, code_len, @intCast(required_alignment.toByteUnits(0))); + const vaddr = try self.allocateAtom(atom_index, code_len, @intCast(required_alignment.toByteUnits() orelse 0)); errdefer self.freeAtom(atom_index); log.debug("allocated atom for {s} at 0x{x}", .{ name, vaddr }); @@ -1428,7 +1428,7 @@ fn updateDeclCode(self: *Coff, decl_index: InternPool.DeclIndex, code: []u8, com const decl_name = mod.intern_pool.stringToSlice(try decl.fullyQualifiedName(mod)); log.debug("updateDeclCode {s}{*}", .{ decl_name, decl }); - const required_alignment: u32 = @intCast(decl.getAlignment(mod).toByteUnits(0)); + const required_alignment: u32 = @intCast(decl.getAlignment(mod).toByteUnits() orelse 0); const decl_metadata = self.decls.get(decl_index).?; const atom_index = decl_metadata.atom; diff --git a/src/link/Elf.zig b/src/link/Elf.zig index 95ddc81e3c08..c20a4b6afa48 100644 --- a/src/link/Elf.zig +++ b/src/link/Elf.zig @@ -4051,7 +4051,7 @@ fn updateSectionSizes(self: *Elf) !void { const padding = offset - shdr.sh_size; atom_ptr.value = offset; shdr.sh_size += padding + atom_ptr.size; - shdr.sh_addralign = @max(shdr.sh_addralign, atom_ptr.alignment.toByteUnits(1)); + shdr.sh_addralign = @max(shdr.sh_addralign, atom_ptr.alignment.toByteUnits() orelse 1); } } diff --git a/src/link/Elf/Atom.zig b/src/link/Elf/Atom.zig index f391326670b4..3db11826963b 100644 --- a/src/link/Elf/Atom.zig +++ b/src/link/Elf/Atom.zig @@ -208,7 +208,7 @@ pub fn allocate(self: *Atom, elf_file: *Elf) !void { zig_object.debug_aranges_section_dirty = true; } } - shdr.sh_addralign = @max(shdr.sh_addralign, self.alignment.toByteUnitsOptional().?); + shdr.sh_addralign = @max(shdr.sh_addralign, self.alignment.toByteUnits().?); // This function can also reallocate an atom. // In this case we need to "unplug" it from its previous location before diff --git a/src/link/Elf/ZigObject.zig b/src/link/Elf/ZigObject.zig index 6ed55dac10eb..6aede441c885 100644 --- a/src/link/Elf/ZigObject.zig +++ b/src/link/Elf/ZigObject.zig @@ -313,7 +313,7 @@ pub fn inputShdr(self: ZigObject, atom_index: Atom.Index, elf_file: *Elf) elf.El shdr.sh_addr = 0; shdr.sh_offset = 0; shdr.sh_size = atom.size; - shdr.sh_addralign = atom.alignment.toByteUnits(1); + shdr.sh_addralign = atom.alignment.toByteUnits() orelse 1; return shdr; } diff --git a/src/link/Elf/relocatable.zig b/src/link/Elf/relocatable.zig index 017329dde773..98abed420eb0 100644 --- a/src/link/Elf/relocatable.zig +++ b/src/link/Elf/relocatable.zig @@ -330,7 +330,7 @@ fn updateSectionSizes(elf_file: *Elf) !void { const padding = offset - shdr.sh_size; atom_ptr.value = offset; shdr.sh_size += padding + atom_ptr.size; - shdr.sh_addralign = @max(shdr.sh_addralign, atom_ptr.alignment.toByteUnits(1)); + shdr.sh_addralign = @max(shdr.sh_addralign, atom_ptr.alignment.toByteUnits() orelse 1); } } diff --git a/src/link/Elf/thunks.zig b/src/link/Elf/thunks.zig index 119529b5123d..7d06b3b19099 100644 --- a/src/link/Elf/thunks.zig +++ b/src/link/Elf/thunks.zig @@ -63,7 +63,7 @@ fn advance(shdr: *elf.Elf64_Shdr, size: u64, alignment: Atom.Alignment) !u64 { const offset = alignment.forward(shdr.sh_size); const padding = offset - shdr.sh_size; shdr.sh_size += padding + size; - shdr.sh_addralign = @max(shdr.sh_addralign, alignment.toByteUnits(1)); + shdr.sh_addralign = @max(shdr.sh_addralign, alignment.toByteUnits() orelse 1); return offset; } diff --git a/src/link/MachO.zig b/src/link/MachO.zig index 71666beb074d..2c8a3da59f7a 100644 --- a/src/link/MachO.zig +++ b/src/link/MachO.zig @@ -2060,7 +2060,7 @@ fn calcSectionSizes(self: *MachO) !void { for (atoms.items) |atom_index| { const atom = self.getAtom(atom_index).?; - const atom_alignment = atom.alignment.toByteUnits(1); + const atom_alignment = atom.alignment.toByteUnits() orelse 1; const offset = mem.alignForward(u64, header.size, atom_alignment); const padding = offset - header.size; atom.value = offset; diff --git a/src/link/MachO/relocatable.zig b/src/link/MachO/relocatable.zig index b0eced27ebbf..711aa01fb488 100644 --- a/src/link/MachO/relocatable.zig +++ b/src/link/MachO/relocatable.zig @@ -380,7 +380,7 @@ fn calcSectionSizes(macho_file: *MachO) !void { if (atoms.items.len == 0) continue; for (atoms.items) |atom_index| { const atom = macho_file.getAtom(atom_index).?; - const atom_alignment = atom.alignment.toByteUnits(1); + const atom_alignment = atom.alignment.toByteUnits() orelse 1; const offset = mem.alignForward(u64, header.size, atom_alignment); const padding = offset - header.size; atom.value = offset; diff --git a/src/link/Wasm.zig b/src/link/Wasm.zig index ce91beedae72..10f00d8992dc 100644 --- a/src/link/Wasm.zig +++ b/src/link/Wasm.zig @@ -2263,7 +2263,7 @@ fn setupMemory(wasm: *Wasm) !void { } if (wasm.findGlobalSymbol("__tls_align")) |loc| { const sym = loc.getSymbol(wasm); - wasm.wasm_globals.items[sym.index - wasm.imported_globals_count].init.i32_const = @intCast(segment.alignment.toByteUnitsOptional().?); + wasm.wasm_globals.items[sym.index - wasm.imported_globals_count].init.i32_const = @intCast(segment.alignment.toByteUnits().?); } if (wasm.findGlobalSymbol("__tls_base")) |loc| { const sym = loc.getSymbol(wasm); diff --git a/src/main.zig b/src/main.zig index 2edc3864c6ad..9e699c07e6f5 100644 --- a/src/main.zig +++ b/src/main.zig @@ -3544,11 +3544,7 @@ fn createModule( // If the target is not overridden, use the parent's target. Of course, // if this is the root module then we need to proceed to resolve the // target. - if (cli_mod.target_arch_os_abi == null and - cli_mod.target_mcpu == null and - create_module.dynamic_linker == null and - create_module.object_format == null) - { + if (cli_mod.target_arch_os_abi == null and cli_mod.target_mcpu == null) { if (parent) |p| break :t p.resolved_target; } diff --git a/src/print_value.zig b/src/print_value.zig index 25c20bbbbd10..21a322cd6371 100644 --- a/src/print_value.zig +++ b/src/print_value.zig @@ -80,7 +80,7 @@ pub fn print( inline .u64, .i64, .big_int => |x| try writer.print("{}", .{x}), .lazy_align => |ty| if (opt_sema) |sema| { const a = (try Type.fromInterned(ty).abiAlignmentAdvanced(mod, .{ .sema = sema })).scalar; - try writer.print("{}", .{a.toByteUnits(0)}); + try writer.print("{}", .{a.toByteUnits() orelse 0}); } else try writer.print("@alignOf({})", .{Type.fromInterned(ty).fmt(mod)}), .lazy_size => |ty| if (opt_sema) |sema| { const s = (try Type.fromInterned(ty).abiSizeAdvanced(mod, .{ .sema = sema })).scalar; diff --git a/src/target.zig b/src/target.zig index 8f1942111da4..fa782075c77e 100644 --- a/src/target.zig +++ b/src/target.zig @@ -525,7 +525,7 @@ pub fn backendSupportsFeature( .error_return_trace => use_llvm, .is_named_enum_value => use_llvm, .error_set_has_value => use_llvm or cpu_arch.isWasm(), - .field_reordering => use_llvm, + .field_reordering => ofmt == .c or use_llvm, .safety_checked_instructions => use_llvm, }; } diff --git a/src/type.zig b/src/type.zig index 203ab4f63e68..8352552463e9 100644 --- a/src/type.zig +++ b/src/type.zig @@ -203,7 +203,7 @@ pub const Type = struct { info.flags.alignment else Type.fromInterned(info.child).abiAlignment(mod); - try writer.print("align({d}", .{alignment.toByteUnits(0)}); + try writer.print("align({d}", .{alignment.toByteUnits() orelse 0}); if (info.packed_offset.bit_offset != 0 or info.packed_offset.host_size != 0) { try writer.print(":{d}:{d}", .{ @@ -863,7 +863,7 @@ pub const Type = struct { pub fn lazyAbiAlignment(ty: Type, mod: *Module) !Value { switch (try ty.abiAlignmentAdvanced(mod, .lazy)) { .val => |val| return val, - .scalar => |x| return mod.intValue(Type.comptime_int, x.toByteUnits(0)), + .scalar => |x| return mod.intValue(Type.comptime_int, x.toByteUnits() orelse 0), } } @@ -905,7 +905,7 @@ pub const Type = struct { return .{ .scalar = intAbiAlignment(int_type.bits, target) }; }, .ptr_type, .anyframe_type => { - return .{ .scalar = Alignment.fromByteUnits(@divExact(target.ptrBitWidth(), 8)) }; + return .{ .scalar = ptrAbiAlignment(target) }; }, .array_type => |array_type| { return Type.fromInterned(array_type.child).abiAlignmentAdvanced(mod, strat); @@ -920,6 +920,9 @@ pub const Type = struct { const alignment = std.math.ceilPowerOfTwoAssert(u32, bytes); return .{ .scalar = Alignment.fromByteUnits(alignment) }; }, + .stage2_c => { + return Type.fromInterned(vector_type.child).abiAlignmentAdvanced(mod, strat); + }, .stage2_x86_64 => { if (vector_type.child == .bool_type) { if (vector_type.len > 256 and std.Target.x86.featureSetHas(target.cpu.features, .avx512f)) return .{ .scalar = .@"64" }; @@ -966,12 +969,12 @@ pub const Type = struct { .usize, .isize, + => return .{ .scalar = intAbiAlignment(target.ptrBitWidth(), target) }, + .export_options, .extern_options, .type_info, - => return .{ - .scalar = Alignment.fromByteUnits(@divExact(target.ptrBitWidth(), 8)), - }, + => return .{ .scalar = ptrAbiAlignment(target) }, .c_char => return .{ .scalar = cTypeAlign(target, .char) }, .c_short => return .{ .scalar = cTypeAlign(target, .short) }, @@ -1160,9 +1163,7 @@ pub const Type = struct { const child_type = ty.optionalChild(mod); switch (child_type.zigTypeTag(mod)) { - .Pointer => return .{ - .scalar = Alignment.fromByteUnits(@divExact(target.ptrBitWidth(), 8)), - }, + .Pointer => return .{ .scalar = ptrAbiAlignment(target) }, .ErrorSet => return abiAlignmentAdvanced(Type.anyerror, mod, strat), .NoReturn => return .{ .scalar = .@"1" }, else => {}, @@ -1274,6 +1275,10 @@ pub const Type = struct { const total_bits = elem_bits * vector_type.len; break :total_bytes (total_bits + 7) / 8; }, + .stage2_c => total_bytes: { + const elem_bytes: u32 = @intCast((try Type.fromInterned(vector_type.child).abiSizeAdvanced(mod, strat)).scalar); + break :total_bytes elem_bytes * vector_type.len; + }, .stage2_x86_64 => total_bytes: { if (vector_type.child == .bool_type) break :total_bytes std.math.divCeil(u32, vector_type.len, 8) catch unreachable; const elem_bytes: u32 = @intCast((try Type.fromInterned(vector_type.child).abiSizeAdvanced(mod, strat)).scalar); @@ -1527,15 +1532,19 @@ pub const Type = struct { // guaranteed to be >= that of bool's (1 byte) the added size is exactly equal // to the child type's ABI alignment. return AbiSizeAdvanced{ - .scalar = child_ty.abiAlignment(mod).toByteUnits(0) + payload_size, + .scalar = (child_ty.abiAlignment(mod).toByteUnits() orelse 0) + payload_size, }; } - fn intAbiSize(bits: u16, target: Target) u64 { + pub fn ptrAbiAlignment(target: Target) Alignment { + return Alignment.fromNonzeroByteUnits(@divExact(target.ptrBitWidth(), 8)); + } + + pub fn intAbiSize(bits: u16, target: Target) u64 { return intAbiAlignment(bits, target).forward(@as(u16, @intCast((@as(u17, bits) + 7) / 8))); } - fn intAbiAlignment(bits: u16, target: Target) Alignment { + pub fn intAbiAlignment(bits: u16, target: Target) Alignment { return Alignment.fromByteUnits(@min( std.math.ceilPowerOfTwoPromote(u16, @as(u16, @intCast((@as(u17, bits) + 7) / 8))), target.maxIntAlignment(), @@ -1572,7 +1581,7 @@ pub const Type = struct { if (len == 0) return 0; const elem_ty = Type.fromInterned(array_type.child); const elem_size = @max( - (try elem_ty.abiAlignmentAdvanced(mod, strat)).scalar.toByteUnits(0), + (try elem_ty.abiAlignmentAdvanced(mod, strat)).scalar.toByteUnits() orelse 0, (try elem_ty.abiSizeAdvanced(mod, strat)).scalar, ); if (elem_size == 0) return 0; @@ -3016,26 +3025,15 @@ pub const Type = struct { } /// Returns none in the case of a tuple which uses the integer index as the field name. - pub fn structFieldName(ty: Type, field_index: u32, mod: *Module) InternPool.OptionalNullTerminatedString { + pub fn structFieldName(ty: Type, index: usize, mod: *Module) InternPool.OptionalNullTerminatedString { const ip = &mod.intern_pool; return switch (ip.indexToKey(ty.toIntern())) { - .struct_type => ip.loadStructType(ty.toIntern()).fieldName(ip, field_index), - .anon_struct_type => |anon_struct| anon_struct.fieldName(ip, field_index), + .struct_type => ip.loadStructType(ty.toIntern()).fieldName(ip, index), + .anon_struct_type => |anon_struct| anon_struct.fieldName(ip, index), else => unreachable, }; } - /// When struct types have no field names, the names are implicitly understood to be - /// strings corresponding to the field indexes in declaration order. It used to be the - /// case that a NullTerminatedString would be stored for each field in this case, however, - /// now, callers must handle the possibility that there are no names stored at all. - /// Here we fake the previous behavior. Probably something better could be done by examining - /// all the callsites of this function. - pub fn legacyStructFieldName(ty: Type, i: u32, mod: *Module) InternPool.NullTerminatedString { - return ty.structFieldName(i, mod).unwrap() orelse - mod.intern_pool.getOrPutStringFmt(mod.gpa, "{d}", .{i}) catch @panic("OOM"); - } - pub fn structFieldCount(ty: Type, mod: *Module) u32 { const ip = &mod.intern_pool; return switch (ip.indexToKey(ty.toIntern())) { diff --git a/test/behavior/align.zig b/test/behavior/align.zig index b19ab8ae0ce5..27146126828c 100644 --- a/test/behavior/align.zig +++ b/test/behavior/align.zig @@ -624,7 +624,6 @@ test "sub-aligned pointer field access" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; - if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // Originally reported at https://github.com/ziglang/zig/issues/14904 diff --git a/test/behavior/vector.zig b/test/behavior/vector.zig index 4b2ab52c599e..042ee5a986fe 100644 --- a/test/behavior/vector.zig +++ b/test/behavior/vector.zig @@ -1176,18 +1176,22 @@ test "@shlWithOverflow" { test "alignment of vectors" { try expect(@alignOf(@Vector(2, u8)) == switch (builtin.zig_backend) { else => 2, + .stage2_c => @alignOf(u8), .stage2_x86_64 => 16, }); try expect(@alignOf(@Vector(2, u1)) == switch (builtin.zig_backend) { else => 1, + .stage2_c => @alignOf(u1), .stage2_x86_64 => 16, }); try expect(@alignOf(@Vector(1, u1)) == switch (builtin.zig_backend) { else => 1, + .stage2_c => @alignOf(u1), .stage2_x86_64 => 16, }); try expect(@alignOf(@Vector(2, u16)) == switch (builtin.zig_backend) { else => 4, + .stage2_c => @alignOf(u16), .stage2_x86_64 => 16, }); } diff --git a/test/tests.zig b/test/tests.zig index 525c6792b524..0c847e6e7fac 100644 --- a/test/tests.zig +++ b/test/tests.zig @@ -1164,19 +1164,26 @@ pub fn addModuleTests(b: *std.Build, options: ModuleTestOptions) *Step { compile_c.addCSourceFile(.{ .file = these_tests.getEmittedBin(), .flags = &.{ - // TODO output -std=c89 compatible C code + // Tracking issue for making the C backend generate C89 compatible code: + // https://github.com/ziglang/zig/issues/19468 "-std=c99", "-pedantic", "-Werror", - // TODO stop violating these pedantic errors. spotted everywhere + + // Tracking issue for making the C backend generate code + // that does not trigger warnings: + // https://github.com/ziglang/zig/issues/19467 + + // spotted everywhere "-Wno-builtin-requires-header", - // TODO stop violating these pedantic errors. spotted on linux - "-Wno-address-of-packed-member", + + // spotted on linux "-Wno-gnu-folding-constant", "-Wno-incompatible-function-pointer-types", "-Wno-incompatible-pointer-types", "-Wno-overlength-strings", - // TODO stop violating these pedantic errors. spotted on darwin + + // spotted on darwin "-Wno-dollar-in-identifier-extension", "-Wno-absolute-value", }, diff --git a/tools/lldb_pretty_printers.py b/tools/lldb_pretty_printers.py index ebd5b0b3d0c8..e8263fbc2103 100644 --- a/tools/lldb_pretty_printers.py +++ b/tools/lldb_pretty_printers.py @@ -354,7 +354,7 @@ def InstRef_SummaryProvider(value, _=None): def InstIndex_SummaryProvider(value, _=None): return 'instructions[%d]' % value.unsigned -class Module_Decl__Module_Decl_Index_SynthProvider: +class zig_DeclIndex_SynthProvider: def __init__(self, value, _=None): self.value = value def update(self): try: @@ -425,7 +425,7 @@ def InternPool_Find(thread): for frame in thread: ip = frame.FindVariable('ip') or frame.FindVariable('intern_pool') if ip: return ip - mod = frame.FindVariable('mod') or frame.FindVariable('module') + mod = frame.FindVariable('zcu') or frame.FindVariable('mod') or frame.FindVariable('module') if mod: ip = mod.GetChildMemberWithName('intern_pool') if ip: return ip @@ -617,7 +617,7 @@ def type_Type_SummaryProvider(value, _=None): def value_Value_str_lit(payload): for frame in payload.thread: - mod = frame.FindVariable('mod') or frame.FindVariable('module') + mod = frame.FindVariable('zcu') or frame.FindVariable('mod') or frame.FindVariable('module') if mod: break else: return return '"%s"' % zig_String_decode(mod.GetChildMemberWithName('string_literal_bytes').GetChildMemberWithName('items'), payload.GetChildMemberWithName('index').unsigned, payload.GetChildMemberWithName('len').unsigned) @@ -714,7 +714,7 @@ def __lldb_init_module(debugger, _=None): add(debugger, category='zig.stage2', type='Air.Inst::Air.Inst.Index', identifier='InstIndex', summary=True) add(debugger, category='zig.stage2', regex=True, type=MultiArrayList_Entry('Air\\.Inst'), identifier='TagAndPayload', synth=True, inline_children=True, summary=True) add(debugger, category='zig.stage2', regex=True, type='^Air\\.Inst\\.Data\\.Data__struct_[1-9][0-9]*$', inline_children=True, summary=True) - add(debugger, category='zig.stage2', type='Module.Decl::Module.Decl.Index', synth=True) + add(debugger, category='zig.stage2', type='zig.DeclIndex', synth=True) add(debugger, category='zig.stage2', type='Module.Namespace::Module.Namespace.Index', synth=True) add(debugger, category='zig.stage2', type='Module.LazySrcLoc', identifier='zig_TaggedUnion', synth=True) add(debugger, category='zig.stage2', type='InternPool.Index', synth=True) From 9b2345e182090e2f4c57e7684ec9739f195fdb1d Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Mon, 18 Mar 2024 15:00:27 +0100 Subject: [PATCH 3/9] Sema: rework `@fieldParentPtr` to accept a pointer type There is no way to know the expected parent pointer attributes (most notably alignment) from the type of the field pointer, so provide them in the first argument. --- src/InternPool.zig | 59 +- src/Sema.zig | 229 +- src/arch/x86_64/CodeGen.zig | 37 +- test/behavior/align.zig | 2 +- test/behavior/field_parent_ptr.zig | 1966 ++++++++++++++++- test/behavior/struct.zig | 12 +- test/behavior/tuple.zig | 4 +- .../fieldParentPtr-bad_field_name.zig | 4 +- ...comptime_field_ptr_not_based_on_struct.zig | 4 +- ...ldParentPtr-comptime_wrong_field_index.zig | 2 +- ...ParentPtr-field_pointer_is_not_pointer.zig | 4 +- ...uct.zig => fieldParentPtr-non_pointer.zig} | 2 +- .../fieldParentPtr_on_comptime_field.zig | 4 +- .../compile_errors/invalid_bit_pointer.zig | 13 + 14 files changed, 2108 insertions(+), 234 deletions(-) rename test/cases/compile_errors/{fieldParentPtr-non_struct.zig => fieldParentPtr-non_pointer.zig} (69%) create mode 100644 test/cases/compile_errors/invalid_bit_pointer.zig diff --git a/src/InternPool.zig b/src/InternPool.zig index 67368e1195e3..4edc32e86c1f 100644 --- a/src/InternPool.zig +++ b/src/InternPool.zig @@ -5163,48 +5163,55 @@ pub fn get(ip: *InternPool, gpa: Allocator, key: Key) Allocator.Error!Index { .ptr => |ptr| { const ptr_type = ip.indexToKey(ptr.ty).ptr_type; assert(ptr_type.flags.size != .Slice); - switch (ptr.addr) { - .decl => |decl| ip.items.appendAssumeCapacity(.{ + ip.items.appendAssumeCapacity(switch (ptr.addr) { + .decl => |decl| .{ .tag = .ptr_decl, .data = try ip.addExtra(gpa, PtrDecl{ .ty = ptr.ty, .decl = decl, }), - }), - .comptime_alloc => |alloc_index| ip.items.appendAssumeCapacity(.{ + }, + .comptime_alloc => |alloc_index| .{ .tag = .ptr_comptime_alloc, .data = try ip.addExtra(gpa, PtrComptimeAlloc{ .ty = ptr.ty, .index = alloc_index, }), - }), - .anon_decl => |anon_decl| ip.items.appendAssumeCapacity( - if (ptrsHaveSameAlignment(ip, ptr.ty, ptr_type, anon_decl.orig_ty)) .{ + }, + .anon_decl => |anon_decl| if (ptrsHaveSameAlignment(ip, ptr.ty, ptr_type, anon_decl.orig_ty)) item: { + if (ptr.ty != anon_decl.orig_ty) { + _ = ip.map.pop(); + var new_key = key; + new_key.ptr.addr.anon_decl.orig_ty = ptr.ty; + const new_gop = try ip.map.getOrPutAdapted(gpa, new_key, adapter); + if (new_gop.found_existing) return @enumFromInt(new_gop.index); + } + break :item .{ .tag = .ptr_anon_decl, .data = try ip.addExtra(gpa, PtrAnonDecl{ .ty = ptr.ty, .val = anon_decl.val, }), - } else .{ - .tag = .ptr_anon_decl_aligned, - .data = try ip.addExtra(gpa, PtrAnonDeclAligned{ - .ty = ptr.ty, - .val = anon_decl.val, - .orig_ty = anon_decl.orig_ty, - }), - }, - ), - .comptime_field => |field_val| { + }; + } else .{ + .tag = .ptr_anon_decl_aligned, + .data = try ip.addExtra(gpa, PtrAnonDeclAligned{ + .ty = ptr.ty, + .val = anon_decl.val, + .orig_ty = anon_decl.orig_ty, + }), + }, + .comptime_field => |field_val| item: { assert(field_val != .none); - ip.items.appendAssumeCapacity(.{ + break :item .{ .tag = .ptr_comptime_field, .data = try ip.addExtra(gpa, PtrComptimeField{ .ty = ptr.ty, .field_val = field_val, }), - }); + }; }, - .int, .eu_payload, .opt_payload => |base| { + .int, .eu_payload, .opt_payload => |base| item: { switch (ptr.addr) { .int => assert(ip.typeOf(base) == .usize_type), .eu_payload => assert(ip.indexToKey( @@ -5215,7 +5222,7 @@ pub fn get(ip: *InternPool, gpa: Allocator, key: Key) Allocator.Error!Index { ) == .opt_type), else => unreachable, } - ip.items.appendAssumeCapacity(.{ + break :item .{ .tag = switch (ptr.addr) { .int => .ptr_int, .eu_payload => .ptr_eu_payload, @@ -5226,9 +5233,9 @@ pub fn get(ip: *InternPool, gpa: Allocator, key: Key) Allocator.Error!Index { .ty = ptr.ty, .base = base, }), - }); + }; }, - .elem, .field => |base_index| { + .elem, .field => |base_index| item: { const base_ptr_type = ip.indexToKey(ip.typeOf(base_index.base)).ptr_type; switch (ptr.addr) { .elem => assert(base_ptr_type.flags.size == .Many), @@ -5265,7 +5272,7 @@ pub fn get(ip: *InternPool, gpa: Allocator, key: Key) Allocator.Error!Index { } }); assert(!(try ip.map.getOrPutAdapted(gpa, key, adapter)).found_existing); try ip.items.ensureUnusedCapacity(gpa, 1); - ip.items.appendAssumeCapacity(.{ + break :item .{ .tag = switch (ptr.addr) { .elem => .ptr_elem, .field => .ptr_field, @@ -5276,9 +5283,9 @@ pub fn get(ip: *InternPool, gpa: Allocator, key: Key) Allocator.Error!Index { .base = base_index.base, .index = index_index, }), - }); + }; }, - } + }); }, .opt => |opt| { diff --git a/src/Sema.zig b/src/Sema.zig index 74991d57699d..189a9c4d1192 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -17699,19 +17699,20 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai .ty = new_decl_ty.toIntern(), .storage = .{ .elems = param_vals }, } }); - const ptr_ty = (try sema.ptrType(.{ + const slice_ty = (try sema.ptrType(.{ .child = param_info_ty.toIntern(), .flags = .{ .size = .Slice, .is_const = true, }, })).toIntern(); + const manyptr_ty = Type.fromInterned(slice_ty).slicePtrFieldType(mod).toIntern(); break :v try mod.intern(.{ .slice = .{ - .ty = ptr_ty, + .ty = slice_ty, .ptr = try mod.intern(.{ .ptr = .{ - .ty = Type.fromInterned(ptr_ty).slicePtrFieldType(mod).toIntern(), + .ty = manyptr_ty, .addr = .{ .anon_decl = .{ - .orig_ty = ptr_ty, + .orig_ty = manyptr_ty, .val = new_decl_val, } }, } }), @@ -18031,12 +18032,13 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai .ty = array_errors_ty.toIntern(), .storage = .{ .elems = vals }, } }); + const manyptr_errors_ty = slice_errors_ty.slicePtrFieldType(mod).toIntern(); break :v try mod.intern(.{ .slice = .{ .ty = slice_errors_ty.toIntern(), .ptr = try mod.intern(.{ .ptr = .{ - .ty = slice_errors_ty.slicePtrFieldType(mod).toIntern(), + .ty = manyptr_errors_ty, .addr = .{ .anon_decl = .{ - .orig_ty = slice_errors_ty.toIntern(), + .orig_ty = manyptr_errors_ty, .val = new_decl_val, } }, } }), @@ -18155,20 +18157,21 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai .ty = fields_array_ty.toIntern(), .storage = .{ .elems = enum_field_vals }, } }); - const ptr_ty = (try sema.ptrType(.{ + const slice_ty = (try sema.ptrType(.{ .child = enum_field_ty.toIntern(), .flags = .{ .size = .Slice, .is_const = true, }, })).toIntern(); + const manyptr_ty = Type.fromInterned(slice_ty).slicePtrFieldType(mod).toIntern(); break :v try mod.intern(.{ .slice = .{ - .ty = ptr_ty, + .ty = slice_ty, .ptr = try mod.intern(.{ .ptr = .{ - .ty = Type.fromInterned(ptr_ty).slicePtrFieldType(mod).toIntern(), + .ty = manyptr_ty, .addr = .{ .anon_decl = .{ .val = new_decl_val, - .orig_ty = ptr_ty, + .orig_ty = manyptr_ty, } }, } }), .len = (try mod.intValue(Type.usize, enum_field_vals.len)).toIntern(), @@ -18296,19 +18299,20 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai .ty = array_fields_ty.toIntern(), .storage = .{ .elems = union_field_vals }, } }); - const ptr_ty = (try sema.ptrType(.{ + const slice_ty = (try sema.ptrType(.{ .child = union_field_ty.toIntern(), .flags = .{ .size = .Slice, .is_const = true, }, })).toIntern(); + const manyptr_ty = Type.fromInterned(slice_ty).slicePtrFieldType(mod).toIntern(); break :v try mod.intern(.{ .slice = .{ - .ty = ptr_ty, + .ty = slice_ty, .ptr = try mod.intern(.{ .ptr = .{ - .ty = Type.fromInterned(ptr_ty).slicePtrFieldType(mod).toIntern(), + .ty = manyptr_ty, .addr = .{ .anon_decl = .{ - .orig_ty = ptr_ty, + .orig_ty = manyptr_ty, .val = new_decl_val, } }, } }), @@ -18523,19 +18527,20 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai .ty = array_fields_ty.toIntern(), .storage = .{ .elems = struct_field_vals }, } }); - const ptr_ty = (try sema.ptrType(.{ + const slice_ty = (try sema.ptrType(.{ .child = struct_field_ty.toIntern(), .flags = .{ .size = .Slice, .is_const = true, }, })).toIntern(); + const manyptr_ty = Type.fromInterned(slice_ty).slicePtrFieldType(mod).toIntern(); break :v try mod.intern(.{ .slice = .{ - .ty = ptr_ty, + .ty = slice_ty, .ptr = try mod.intern(.{ .ptr = .{ - .ty = Type.fromInterned(ptr_ty).slicePtrFieldType(mod).toIntern(), + .ty = manyptr_ty, .addr = .{ .anon_decl = .{ - .orig_ty = ptr_ty, + .orig_ty = manyptr_ty, .val = new_decl_val, } }, } }), @@ -18661,19 +18666,20 @@ fn typeInfoDecls( .ty = array_decl_ty.toIntern(), .storage = .{ .elems = decl_vals.items }, } }); - const ptr_ty = (try sema.ptrType(.{ + const slice_ty = (try sema.ptrType(.{ .child = declaration_ty.toIntern(), .flags = .{ .size = .Slice, .is_const = true, }, })).toIntern(); + const manyptr_ty = Type.fromInterned(slice_ty).slicePtrFieldType(mod).toIntern(); return try mod.intern(.{ .slice = .{ - .ty = ptr_ty, + .ty = slice_ty, .ptr = try mod.intern(.{ .ptr = .{ - .ty = Type.fromInterned(ptr_ty).slicePtrFieldType(mod).toIntern(), + .ty = manyptr_ty, .addr = .{ .anon_decl = .{ - .orig_ty = ptr_ty, + .orig_ty = manyptr_ty, .val = new_decl_val, } }, } }), @@ -19803,8 +19809,18 @@ fn zirPtrType(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air break :blk @intCast(host_size); } else 0; - if (host_size != 0 and bit_offset >= host_size * 8) { - return sema.fail(block, bitoffset_src, "bit offset starts after end of host integer", .{}); + if (host_size != 0) { + if (bit_offset >= host_size * 8) { + return sema.fail(block, bitoffset_src, "packed type '{}' at bit offset {} starts {} bits after the end of a {} byte host integer", .{ + elem_ty.fmt(mod), bit_offset, bit_offset - host_size * 8, host_size, + }); + } + const elem_bit_size = try elem_ty.bitSizeAdvanced(mod, sema); + if (elem_bit_size > host_size * 8 - bit_offset) { + return sema.fail(block, bitoffset_src, "packed type '{}' at bit offset {} ends {} bits after the end of a {} byte host integer", .{ + elem_ty.fmt(mod), bit_offset, elem_bit_size - (host_size * 8 - bit_offset), host_size, + }); + } } if (elem_ty.zigTypeTag(mod) == .Fn) { @@ -24844,106 +24860,147 @@ fn zirBuiltinCall(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError } fn zirFieldParentPtr(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.Inst.Ref { - const inst_data = sema.code.instructions.items(.data)[@intFromEnum(inst)].pl_node; - const extra = sema.code.extraData(Zir.Inst.FieldParentPtr, inst_data.payload_index).data; - const src = inst_data.src(); - const ty_src: LazySrcLoc = .{ .node_offset_builtin_call_arg0 = inst_data.src_node }; - const name_src: LazySrcLoc = .{ .node_offset_builtin_call_arg1 = inst_data.src_node }; - const ptr_src: LazySrcLoc = .{ .node_offset_builtin_call_arg2 = inst_data.src_node }; - - const parent_ty = try sema.resolveType(block, ty_src, extra.parent_type); - const field_name = try sema.resolveConstStringIntern(block, name_src, extra.field_name, .{ - .needed_comptime_reason = "field name must be comptime-known", - }); - const field_ptr = try sema.resolveInst(extra.field_ptr); - const field_ptr_ty = sema.typeOf(field_ptr); const mod = sema.mod; const ip = &mod.intern_pool; + const inst_data = sema.code.instructions.items(.data)[@intFromEnum(inst)].pl_node; + const extra = sema.code.extraData(Zir.Inst.FieldParentPtr, inst_data.payload_index).data; + const inst_src = inst_data.src(); + const parent_ptr_ty_src: LazySrcLoc = .{ .node_offset_builtin_call_arg0 = inst_data.src_node }; + const field_name_src: LazySrcLoc = .{ .node_offset_builtin_call_arg1 = inst_data.src_node }; + const field_ptr_src: LazySrcLoc = .{ .node_offset_builtin_call_arg2 = inst_data.src_node }; + + const parent_ptr_ty = try sema.resolveType(block, parent_ptr_ty_src, extra.parent_type); + try sema.checkPtrType(block, parent_ptr_ty_src, parent_ptr_ty, false); + if (!parent_ptr_ty.isSinglePointer(mod)) { + return sema.fail(block, parent_ptr_ty_src, "expected single pointer type, found '{}'", .{parent_ptr_ty.fmt(sema.mod)}); + } + const parent_ty = parent_ptr_ty.childType(mod); if (parent_ty.zigTypeTag(mod) != .Struct and parent_ty.zigTypeTag(mod) != .Union) { - return sema.fail(block, ty_src, "expected struct or union type, found '{}'", .{parent_ty.fmt(sema.mod)}); + return sema.fail(block, parent_ptr_ty_src, "expected pointer to struct or union type, found '{}'", .{parent_ptr_ty.fmt(sema.mod)}); } try sema.resolveTypeLayout(parent_ty); + const field_name = try sema.resolveConstStringIntern(block, field_name_src, extra.field_name, .{ + .needed_comptime_reason = "field name must be comptime-known", + }); const field_index = switch (parent_ty.zigTypeTag(mod)) { .Struct => blk: { if (parent_ty.isTuple(mod)) { if (ip.stringEqlSlice(field_name, "len")) { - return sema.fail(block, src, "cannot get @fieldParentPtr of 'len' field of tuple", .{}); + return sema.fail(block, inst_src, "cannot get @fieldParentPtr of 'len' field of tuple", .{}); } - break :blk try sema.tupleFieldIndex(block, parent_ty, field_name, name_src); + break :blk try sema.tupleFieldIndex(block, parent_ty, field_name, field_name_src); } else { - break :blk try sema.structFieldIndex(block, parent_ty, field_name, name_src); + break :blk try sema.structFieldIndex(block, parent_ty, field_name, field_name_src); } }, - .Union => try sema.unionFieldIndex(block, parent_ty, field_name, name_src), + .Union => try sema.unionFieldIndex(block, parent_ty, field_name, field_name_src), else => unreachable, }; - if (parent_ty.zigTypeTag(mod) == .Struct and parent_ty.structFieldIsComptime(field_index, mod)) { - return sema.fail(block, src, "cannot get @fieldParentPtr of a comptime field", .{}); + return sema.fail(block, field_name_src, "cannot get @fieldParentPtr of a comptime field", .{}); } - try sema.checkPtrOperand(block, ptr_src, field_ptr_ty); - const field_ptr_ty_info = field_ptr_ty.ptrInfo(mod); + const field_ptr = try sema.resolveInst(extra.field_ptr); + const field_ptr_ty = sema.typeOf(field_ptr); + try sema.checkPtrOperand(block, field_ptr_src, field_ptr_ty); + const field_ptr_info = field_ptr_ty.ptrInfo(mod); - var ptr_ty_data: InternPool.Key.PtrType = .{ - .child = parent_ty.structFieldType(field_index, mod).toIntern(), + var actual_parent_ptr_info: InternPool.Key.PtrType = .{ + .child = parent_ty.toIntern(), .flags = .{ - .address_space = field_ptr_ty_info.flags.address_space, - .is_const = field_ptr_ty_info.flags.is_const, + .alignment = try parent_ptr_ty.ptrAlignmentAdvanced(mod, sema), + .is_const = field_ptr_info.flags.is_const, + .is_volatile = field_ptr_info.flags.is_volatile, + .is_allowzero = field_ptr_info.flags.is_allowzero, + .address_space = field_ptr_info.flags.address_space, }, + .packed_offset = parent_ptr_ty.ptrInfo(mod).packed_offset, }; + const field_ty = parent_ty.structFieldType(field_index, mod); + var actual_field_ptr_info: InternPool.Key.PtrType = .{ + .child = field_ty.toIntern(), + .flags = .{ + .alignment = try field_ptr_ty.ptrAlignmentAdvanced(mod, sema), + .is_const = field_ptr_info.flags.is_const, + .is_volatile = field_ptr_info.flags.is_volatile, + .is_allowzero = field_ptr_info.flags.is_allowzero, + .address_space = field_ptr_info.flags.address_space, + }, + .packed_offset = field_ptr_info.packed_offset, + }; + switch (parent_ty.containerLayout(mod)) { + .auto => { + actual_parent_ptr_info.flags.alignment = actual_field_ptr_info.flags.alignment.minStrict( + if (mod.typeToStruct(parent_ty)) |struct_obj| try sema.structFieldAlignment( + struct_obj.fieldAlign(ip, field_index), + field_ty, + struct_obj.layout, + ) else if (mod.typeToUnion(parent_ty)) |union_obj| + try sema.unionFieldAlignment(union_obj, field_index) + else + actual_field_ptr_info.flags.alignment, + ); - if (parent_ty.containerLayout(mod) == .@"packed") { - return sema.fail(block, src, "TODO handle packed structs/unions with @fieldParentPtr", .{}); - } else { - ptr_ty_data.flags.alignment = blk: { - if (mod.typeToStruct(parent_ty)) |struct_type| { - break :blk struct_type.fieldAlign(ip, field_index); - } else if (mod.typeToUnion(parent_ty)) |union_obj| { - break :blk union_obj.fieldAlign(ip, field_index); - } else { - break :blk .none; - } - }; - } - - const actual_field_ptr_ty = try sema.ptrType(ptr_ty_data); - const casted_field_ptr = try sema.coerce(block, actual_field_ptr_ty, field_ptr, ptr_src); + actual_parent_ptr_info.packed_offset = .{ .bit_offset = 0, .host_size = 0 }; + actual_field_ptr_info.packed_offset = .{ .bit_offset = 0, .host_size = 0 }; + }, + .@"extern" => { + const field_offset = parent_ty.structFieldOffset(field_index, mod); + actual_parent_ptr_info.flags.alignment = actual_field_ptr_info.flags.alignment.minStrict(if (field_offset > 0) + Alignment.fromLog2Units(@ctz(field_offset)) + else + actual_field_ptr_info.flags.alignment); - ptr_ty_data.child = parent_ty.toIntern(); - const result_ptr = try sema.ptrType(ptr_ty_data); + actual_parent_ptr_info.packed_offset = .{ .bit_offset = 0, .host_size = 0 }; + actual_field_ptr_info.packed_offset = .{ .bit_offset = 0, .host_size = 0 }; + }, + .@"packed" => { + const byte_offset = std.math.divExact(u32, @abs(@as(i32, actual_parent_ptr_info.packed_offset.bit_offset) + + (if (mod.typeToStruct(parent_ty)) |struct_obj| mod.structPackedFieldBitOffset(struct_obj, field_index) else 0) - + actual_field_ptr_info.packed_offset.bit_offset), 8) catch + return sema.fail(block, inst_src, "pointer bit-offset mismatch", .{}); + actual_parent_ptr_info.flags.alignment = actual_field_ptr_info.flags.alignment.minStrict(if (byte_offset > 0) + Alignment.fromLog2Units(@ctz(byte_offset)) + else + actual_field_ptr_info.flags.alignment); + }, + } - if (try sema.resolveDefinedValue(block, src, casted_field_ptr)) |field_ptr_val| { + const actual_field_ptr_ty = try sema.ptrType(actual_field_ptr_info); + const casted_field_ptr = try sema.coerce(block, actual_field_ptr_ty, field_ptr, field_ptr_src); + const actual_parent_ptr_ty = try sema.ptrType(actual_parent_ptr_info); + const result = if (try sema.resolveDefinedValue(block, field_ptr_src, casted_field_ptr)) |field_ptr_val| result: { const field = switch (ip.indexToKey(field_ptr_val.toIntern())) { .ptr => |ptr| switch (ptr.addr) { .field => |field| field, else => null, }, else => null, - } orelse return sema.fail(block, ptr_src, "pointer value not based on parent struct", .{}); + } orelse return sema.fail(block, field_ptr_src, "pointer value not based on parent struct", .{}); if (field.index != field_index) { - return sema.fail(block, src, "field '{}' has index '{d}' but pointer value is index '{d}' of struct '{}'", .{ + return sema.fail(block, inst_src, "field '{}' has index '{d}' but pointer value is index '{d}' of struct '{}'", .{ field_name.fmt(ip), field_index, field.index, parent_ty.fmt(sema.mod), }); } - return Air.internedToRef(field.base); - } - - try sema.requireRuntimeBlock(block, src, ptr_src); - try sema.queueFullTypeResolution(result_ptr); - return block.addInst(.{ - .tag = .field_parent_ptr, - .data = .{ .ty_pl = .{ - .ty = Air.internedToRef(result_ptr.toIntern()), - .payload = try block.sema.addExtra(Air.FieldParentPtr{ - .field_ptr = casted_field_ptr, - .field_index = @intCast(field_index), - }), - } }, - }); + break :result try sema.coerce(block, actual_parent_ptr_ty, Air.internedToRef(field.base), inst_src); + } else result: { + try sema.requireRuntimeBlock(block, inst_src, field_ptr_src); + try sema.queueFullTypeResolution(parent_ty); + break :result try block.addInst(.{ + .tag = .field_parent_ptr, + .data = .{ .ty_pl = .{ + .ty = Air.internedToRef(actual_parent_ptr_ty.toIntern()), + .payload = try block.sema.addExtra(Air.FieldParentPtr{ + .field_ptr = casted_field_ptr, + .field_index = @intCast(field_index), + }), + } }, + }); + }; + return sema.coerce(block, parent_ptr_ty, result, inst_src); } fn zirMinMax( diff --git a/src/arch/x86_64/CodeGen.zig b/src/arch/x86_64/CodeGen.zig index b20a3220337c..7a90eacf54bc 100644 --- a/src/arch/x86_64/CodeGen.zig +++ b/src/arch/x86_64/CodeGen.zig @@ -7920,17 +7920,14 @@ fn fieldPtr(self: *Self, inst: Air.Inst.Index, operand: Air.Inst.Ref, index: u32 const mod = self.bin_file.comp.module.?; const ptr_field_ty = self.typeOfIndex(inst); const ptr_container_ty = self.typeOf(operand); - const ptr_container_ty_info = ptr_container_ty.ptrInfo(mod); const container_ty = ptr_container_ty.childType(mod); - const field_offset: i32 = if (mod.typeToPackedStruct(container_ty)) |struct_obj| - if (ptr_field_ty.ptrInfo(mod).packed_offset.host_size == 0) - @divExact(mod.structPackedFieldBitOffset(struct_obj, index) + - ptr_container_ty_info.packed_offset.bit_offset, 8) - else - 0 - else - @intCast(container_ty.structFieldOffset(index, mod)); + const field_off: i32 = switch (container_ty.containerLayout(mod)) { + .auto, .@"extern" => @intCast(container_ty.structFieldOffset(index, mod)), + .@"packed" => @divExact(@as(i32, ptr_container_ty.ptrInfo(mod).packed_offset.bit_offset) + + (if (mod.typeToStruct(container_ty)) |struct_obj| mod.structPackedFieldBitOffset(struct_obj, index) else 0) - + ptr_field_ty.ptrInfo(mod).packed_offset.bit_offset, 8), + }; const src_mcv = try self.resolveInst(operand); const dst_mcv = if (switch (src_mcv) { @@ -7938,7 +7935,7 @@ fn fieldPtr(self: *Self, inst: Air.Inst.Index, operand: Air.Inst.Ref, index: u32 .register, .register_offset => self.reuseOperand(inst, operand, 0, src_mcv), else => false, }) src_mcv else try self.copyToRegisterWithInstTracking(inst, ptr_field_ty, src_mcv); - return dst_mcv.offset(field_offset); + return dst_mcv.offset(field_off); } fn airStructFieldVal(self: *Self, inst: Air.Inst.Index) !void { @@ -7958,11 +7955,8 @@ fn airStructFieldVal(self: *Self, inst: Air.Inst.Index) !void { const src_mcv = try self.resolveInst(operand); const field_off: u32 = switch (container_ty.containerLayout(mod)) { - .auto, .@"extern" => @intCast(container_ty.structFieldOffset(index, mod) * 8), - .@"packed" => if (mod.typeToStruct(container_ty)) |struct_type| - mod.structPackedFieldBitOffset(struct_type, index) - else - 0, + .auto, .@"extern" => @intCast(container_ty.structFieldOffset(extra.field_index, mod) * 8), + .@"packed" => if (mod.typeToStruct(container_ty)) |struct_obj| mod.structPackedFieldBitOffset(struct_obj, extra.field_index) else 0, }; switch (src_mcv) { @@ -8239,7 +8233,12 @@ fn airFieldParentPtr(self: *Self, inst: Air.Inst.Index) !void { const inst_ty = self.typeOfIndex(inst); const parent_ty = inst_ty.childType(mod); - const field_offset: i32 = @intCast(parent_ty.structFieldOffset(extra.field_index, mod)); + const field_off: i32 = switch (parent_ty.containerLayout(mod)) { + .auto, .@"extern" => @intCast(parent_ty.structFieldOffset(extra.field_index, mod)), + .@"packed" => @divExact(@as(i32, inst_ty.ptrInfo(mod).packed_offset.bit_offset) + + (if (mod.typeToStruct(parent_ty)) |struct_obj| mod.structPackedFieldBitOffset(struct_obj, extra.field_index) else 0) - + self.typeOf(extra.field_ptr).ptrInfo(mod).packed_offset.bit_offset, 8), + }; const src_mcv = try self.resolveInst(extra.field_ptr); const dst_mcv = if (src_mcv.isRegisterOffset() and @@ -8247,7 +8246,7 @@ fn airFieldParentPtr(self: *Self, inst: Air.Inst.Index) !void { src_mcv else try self.copyToRegisterWithInstTracking(inst, inst_ty, src_mcv); - const result = dst_mcv.offset(-field_offset); + const result = dst_mcv.offset(-field_off); return self.finishAir(inst, result, .{ extra.field_ptr, .none, .none }); } @@ -17950,7 +17949,7 @@ fn airAggregateInit(self: *Self, inst: Air.Inst.Index) !void { .Struct => { const frame_index = try self.allocFrameIndex(FrameAlloc.initSpill(result_ty, mod)); if (result_ty.containerLayout(mod) == .@"packed") { - const struct_type = mod.typeToStruct(result_ty).?; + const struct_obj = mod.typeToStruct(result_ty).?; try self.genInlineMemset( .{ .lea_frame = .{ .index = frame_index } }, .{ .immediate = 0 }, @@ -17971,7 +17970,7 @@ fn airAggregateInit(self: *Self, inst: Air.Inst.Index) !void { } const elem_abi_size: u32 = @intCast(elem_ty.abiSize(mod)); const elem_abi_bits = elem_abi_size * 8; - const elem_off = mod.structPackedFieldBitOffset(struct_type, elem_i); + const elem_off = mod.structPackedFieldBitOffset(struct_obj, elem_i); const elem_byte_off: i32 = @intCast(elem_off / elem_abi_bits * elem_abi_size); const elem_bit_off = elem_off % elem_abi_bits; const elem_mcv = try self.resolveInst(elem); diff --git a/test/behavior/align.zig b/test/behavior/align.zig index 27146126828c..411579fef071 100644 --- a/test/behavior/align.zig +++ b/test/behavior/align.zig @@ -693,5 +693,5 @@ test "zero-bit fields in extern struct pad fields appropriately" { try expect(@intFromPtr(&s) % 2 == 0); try expect(@intFromPtr(&s.y) - @intFromPtr(&s.x) == 2); try expect(@intFromPtr(&s.y) == @intFromPtr(&s.a)); - try expect(@fieldParentPtr(S, "a", &s.a) == &s); + try expect(@fieldParentPtr(*S, "a", &s.a) == &s); } diff --git a/test/behavior/field_parent_ptr.zig b/test/behavior/field_parent_ptr.zig index adb0e66ed661..896fa3ab59b0 100644 --- a/test/behavior/field_parent_ptr.zig +++ b/test/behavior/field_parent_ptr.zig @@ -1,126 +1,1924 @@ const expect = @import("std").testing.expect; const builtin = @import("builtin"); -test "@fieldParentPtr non-first field" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; - if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO +test "@fieldParentPtr struct" { + const C = struct { + a: bool = true, + b: f32 = 3.14, + c: struct { u8 } = .{42}, + d: i32 = 12345, + }; - try testParentFieldPtr(&foo.c); - try comptime testParentFieldPtr(&foo.c); + { + const c: C = .{ .a = false }; + const pcf = &c.a; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .a = false }; + const pcf = &c.a; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .a = false }; + var pcf: @TypeOf(&c.a) = undefined; + pcf = &c.a; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .a = false }; + var pcf: @TypeOf(&c.a) = undefined; + pcf = &c.a; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "a", pcf)); + try expect(pc == &c); + } + + { + const c: C = .{ .b = 666.667 }; + const pcf = &c.b; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .b = 666.667 }; + const pcf = &c.b; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .b = 666.667 }; + var pcf: @TypeOf(&c.b) = undefined; + pcf = &c.b; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .b = 666.667 }; + var pcf: @TypeOf(&c.b) = undefined; + pcf = &c.b; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcf)); + try expect(pc == &c); + } + + { + const c: C = .{ .c = .{255} }; + const pcf = &c.c; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .c = .{255} }; + const pcf = &c.c; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .c = .{255} }; + var pcf: @TypeOf(&c.c) = undefined; + pcf = &c.c; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .c = .{255} }; + var pcf: @TypeOf(&c.c) = undefined; + pcf = &c.c; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "c", pcf)); + try expect(pc == &c); + } + + { + const c: C = .{ .d = -1111111111 }; + const pcf = &c.d; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .d = -1111111111 }; + const pcf = &c.d; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .d = -1111111111 }; + var pcf: @TypeOf(&c.d) = undefined; + pcf = &c.d; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .d = -1111111111 }; + var pcf: @TypeOf(&c.d) = undefined; + pcf = &c.d; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "d", pcf)); + try expect(pc == &c); + } } -test "@fieldParentPtr first field" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; - if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO +test "@fieldParentPtr extern struct" { + const C = extern struct { + a: bool = true, + b: f32 = 3.14, + c: extern struct { x: u8 } = .{ .x = 42 }, + d: i32 = 12345, + }; + + { + const c: C = .{ .a = false }; + const pcf = &c.a; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .a = false }; + const pcf = &c.a; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .a = false }; + var pcf: @TypeOf(&c.a) = undefined; + pcf = &c.a; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .a = false }; + var pcf: @TypeOf(&c.a) = undefined; + pcf = &c.a; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "a", pcf)); + try expect(pc == &c); + } + + { + const c: C = .{ .b = 666.667 }; + const pcf = &c.b; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .b = 666.667 }; + const pcf = &c.b; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .b = 666.667 }; + var pcf: @TypeOf(&c.b) = undefined; + pcf = &c.b; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .b = 666.667 }; + var pcf: @TypeOf(&c.b) = undefined; + pcf = &c.b; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcf)); + try expect(pc == &c); + } - try testParentFieldPtrFirst(&foo.a); - try comptime testParentFieldPtrFirst(&foo.a); + { + const c: C = .{ .c = .{ .x = 255 } }; + const pcf = &c.c; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .c = .{ .x = 255 } }; + const pcf = &c.c; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .c = .{ .x = 255 } }; + var pcf: @TypeOf(&c.c) = undefined; + pcf = &c.c; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .c = .{ .x = 255 } }; + var pcf: @TypeOf(&c.c) = undefined; + pcf = &c.c; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "c", pcf)); + try expect(pc == &c); + } + + { + const c: C = .{ .d = -1111111111 }; + const pcf = &c.d; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .d = -1111111111 }; + const pcf = &c.d; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .d = -1111111111 }; + var pcf: @TypeOf(&c.d) = undefined; + pcf = &c.d; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .d = -1111111111 }; + var pcf: @TypeOf(&c.d) = undefined; + pcf = &c.d; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "d", pcf)); + try expect(pc == &c); + } } -const Foo = struct { - a: bool, - b: f32, - c: i32, - d: i32, -}; +test "@fieldParentPtr extern struct first zero-bit field" { + const C = extern struct { + a: u0 = 0, + b: f32 = 3.14, + c: i32 = 12345, + }; -const foo = Foo{ - .a = true, - .b = 0.123, - .c = 1234, - .d = -10, -}; + { + const c: C = .{ .a = 0 }; + const pcf = &c.a; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .a = 0 }; + const pcf = &c.a; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .a = 0 }; + var pcf: @TypeOf(&c.a) = undefined; + pcf = &c.a; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .a = 0 }; + var pcf: @TypeOf(&c.a) = undefined; + pcf = &c.a; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "a", pcf)); + try expect(pc == &c); + } -fn testParentFieldPtr(c: *const i32) !void { - try expect(c == &foo.c); + { + const c: C = .{ .b = 666.667 }; + const pcf = &c.b; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .b = 666.667 }; + const pcf = &c.b; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .b = 666.667 }; + var pcf: @TypeOf(&c.b) = undefined; + pcf = &c.b; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .b = 666.667 }; + var pcf: @TypeOf(&c.b) = undefined; + pcf = &c.b; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcf)); + try expect(pc == &c); + } - const base = @fieldParentPtr(Foo, "c", c); - try expect(base == &foo); - try expect(&base.c == c); + { + const c: C = .{ .c = -1111111111 }; + const pcf = &c.c; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .c = -1111111111 }; + const pcf = &c.c; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .c = -1111111111 }; + var pcf: @TypeOf(&c.c) = undefined; + pcf = &c.c; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .c = -1111111111 }; + var pcf: @TypeOf(&c.c) = undefined; + pcf = &c.c; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "c", pcf)); + try expect(pc == &c); + } } -fn testParentFieldPtrFirst(a: *const bool) !void { - try expect(a == &foo.a); +test "@fieldParentPtr extern struct middle zero-bit field" { + const C = extern struct { + a: f32 = 3.14, + b: u0 = 0, + c: i32 = 12345, + }; + + { + const c: C = .{ .a = 666.667 }; + const pcf = &c.a; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .a = 666.667 }; + const pcf = &c.a; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .a = 666.667 }; + var pcf: @TypeOf(&c.a) = undefined; + pcf = &c.a; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .a = 666.667 }; + var pcf: @TypeOf(&c.a) = undefined; + pcf = &c.a; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "a", pcf)); + try expect(pc == &c); + } - const base = @fieldParentPtr(Foo, "a", a); - try expect(base == &foo); - try expect(&base.a == a); + { + const c: C = .{ .b = 0 }; + const pcf = &c.b; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .b = 0 }; + const pcf = &c.b; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .b = 0 }; + var pcf: @TypeOf(&c.b) = undefined; + pcf = &c.b; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .b = 0 }; + var pcf: @TypeOf(&c.b) = undefined; + pcf = &c.b; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcf)); + try expect(pc == &c); + } + + { + const c: C = .{ .c = -1111111111 }; + const pcf = &c.c; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .c = -1111111111 }; + const pcf = &c.c; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .c = -1111111111 }; + var pcf: @TypeOf(&c.c) = undefined; + pcf = &c.c; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .c = -1111111111 }; + var pcf: @TypeOf(&c.c) = undefined; + pcf = &c.c; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "c", pcf)); + try expect(pc == &c); + } } -test "@fieldParentPtr untagged union" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; - if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO +test "@fieldParentPtr extern struct last zero-bit field" { + const C = extern struct { + a: f32 = 3.14, + b: i32 = 12345, + c: u0 = 0, + }; + + { + const c: C = .{ .a = 666.667 }; + const pcf = &c.a; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .a = 666.667 }; + const pcf = &c.a; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .a = 666.667 }; + var pcf: @TypeOf(&c.a) = undefined; + pcf = &c.a; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .a = 666.667 }; + var pcf: @TypeOf(&c.a) = undefined; + pcf = &c.a; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "a", pcf)); + try expect(pc == &c); + } + + { + const c: C = .{ .b = -1111111111 }; + const pcf = &c.b; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .b = -1111111111 }; + const pcf = &c.b; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .b = -1111111111 }; + var pcf: @TypeOf(&c.b) = undefined; + pcf = &c.b; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .b = -1111111111 }; + var pcf: @TypeOf(&c.b) = undefined; + pcf = &c.b; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcf)); + try expect(pc == &c); + } + + { + const c: C = .{ .c = 0 }; + const pcf = &c.c; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .c = 0 }; + const pcf = &c.c; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .c = 0 }; + var pcf: @TypeOf(&c.c) = undefined; + pcf = &c.c; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .c = 0 }; + var pcf: @TypeOf(&c.c) = undefined; + pcf = &c.c; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "c", pcf)); + try expect(pc == &c); + } +} + +test "@fieldParentPtr unaligned packed struct" { + if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; + + const C = packed struct { + a: bool = true, + b: f32 = 3.14, + c: packed struct { x: u8 } = .{ .x = 42 }, + d: i32 = 12345, + }; + + { + const c: C = .{ .a = false }; + const pcf = &c.a; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .a = false }; + const pcf = &c.a; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .a = false }; + var pcf: @TypeOf(&c.a) = undefined; + pcf = &c.a; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .a = false }; + var pcf: @TypeOf(&c.a) = undefined; + pcf = &c.a; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "a", pcf)); + try expect(pc == &c); + } + + { + const c: C = .{ .b = 666.667 }; + const pcf = &c.b; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .b = 666.667 }; + const pcf = &c.b; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .b = 666.667 }; + var pcf: @TypeOf(&c.b) = undefined; + pcf = &c.b; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .b = 666.667 }; + var pcf: @TypeOf(&c.b) = undefined; + pcf = &c.b; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcf)); + try expect(pc == &c); + } - try testFieldParentPtrUnion(&bar.c); - try comptime testFieldParentPtrUnion(&bar.c); + { + const c: C = .{ .c = .{ .x = 255 } }; + const pcf = &c.c; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .c = .{ .x = 255 } }; + const pcf = &c.c; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .c = .{ .x = 255 } }; + var pcf: @TypeOf(&c.c) = undefined; + pcf = &c.c; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .c = .{ .x = 255 } }; + var pcf: @TypeOf(&c.c) = undefined; + pcf = &c.c; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "c", pcf)); + try expect(pc == &c); + } + + { + const c: C = .{ .d = -1111111111 }; + const pcf = &c.d; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .d = -1111111111 }; + const pcf = &c.d; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .d = -1111111111 }; + var pcf: @TypeOf(&c.d) = undefined; + pcf = &c.d; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .d = -1111111111 }; + var pcf: @TypeOf(&c.d) = undefined; + pcf = &c.d; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "d", pcf)); + try expect(pc == &c); + } } -const Bar = union(enum) { - a: bool, - b: f32, - c: i32, - d: i32, -}; +test "@fieldParentPtr aligned packed struct" { + if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; + + const C = packed struct { + a: f32 = 3.14, + b: i32 = 12345, + c: packed struct { x: u8 } = .{ .x = 42 }, + d: bool = true, + }; + + { + const c: C = .{ .a = 666.667 }; + const pcf = &c.a; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .a = 666.667 }; + const pcf = &c.a; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .a = 666.667 }; + var pcf: @TypeOf(&c.a) = undefined; + pcf = &c.a; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .a = 666.667 }; + var pcf: @TypeOf(&c.a) = undefined; + pcf = &c.a; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "a", pcf)); + try expect(pc == &c); + } + + { + const c: C = .{ .b = -1111111111 }; + const pcf = &c.b; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .b = -1111111111 }; + const pcf = &c.b; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .b = -1111111111 }; + var pcf: @TypeOf(&c.b) = undefined; + pcf = &c.b; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .b = -1111111111 }; + var pcf: @TypeOf(&c.b) = undefined; + pcf = &c.b; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcf)); + try expect(pc == &c); + } + + { + const c: C = .{ .c = .{ .x = 255 } }; + const pcf = &c.c; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .c = .{ .x = 255 } }; + const pcf = &c.c; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .c = .{ .x = 255 } }; + var pcf: @TypeOf(&c.c) = undefined; + pcf = &c.c; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .c = .{ .x = 255 } }; + var pcf: @TypeOf(&c.c) = undefined; + pcf = &c.c; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "c", pcf)); + try expect(pc == &c); + } + + { + const c: C = .{ .d = false }; + const pcf = &c.d; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .d = false }; + const pcf = &c.d; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .d = false }; + var pcf: @TypeOf(&c.d) = undefined; + pcf = &c.d; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .d = false }; + var pcf: @TypeOf(&c.d) = undefined; + pcf = &c.d; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "d", pcf)); + try expect(pc == &c); + } +} + +test "@fieldParentPtr nested packed struct" { + if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; + + { + const C = packed struct { + a: u8, + b: packed struct { + a: u8, + b: packed struct { + a: u8, + }, + }, + }; + + { + const c: C = .{ .a = 0, .b = .{ .a = 0, .b = .{ .a = 0 } } }; + const pcbba = &c.b.b.a; + const pcbb: @TypeOf(&c.b.b) = @alignCast(@fieldParentPtr(*align(1) const @TypeOf(c.b.b), "a", pcbba)); + try expect(pcbb == &c.b.b); + const pcb: @TypeOf(&c.b) = @alignCast(@fieldParentPtr(*align(1) const @TypeOf(c.b), "b", pcbb)); + try expect(pcb == &c.b); + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcb)); + try expect(pc == &c); + } + + { + var c: C = undefined; + c = .{ .a = 0, .b = .{ .a = 0, .b = .{ .a = 0 } } }; + var pcbba: @TypeOf(&c.b.b.a) = undefined; + pcbba = &c.b.b.a; + var pcbb: @TypeOf(&c.b.b) = undefined; + pcbb = @alignCast(@fieldParentPtr(*align(1) @TypeOf(c.b.b), "a", pcbba)); + try expect(pcbb == &c.b.b); + var pcb: @TypeOf(&c.b) = undefined; + pcb = @alignCast(@fieldParentPtr(*align(1) @TypeOf(c.b), "b", pcbb)); + try expect(pcb == &c.b); + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcb)); + try expect(pc == &c); + } + } + + { + const C = packed struct { + a: u8, + b: packed struct { + a: u9, + b: packed struct { + a: u8, + }, + }, + }; + + { + const c: C = .{ .a = 0, .b = .{ .a = 0, .b = .{ .a = 0 } } }; + const pcbba = &c.b.b.a; + const pcbb: @TypeOf(&c.b.b) = @alignCast(@fieldParentPtr(*align(1:17:4) const @TypeOf(c.b.b), "a", pcbba)); + try expect(pcbb == &c.b.b); + const pcb: @TypeOf(&c.b) = @alignCast(@fieldParentPtr(*align(1:8:4) const @TypeOf(c.b), "b", pcbb)); + try expect(pcb == &c.b); + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcb)); + try expect(pc == &c); + } + + { + var c: C = undefined; + c = .{ .a = 0, .b = .{ .a = 0, .b = .{ .a = 0 } } }; + var pcbba: @TypeOf(&c.b.b.a) = undefined; + pcbba = &c.b.b.a; + var pcbb: @TypeOf(&c.b.b) = undefined; + pcbb = @alignCast(@fieldParentPtr(*align(1:17:4) @TypeOf(c.b.b), "a", pcbba)); + try expect(pcbb == &c.b.b); + var pcb: @TypeOf(&c.b) = undefined; + pcb = @alignCast(@fieldParentPtr(*align(1:8:4) @TypeOf(c.b), "b", pcbb)); + try expect(pcb == &c.b); + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcb)); + try expect(pc == &c); + } + } + + { + const C = packed struct { + a: u9, + b: packed struct { + a: u7, + b: packed struct { + a: u8, + }, + }, + }; + + { + const c: C = .{ .a = 0, .b = .{ .a = 0, .b = .{ .a = 0 } } }; + const pcbba = &c.b.b.a; + const pcbb: @TypeOf(&c.b.b) = @alignCast(@fieldParentPtr(*align(1) const @TypeOf(c.b.b), "a", pcbba)); + try expect(pcbb == &c.b.b); + const pcb: @TypeOf(&c.b) = @alignCast(@fieldParentPtr(*align(1:9:3) const @TypeOf(c.b), "b", pcbb)); + try expect(pcb == &c.b); + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcb)); + try expect(pc == &c); + } + + { + var c: C = undefined; + c = .{ .a = 0, .b = .{ .a = 0, .b = .{ .a = 0 } } }; + var pcbba: @TypeOf(&c.b.b.a) = undefined; + pcbba = &c.b.b.a; + var pcbb: @TypeOf(&c.b.b) = undefined; + pcbb = @alignCast(@fieldParentPtr(*align(1) @TypeOf(c.b.b), "a", pcbba)); + try expect(pcbb == &c.b.b); + var pcb: @TypeOf(&c.b) = undefined; + pcb = @alignCast(@fieldParentPtr(*align(1:9:3) @TypeOf(c.b), "b", pcbb)); + try expect(pcb == &c.b); + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcb)); + try expect(pc == &c); + } + } -const bar = Bar{ .c = 42 }; + { + const C = packed struct { + a: u9, + b: packed struct { + a: u8, + b: packed struct { + a: u8, + }, + }, + }; -fn testFieldParentPtrUnion(c: *const i32) !void { - try expect(c == &bar.c); + { + const c: C = .{ .a = 0, .b = .{ .a = 0, .b = .{ .a = 0 } } }; + const pcbba = &c.b.b.a; + const pcbb: @TypeOf(&c.b.b) = @alignCast(@fieldParentPtr(*align(1:17:4) const @TypeOf(c.b.b), "a", pcbba)); + try expect(pcbb == &c.b.b); + const pcb: @TypeOf(&c.b) = @alignCast(@fieldParentPtr(*align(1:9:4) const @TypeOf(c.b), "b", pcbb)); + try expect(pcb == &c.b); + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcb)); + try expect(pc == &c); + } - const base = @fieldParentPtr(Bar, "c", c); - try expect(base == &bar); - try expect(&base.c == c); + { + var c: C = undefined; + c = .{ .a = 0, .b = .{ .a = 0, .b = .{ .a = 0 } } }; + var pcbba: @TypeOf(&c.b.b.a) = undefined; + pcbba = &c.b.b.a; + var pcbb: @TypeOf(&c.b.b) = undefined; + pcbb = @alignCast(@fieldParentPtr(*align(1:17:4) @TypeOf(c.b.b), "a", pcbba)); + try expect(pcbb == &c.b.b); + var pcb: @TypeOf(&c.b) = undefined; + pcb = @alignCast(@fieldParentPtr(*align(1:9:4) @TypeOf(c.b), "b", pcbb)); + try expect(pcb == &c.b); + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcb)); + try expect(pc == &c); + } + } +} + +test "@fieldParentPtr packed struct first zero-bit field" { + if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; + + const C = packed struct { + a: u0 = 0, + b: f32 = 3.14, + c: i32 = 12345, + }; + + { + const c: C = .{ .a = 0 }; + const pcf = &c.a; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .a = 0 }; + const pcf = &c.a; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .a = 0 }; + var pcf: @TypeOf(&c.a) = undefined; + pcf = &c.a; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .a = 0 }; + var pcf: @TypeOf(&c.a) = undefined; + pcf = &c.a; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "a", pcf)); + try expect(pc == &c); + } + + { + const c: C = .{ .b = 666.667 }; + const pcf = &c.b; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .b = 666.667 }; + const pcf = &c.b; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .b = 666.667 }; + var pcf: @TypeOf(&c.b) = undefined; + pcf = &c.b; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .b = 666.667 }; + var pcf: @TypeOf(&c.b) = undefined; + pcf = &c.b; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcf)); + try expect(pc == &c); + } + + { + const c: C = .{ .c = -1111111111 }; + const pcf = &c.c; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .c = -1111111111 }; + const pcf = &c.c; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .c = -1111111111 }; + var pcf: @TypeOf(&c.c) = undefined; + pcf = &c.c; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .c = -1111111111 }; + var pcf: @TypeOf(&c.c) = undefined; + pcf = &c.c; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "c", pcf)); + try expect(pc == &c); + } +} + +test "@fieldParentPtr packed struct middle zero-bit field" { + if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; + + const C = packed struct { + a: f32 = 3.14, + b: u0 = 0, + c: i32 = 12345, + }; + + { + const c: C = .{ .a = 666.667 }; + const pcf = &c.a; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .a = 666.667 }; + const pcf = &c.a; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .a = 666.667 }; + var pcf: @TypeOf(&c.a) = undefined; + pcf = &c.a; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .a = 666.667 }; + var pcf: @TypeOf(&c.a) = undefined; + pcf = &c.a; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "a", pcf)); + try expect(pc == &c); + } + + { + const c: C = .{ .b = 0 }; + const pcf = &c.b; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .b = 0 }; + const pcf = &c.b; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .b = 0 }; + var pcf: @TypeOf(&c.b) = undefined; + pcf = &c.b; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .b = 0 }; + var pcf: @TypeOf(&c.b) = undefined; + pcf = &c.b; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcf)); + try expect(pc == &c); + } + + { + const c: C = .{ .c = -1111111111 }; + const pcf = &c.c; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .c = -1111111111 }; + const pcf = &c.c; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .c = -1111111111 }; + var pcf: @TypeOf(&c.c) = undefined; + pcf = &c.c; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .c = -1111111111 }; + var pcf: @TypeOf(&c.c) = undefined; + pcf = &c.c; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "c", pcf)); + try expect(pc == &c); + } +} + +test "@fieldParentPtr packed struct last zero-bit field" { + if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; + + const C = packed struct { + a: f32 = 3.14, + b: i32 = 12345, + c: u0 = 0, + }; + + { + const c: C = .{ .a = 666.667 }; + const pcf = &c.a; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .a = 666.667 }; + const pcf = &c.a; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .a = 666.667 }; + var pcf: @TypeOf(&c.a) = undefined; + pcf = &c.a; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .a = 666.667 }; + var pcf: @TypeOf(&c.a) = undefined; + pcf = &c.a; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "a", pcf)); + try expect(pc == &c); + } + + { + const c: C = .{ .b = -1111111111 }; + const pcf = &c.b; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .b = -1111111111 }; + const pcf = &c.b; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .b = -1111111111 }; + var pcf: @TypeOf(&c.b) = undefined; + pcf = &c.b; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .b = -1111111111 }; + var pcf: @TypeOf(&c.b) = undefined; + pcf = &c.b; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcf)); + try expect(pc == &c); + } + + { + const c: C = .{ .c = 0 }; + const pcf = &c.c; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .c = 0 }; + const pcf = &c.c; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .c = 0 }; + var pcf: @TypeOf(&c.c) = undefined; + pcf = &c.c; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .c = 0 }; + var pcf: @TypeOf(&c.c) = undefined; + pcf = &c.c; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "c", pcf)); + try expect(pc == &c); + } } test "@fieldParentPtr tagged union" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; - if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO + const C = union(enum) { + a: bool, + b: f32, + c: struct { u8 }, + d: i32, + }; + + { + const c: C = .{ .a = false }; + const pcf = &c.a; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .a = false }; + const pcf = &c.a; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .a = false }; + var pcf: @TypeOf(&c.a) = undefined; + pcf = &c.a; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .a = false }; + var pcf: @TypeOf(&c.a) = undefined; + pcf = &c.a; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "a", pcf)); + try expect(pc == &c); + } + + { + const c: C = .{ .b = 0 }; + const pcf = &c.b; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .b = 0 }; + const pcf = &c.b; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .b = 0 }; + var pcf: @TypeOf(&c.b) = undefined; + pcf = &c.b; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .b = 0 }; + var pcf: @TypeOf(&c.b) = undefined; + pcf = &c.b; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcf)); + try expect(pc == &c); + } + + { + const c: C = .{ .c = .{255} }; + const pcf = &c.c; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .c = .{255} }; + const pcf = &c.c; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .c = .{255} }; + var pcf: @TypeOf(&c.c) = undefined; + pcf = &c.c; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .c = .{255} }; + var pcf: @TypeOf(&c.c) = undefined; + pcf = &c.c; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "c", pcf)); + try expect(pc == &c); + } - try testFieldParentPtrTaggedUnion(&bar_tagged.c); - try comptime testFieldParentPtrTaggedUnion(&bar_tagged.c); + { + const c: C = .{ .d = -1111111111 }; + const pcf = &c.d; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .d = -1111111111 }; + const pcf = &c.d; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .d = -1111111111 }; + var pcf: @TypeOf(&c.d) = undefined; + pcf = &c.d; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .d = -1111111111 }; + var pcf: @TypeOf(&c.d) = undefined; + pcf = &c.d; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "d", pcf)); + try expect(pc == &c); + } } -const BarTagged = union(enum) { - a: bool, - b: f32, - c: i32, - d: i32, -}; +test "@fieldParentPtr untagged union" { + const C = union { + a: bool, + b: f32, + c: struct { u8 }, + d: i32, + }; + + { + const c: C = .{ .a = false }; + const pcf = &c.a; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .a = false }; + const pcf = &c.a; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .a = false }; + var pcf: @TypeOf(&c.a) = undefined; + pcf = &c.a; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .a = false }; + var pcf: @TypeOf(&c.a) = undefined; + pcf = &c.a; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "a", pcf)); + try expect(pc == &c); + } -const bar_tagged = BarTagged{ .c = 42 }; + { + const c: C = .{ .b = 0 }; + const pcf = &c.b; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .b = 0 }; + const pcf = &c.b; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .b = 0 }; + var pcf: @TypeOf(&c.b) = undefined; + pcf = &c.b; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .b = 0 }; + var pcf: @TypeOf(&c.b) = undefined; + pcf = &c.b; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcf)); + try expect(pc == &c); + } -fn testFieldParentPtrTaggedUnion(c: *const i32) !void { - try expect(c == &bar_tagged.c); + { + const c: C = .{ .c = .{255} }; + const pcf = &c.c; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .c = .{255} }; + const pcf = &c.c; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .c = .{255} }; + var pcf: @TypeOf(&c.c) = undefined; + pcf = &c.c; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .c = .{255} }; + var pcf: @TypeOf(&c.c) = undefined; + pcf = &c.c; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "c", pcf)); + try expect(pc == &c); + } - const base = @fieldParentPtr(BarTagged, "c", c); - try expect(base == &bar_tagged); - try expect(&base.c == c); + { + const c: C = .{ .d = -1111111111 }; + const pcf = &c.d; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .d = -1111111111 }; + const pcf = &c.d; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .d = -1111111111 }; + var pcf: @TypeOf(&c.d) = undefined; + pcf = &c.d; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .d = -1111111111 }; + var pcf: @TypeOf(&c.d) = undefined; + pcf = &c.d; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "d", pcf)); + try expect(pc == &c); + } } test "@fieldParentPtr extern union" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; - if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO + const C = extern union { + a: bool, + b: f32, + c: extern struct { x: u8 }, + d: i32, + }; + + { + const c: C = .{ .a = false }; + const pcf = &c.a; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .a = false }; + const pcf = &c.a; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .a = false }; + var pcf: @TypeOf(&c.a) = undefined; + pcf = &c.a; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .a = false }; + var pcf: @TypeOf(&c.a) = undefined; + pcf = &c.a; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "a", pcf)); + try expect(pc == &c); + } + + { + const c: C = .{ .b = 0 }; + const pcf = &c.b; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .b = 0 }; + const pcf = &c.b; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .b = 0 }; + var pcf: @TypeOf(&c.b) = undefined; + pcf = &c.b; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .b = 0 }; + var pcf: @TypeOf(&c.b) = undefined; + pcf = &c.b; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcf)); + try expect(pc == &c); + } + + { + const c: C = .{ .c = .{ .x = 255 } }; + const pcf = &c.c; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .c = .{ .x = 255 } }; + const pcf = &c.c; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .c = .{ .x = 255 } }; + var pcf: @TypeOf(&c.c) = undefined; + pcf = &c.c; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .c = .{ .x = 255 } }; + var pcf: @TypeOf(&c.c) = undefined; + pcf = &c.c; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "c", pcf)); + try expect(pc == &c); + } + + { + const c: C = .{ .d = -1111111111 }; + const pcf = &c.d; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .d = -1111111111 }; + const pcf = &c.d; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .d = -1111111111 }; + var pcf: @TypeOf(&c.d) = undefined; + pcf = &c.d; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .d = -1111111111 }; + var pcf: @TypeOf(&c.d) = undefined; + pcf = &c.d; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "d", pcf)); + try expect(pc == &c); + } +} + +test "@fieldParentPtr packed union" { + if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; + + const C = packed union { + a: bool, + b: f32, + c: packed struct { x: u8 }, + d: i32, + }; + + { + const c: C = .{ .a = false }; + const pcf = &c.a; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .a = false }; + const pcf = &c.a; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .a = false }; + var pcf: @TypeOf(&c.a) = undefined; + pcf = &c.a; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .a = false }; + var pcf: @TypeOf(&c.a) = undefined; + pcf = &c.a; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "a", pcf)); + try expect(pc == &c); + } + + { + const c: C = .{ .b = 0 }; + const pcf = &c.b; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .b = 0 }; + const pcf = &c.b; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .b = 0 }; + var pcf: @TypeOf(&c.b) = undefined; + pcf = &c.b; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .b = 0 }; + var pcf: @TypeOf(&c.b) = undefined; + pcf = &c.b; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcf)); + try expect(pc == &c); + } + + { + const c: C = .{ .c = .{ .x = 255 } }; + const pcf = &c.c; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .c = .{ .x = 255 } }; + const pcf = &c.c; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .c = .{ .x = 255 } }; + var pcf: @TypeOf(&c.c) = undefined; + pcf = &c.c; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .c = .{ .x = 255 } }; + var pcf: @TypeOf(&c.c) = undefined; + pcf = &c.c; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "c", pcf)); + try expect(pc == &c); + } - try testFieldParentPtrExternUnion(&bar_extern.c); - try comptime testFieldParentPtrExternUnion(&bar_extern.c); + { + const c: C = .{ .d = -1111111111 }; + const pcf = &c.d; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .d = -1111111111 }; + const pcf = &c.d; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .d = -1111111111 }; + var pcf: @TypeOf(&c.d) = undefined; + pcf = &c.d; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .d = -1111111111 }; + var pcf: @TypeOf(&c.d) = undefined; + pcf = &c.d; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "d", pcf)); + try expect(pc == &c); + } } -const BarExtern = extern union { - a: bool, - b: f32, - c: i32, - d: i32, -}; +test "@fieldParentPtr tagged union all zero-bit fields" { + if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; -const bar_extern = BarExtern{ .c = 42 }; + const C = union(enum) { + a: u0, + b: i0, + }; -fn testFieldParentPtrExternUnion(c: *const i32) !void { - try expect(c == &bar_extern.c); + { + const c: C = .{ .a = 0 }; + const pcf = &c.a; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .a = 0 }; + const pcf = &c.a; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .a = 0 }; + var pcf: @TypeOf(&c.a) = undefined; + pcf = &c.a; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .a = 0 }; + var pcf: @TypeOf(&c.a) = undefined; + pcf = &c.a; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "a", pcf)); + try expect(pc == &c); + } - const base = @fieldParentPtr(BarExtern, "c", c); - try expect(base == &bar_extern); - try expect(&base.c == c); + { + const c: C = .{ .b = 0 }; + const pcf = &c.b; + const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .b = 0 }; + const pcf = &c.b; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + const c: C = .{ .b = 0 }; + var pcf: @TypeOf(&c.b) = undefined; + pcf = &c.b; + var pc: *const C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + try expect(pc == &c); + } + { + var c: C = undefined; + c = .{ .b = 0 }; + var pcf: @TypeOf(&c.b) = undefined; + pcf = &c.b; + var pc: *C = undefined; + pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcf)); + try expect(pc == &c); + } } diff --git a/test/behavior/struct.zig b/test/behavior/struct.zig index f85e783342a1..cbf7493b868b 100644 --- a/test/behavior/struct.zig +++ b/test/behavior/struct.zig @@ -1392,13 +1392,13 @@ test "fieldParentPtr of a zero-bit field" { { const a = A{ .u = 0 }; const b_ptr = &a.b; - const a_ptr = @fieldParentPtr(A, "b", b_ptr); + const a_ptr = @fieldParentPtr(*const A, "b", b_ptr); try std.testing.expectEqual(&a, a_ptr); } { var a = A{ .u = 0 }; const b_ptr = &a.b; - const a_ptr = @fieldParentPtr(A, "b", b_ptr); + const a_ptr = @fieldParentPtr(*const A, "b", b_ptr); try std.testing.expectEqual(&a, a_ptr); } } @@ -1406,17 +1406,17 @@ test "fieldParentPtr of a zero-bit field" { { const a = A{ .u = 0 }; const c_ptr = &a.b.c; - const b_ptr = @fieldParentPtr(@TypeOf(a.b), "c", c_ptr); + const b_ptr = @fieldParentPtr(*const @TypeOf(a.b), "c", c_ptr); try std.testing.expectEqual(&a.b, b_ptr); - const a_ptr = @fieldParentPtr(A, "b", b_ptr); + const a_ptr = @fieldParentPtr(*const A, "b", b_ptr); try std.testing.expectEqual(&a, a_ptr); } { var a = A{ .u = 0 }; const c_ptr = &a.b.c; - const b_ptr = @fieldParentPtr(@TypeOf(a.b), "c", c_ptr); + const b_ptr = @fieldParentPtr(*const @TypeOf(a.b), "c", c_ptr); try std.testing.expectEqual(&a.b, b_ptr); - const a_ptr = @fieldParentPtr(A, "b", b_ptr); + const a_ptr = @fieldParentPtr(*const A, "b", b_ptr); try std.testing.expectEqual(&a, a_ptr); } } diff --git a/test/behavior/tuple.zig b/test/behavior/tuple.zig index bfd913774f3d..7cc157653a1a 100644 --- a/test/behavior/tuple.zig +++ b/test/behavior/tuple.zig @@ -222,7 +222,7 @@ test "fieldParentPtr of tuple" { var x: u32 = 0; _ = &x; const tuple = .{ x, x }; - try testing.expect(&tuple == @fieldParentPtr(@TypeOf(tuple), "1", &tuple[1])); + try testing.expect(&tuple == @fieldParentPtr(*const @TypeOf(tuple), "1", &tuple[1])); } test "fieldParentPtr of anon struct" { @@ -233,7 +233,7 @@ test "fieldParentPtr of anon struct" { var x: u32 = 0; _ = &x; const anon_st = .{ .foo = x, .bar = x }; - try testing.expect(&anon_st == @fieldParentPtr(@TypeOf(anon_st), "bar", &anon_st.bar)); + try testing.expect(&anon_st == @fieldParentPtr(*const @TypeOf(anon_st), "bar", &anon_st.bar)); } test "offsetOf tuple" { diff --git a/test/cases/compile_errors/fieldParentPtr-bad_field_name.zig b/test/cases/compile_errors/fieldParentPtr-bad_field_name.zig index d3e487d3ce68..10a2bf384d56 100644 --- a/test/cases/compile_errors/fieldParentPtr-bad_field_name.zig +++ b/test/cases/compile_errors/fieldParentPtr-bad_field_name.zig @@ -2,12 +2,12 @@ const Foo = extern struct { derp: i32, }; export fn foo(a: *i32) *Foo { - return @fieldParentPtr(Foo, "a", a); + return @fieldParentPtr(*Foo, "a", a); } // error // backend=stage2 // target=native // -// :5:33: error: no field named 'a' in struct 'tmp.Foo' +// :5:34: error: no field named 'a' in struct 'tmp.Foo' // :1:20: note: struct declared here diff --git a/test/cases/compile_errors/fieldParentPtr-comptime_field_ptr_not_based_on_struct.zig b/test/cases/compile_errors/fieldParentPtr-comptime_field_ptr_not_based_on_struct.zig index 2147fb8aed6b..751dc6681ecc 100644 --- a/test/cases/compile_errors/fieldParentPtr-comptime_field_ptr_not_based_on_struct.zig +++ b/test/cases/compile_errors/fieldParentPtr-comptime_field_ptr_not_based_on_struct.zig @@ -9,7 +9,7 @@ const foo = Foo{ comptime { const field_ptr: *i32 = @ptrFromInt(0x1234); - const another_foo_ptr = @fieldParentPtr(Foo, "b", field_ptr); + const another_foo_ptr = @fieldParentPtr(*const Foo, "b", field_ptr); _ = another_foo_ptr; } @@ -17,4 +17,4 @@ comptime { // backend=stage2 // target=native // -// :12:55: error: pointer value not based on parent struct +// :12:62: error: pointer value not based on parent struct diff --git a/test/cases/compile_errors/fieldParentPtr-comptime_wrong_field_index.zig b/test/cases/compile_errors/fieldParentPtr-comptime_wrong_field_index.zig index 7a37eb2adcdf..3f459c66eeea 100644 --- a/test/cases/compile_errors/fieldParentPtr-comptime_wrong_field_index.zig +++ b/test/cases/compile_errors/fieldParentPtr-comptime_wrong_field_index.zig @@ -8,7 +8,7 @@ const foo = Foo{ }; comptime { - const another_foo_ptr = @fieldParentPtr(Foo, "b", &foo.a); + const another_foo_ptr = @fieldParentPtr(*const Foo, "b", &foo.a); _ = another_foo_ptr; } diff --git a/test/cases/compile_errors/fieldParentPtr-field_pointer_is_not_pointer.zig b/test/cases/compile_errors/fieldParentPtr-field_pointer_is_not_pointer.zig index 8a57d08c3ba1..b2a7768611a3 100644 --- a/test/cases/compile_errors/fieldParentPtr-field_pointer_is_not_pointer.zig +++ b/test/cases/compile_errors/fieldParentPtr-field_pointer_is_not_pointer.zig @@ -2,11 +2,11 @@ const Foo = extern struct { a: i32, }; export fn foo(a: i32) *Foo { - return @fieldParentPtr(Foo, "a", a); + return @fieldParentPtr(*const Foo, "a", a); } // error // backend=stage2 // target=native // -// :5:38: error: expected pointer type, found 'i32' +// :5:45: error: expected pointer type, found 'i32' diff --git a/test/cases/compile_errors/fieldParentPtr-non_struct.zig b/test/cases/compile_errors/fieldParentPtr-non_pointer.zig similarity index 69% rename from test/cases/compile_errors/fieldParentPtr-non_struct.zig rename to test/cases/compile_errors/fieldParentPtr-non_pointer.zig index 7950c885371d..27d8ad9c2040 100644 --- a/test/cases/compile_errors/fieldParentPtr-non_struct.zig +++ b/test/cases/compile_errors/fieldParentPtr-non_pointer.zig @@ -7,4 +7,4 @@ export fn foo(a: *i32) *Foo { // backend=llvm // target=native // -// :3:28: error: expected struct or union type, found 'i32' +// :3:28: error: expected pointer type, found 'i32' diff --git a/test/cases/compile_errors/fieldParentPtr_on_comptime_field.zig b/test/cases/compile_errors/fieldParentPtr_on_comptime_field.zig index fb95ea691c4a..1b26bfcff9d8 100644 --- a/test/cases/compile_errors/fieldParentPtr_on_comptime_field.zig +++ b/test/cases/compile_errors/fieldParentPtr_on_comptime_field.zig @@ -5,7 +5,7 @@ pub export fn entry1() void { @offsetOf(T, "a"); } pub export fn entry2() void { - @fieldParentPtr(T, "a", undefined); + @fieldParentPtr(*T, "a", undefined); } // error @@ -13,4 +13,4 @@ pub export fn entry2() void { // target=native // // :5:5: error: no offset available for comptime field -// :8:5: error: cannot get @fieldParentPtr of a comptime field +// :8:25: error: cannot get @fieldParentPtr of a comptime field diff --git a/test/cases/compile_errors/invalid_bit_pointer.zig b/test/cases/compile_errors/invalid_bit_pointer.zig new file mode 100644 index 000000000000..e05aaad07a1d --- /dev/null +++ b/test/cases/compile_errors/invalid_bit_pointer.zig @@ -0,0 +1,13 @@ +comptime { + _ = *align(1:32:4) u8; +} +comptime { + _ = *align(1:25:4) u8; +} + +// error +// backend=stage2 +// target=native +// +// :2:18: error: packed type 'u8' at bit offset 32 starts 0 bits after the end of a 4 byte host integer +// :5:18: error: packed type 'u8' at bit offset 25 ends 1 bits after the end of a 4 byte host integer From e409afb79bcadeabd2d5d4cc3cd5dcc54a964e94 Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Tue, 19 Mar 2024 12:27:20 +0100 Subject: [PATCH 4/9] Update uses of `@fieldParentPtr` to pass a pointer type --- lib/compiler/aro/aro/pragmas/gcc.zig | 12 +++---- lib/compiler/aro/aro/pragmas/message.zig | 2 +- lib/compiler/aro/aro/pragmas/once.zig | 6 ++-- lib/compiler/aro/aro/pragmas/pack.zig | 4 +-- lib/compiler/aro_translate_c.zig | 18 +++++----- lib/compiler/aro_translate_c/ast.zig | 16 ++++----- lib/std/Build.zig | 4 +-- lib/std/Build/Step.zig | 2 +- lib/std/Build/Step/CheckFile.zig | 2 +- lib/std/Build/Step/CheckObject.zig | 2 +- lib/std/Build/Step/Compile.zig | 2 +- lib/std/Build/Step/ConfigHeader.zig | 2 +- lib/std/Build/Step/Fmt.zig | 2 +- lib/std/Build/Step/InstallArtifact.zig | 2 +- lib/std/Build/Step/InstallDir.zig | 2 +- lib/std/Build/Step/InstallFile.zig | 2 +- lib/std/Build/Step/ObjCopy.zig | 2 +- lib/std/Build/Step/Options.zig | 2 +- lib/std/Build/Step/RemoveDir.zig | 2 +- lib/std/Build/Step/Run.zig | 2 +- lib/std/Build/Step/TranslateC.zig | 2 +- lib/std/Build/Step/WriteFile.zig | 2 +- lib/std/Thread/Pool.zig | 4 +-- lib/std/http/Client.zig | 2 +- lib/std/zig/AstGen.zig | 6 ++-- lib/std/zig/c_translation.zig | 2 +- src/link.zig | 46 ++++++++++++------------ src/link/tapi/parse.zig | 18 +++++----- src/register_manager.zig | 2 +- test/standalone/cmakedefine/build.zig | 2 +- 30 files changed, 87 insertions(+), 87 deletions(-) diff --git a/lib/compiler/aro/aro/pragmas/gcc.zig b/lib/compiler/aro/aro/pragmas/gcc.zig index 83a4a134a68b..f73877c69bb1 100644 --- a/lib/compiler/aro/aro/pragmas/gcc.zig +++ b/lib/compiler/aro/aro/pragmas/gcc.zig @@ -37,18 +37,18 @@ const Directive = enum { }; fn beforePreprocess(pragma: *Pragma, comp: *Compilation) void { - var self = @fieldParentPtr(GCC, "pragma", pragma); + var self = @fieldParentPtr(*GCC, "pragma", pragma); self.original_options = comp.diagnostics.options; } fn beforeParse(pragma: *Pragma, comp: *Compilation) void { - var self = @fieldParentPtr(GCC, "pragma", pragma); + var self = @fieldParentPtr(*GCC, "pragma", pragma); comp.diagnostics.options = self.original_options; self.options_stack.items.len = 0; } fn afterParse(pragma: *Pragma, comp: *Compilation) void { - var self = @fieldParentPtr(GCC, "pragma", pragma); + var self = @fieldParentPtr(*GCC, "pragma", pragma); comp.diagnostics.options = self.original_options; self.options_stack.items.len = 0; } @@ -60,7 +60,7 @@ pub fn init(allocator: mem.Allocator) !*Pragma { } fn deinit(pragma: *Pragma, comp: *Compilation) void { - var self = @fieldParentPtr(GCC, "pragma", pragma); + var self = @fieldParentPtr(*GCC, "pragma", pragma); self.options_stack.deinit(comp.gpa); comp.gpa.destroy(self); } @@ -108,7 +108,7 @@ fn diagnosticHandler(self: *GCC, pp: *Preprocessor, start_idx: TokenIndex) Pragm } fn preprocessorHandler(pragma: *Pragma, pp: *Preprocessor, start_idx: TokenIndex) Pragma.Error!void { - var self = @fieldParentPtr(GCC, "pragma", pragma); + var self = @fieldParentPtr(*GCC, "pragma", pragma); const directive_tok = pp.tokens.get(start_idx + 1); if (directive_tok.id == .nl) return; @@ -174,7 +174,7 @@ fn preprocessorHandler(pragma: *Pragma, pp: *Preprocessor, start_idx: TokenIndex } fn parserHandler(pragma: *Pragma, p: *Parser, start_idx: TokenIndex) Compilation.Error!void { - var self = @fieldParentPtr(GCC, "pragma", pragma); + var self = @fieldParentPtr(*GCC, "pragma", pragma); const directive_tok = p.pp.tokens.get(start_idx + 1); if (directive_tok.id == .nl) return; const name = p.pp.expandedSlice(directive_tok); diff --git a/lib/compiler/aro/aro/pragmas/message.zig b/lib/compiler/aro/aro/pragmas/message.zig index a42b5a087422..6ad6082c3d20 100644 --- a/lib/compiler/aro/aro/pragmas/message.zig +++ b/lib/compiler/aro/aro/pragmas/message.zig @@ -22,7 +22,7 @@ pub fn init(allocator: mem.Allocator) !*Pragma { } fn deinit(pragma: *Pragma, comp: *Compilation) void { - const self = @fieldParentPtr(Message, "pragma", pragma); + const self = @fieldParentPtr(*Message, "pragma", pragma); comp.gpa.destroy(self); } diff --git a/lib/compiler/aro/aro/pragmas/once.zig b/lib/compiler/aro/aro/pragmas/once.zig index 790e5e129cea..9a8925025284 100644 --- a/lib/compiler/aro/aro/pragmas/once.zig +++ b/lib/compiler/aro/aro/pragmas/once.zig @@ -27,18 +27,18 @@ pub fn init(allocator: mem.Allocator) !*Pragma { } fn afterParse(pragma: *Pragma, _: *Compilation) void { - var self = @fieldParentPtr(Once, "pragma", pragma); + var self = @fieldParentPtr(*Once, "pragma", pragma); self.pragma_once.clearRetainingCapacity(); } fn deinit(pragma: *Pragma, comp: *Compilation) void { - var self = @fieldParentPtr(Once, "pragma", pragma); + var self = @fieldParentPtr(*Once, "pragma", pragma); self.pragma_once.deinit(); comp.gpa.destroy(self); } fn preprocessorHandler(pragma: *Pragma, pp: *Preprocessor, start_idx: TokenIndex) Pragma.Error!void { - var self = @fieldParentPtr(Once, "pragma", pragma); + var self = @fieldParentPtr(*Once, "pragma", pragma); const name_tok = pp.tokens.get(start_idx); const next = pp.tokens.get(start_idx + 1); if (next.id != .nl) { diff --git a/lib/compiler/aro/aro/pragmas/pack.zig b/lib/compiler/aro/aro/pragmas/pack.zig index 61306e8849c4..26c95c3907df 100644 --- a/lib/compiler/aro/aro/pragmas/pack.zig +++ b/lib/compiler/aro/aro/pragmas/pack.zig @@ -24,13 +24,13 @@ pub fn init(allocator: mem.Allocator) !*Pragma { } fn deinit(pragma: *Pragma, comp: *Compilation) void { - var self = @fieldParentPtr(Pack, "pragma", pragma); + var self = @fieldParentPtr(*Pack, "pragma", pragma); self.stack.deinit(comp.gpa); comp.gpa.destroy(self); } fn parserHandler(pragma: *Pragma, p: *Parser, start_idx: TokenIndex) Compilation.Error!void { - var pack = @fieldParentPtr(Pack, "pragma", pragma); + var pack = @fieldParentPtr(*Pack, "pragma", pragma); var idx = start_idx + 1; const l_paren = p.pp.tokens.get(idx); if (l_paren.id != .l_paren) { diff --git a/lib/compiler/aro_translate_c.zig b/lib/compiler/aro_translate_c.zig index cf0c39354b41..fe8b07c4d996 100644 --- a/lib/compiler/aro_translate_c.zig +++ b/lib/compiler/aro_translate_c.zig @@ -1103,8 +1103,8 @@ pub fn ScopeExtra(comptime ScopeExtraContext: type, comptime ScopeExtraType: typ while (true) { switch (scope.id) { .root => unreachable, - .block => return @fieldParentPtr(Block, "base", scope), - .condition => return @fieldParentPtr(Condition, "base", scope).getBlockScope(c), + .block => return @fieldParentPtr(*Block, "base", scope), + .condition => return @fieldParentPtr(*Condition, "base", scope).getBlockScope(c), else => scope = scope.parent.?, } } @@ -1116,7 +1116,7 @@ pub fn ScopeExtra(comptime ScopeExtraContext: type, comptime ScopeExtraType: typ switch (scope.id) { .root => unreachable, .block => { - const block = @fieldParentPtr(Block, "base", scope); + const block = @fieldParentPtr(*Block, "base", scope); if (block.return_type) |ty| return ty; scope = scope.parent.?; }, @@ -1128,15 +1128,15 @@ pub fn ScopeExtra(comptime ScopeExtraContext: type, comptime ScopeExtraType: typ pub fn getAlias(scope: *ScopeExtraScope, name: []const u8) []const u8 { return switch (scope.id) { .root => return name, - .block => @fieldParentPtr(Block, "base", scope).getAlias(name), + .block => @fieldParentPtr(*Block, "base", scope).getAlias(name), .loop, .do_loop, .condition => scope.parent.?.getAlias(name), }; } pub fn contains(scope: *ScopeExtraScope, name: []const u8) bool { return switch (scope.id) { - .root => @fieldParentPtr(Root, "base", scope).contains(name), - .block => @fieldParentPtr(Block, "base", scope).contains(name), + .root => @fieldParentPtr(*Root, "base", scope).contains(name), + .block => @fieldParentPtr(*Block, "base", scope).contains(name), .loop, .do_loop, .condition => scope.parent.?.contains(name), }; } @@ -1158,11 +1158,11 @@ pub fn ScopeExtra(comptime ScopeExtraContext: type, comptime ScopeExtraType: typ while (true) { switch (scope.id) { .root => { - const root = @fieldParentPtr(Root, "base", scope); + const root = @fieldParentPtr(*Root, "base", scope); return root.nodes.append(node); }, .block => { - const block = @fieldParentPtr(Block, "base", scope); + const block = @fieldParentPtr(*Block, "base", scope); return block.statements.append(node); }, else => scope = scope.parent.?, @@ -1184,7 +1184,7 @@ pub fn ScopeExtra(comptime ScopeExtraContext: type, comptime ScopeExtraType: typ switch (scope.id) { .root => return, .block => { - const block = @fieldParentPtr(Block, "base", scope); + const block = @fieldParentPtr(*Block, "base", scope); if (block.variable_discards.get(name)) |discard| { discard.data.should_skip = true; return; diff --git a/lib/compiler/aro_translate_c/ast.zig b/lib/compiler/aro_translate_c/ast.zig index b63d9fbc3274..b7ab20095c14 100644 --- a/lib/compiler/aro_translate_c/ast.zig +++ b/lib/compiler/aro_translate_c/ast.zig @@ -409,7 +409,7 @@ pub const Node = extern union { return null; if (self.ptr_otherwise.tag == t) - return @fieldParentPtr(t.Type(), "base", self.ptr_otherwise); + return @alignCast(@fieldParentPtr(*align(1) t.Type(), "base", self.ptr_otherwise)); return null; } @@ -1220,7 +1220,7 @@ fn renderNode(c: *Context, node: Node) Allocator.Error!NodeIndex { }); }, .pub_var_simple, .var_simple => { - const payload = @fieldParentPtr(Payload.SimpleVarDecl, "base", node.ptr_otherwise).data; + const payload = @as(*Payload.SimpleVarDecl, @alignCast(@fieldParentPtr(*align(1) Payload.SimpleVarDecl, "base", node.ptr_otherwise))).data; if (node.tag() == .pub_var_simple) _ = try c.addToken(.keyword_pub, "pub"); const const_tok = try c.addToken(.keyword_const, "const"); _ = try c.addIdentifier(payload.name); @@ -1293,7 +1293,7 @@ fn renderNode(c: *Context, node: Node) Allocator.Error!NodeIndex { }, .var_decl => return renderVar(c, node), .arg_redecl, .alias => { - const payload = @fieldParentPtr(Payload.ArgRedecl, "base", node.ptr_otherwise).data; + const payload = @as(*Payload.ArgRedecl, @alignCast(@fieldParentPtr(*align(1) Payload.ArgRedecl, "base", node.ptr_otherwise))).data; if (node.tag() == .alias) _ = try c.addToken(.keyword_pub, "pub"); const mut_tok = if (node.tag() == .alias) try c.addToken(.keyword_const, "const") @@ -1492,7 +1492,7 @@ fn renderNode(c: *Context, node: Node) Allocator.Error!NodeIndex { }); }, .c_pointer, .single_pointer => { - const payload = @fieldParentPtr(Payload.Pointer, "base", node.ptr_otherwise).data; + const payload = @as(*Payload.Pointer, @alignCast(@fieldParentPtr(*align(1) Payload.Pointer, "base", node.ptr_otherwise))).data; const asterisk = if (node.tag() == .single_pointer) try c.addToken(.asterisk, "*") @@ -2085,7 +2085,7 @@ fn renderNode(c: *Context, node: Node) Allocator.Error!NodeIndex { } fn renderRecord(c: *Context, node: Node) !NodeIndex { - const payload = @fieldParentPtr(Payload.Record, "base", node.ptr_otherwise).data; + const payload = @as(*Payload.Record, @alignCast(@fieldParentPtr(*align(1) Payload.Record, "base", node.ptr_otherwise))).data; if (payload.layout == .@"packed") _ = try c.addToken(.keyword_packed, "packed") else if (payload.layout == .@"extern") @@ -2487,7 +2487,7 @@ fn renderNodeGrouped(c: *Context, node: Node) !NodeIndex { } fn renderPrefixOp(c: *Context, node: Node, tag: std.zig.Ast.Node.Tag, tok_tag: TokenTag, bytes: []const u8) !NodeIndex { - const payload = @fieldParentPtr(Payload.UnOp, "base", node.ptr_otherwise).data; + const payload = @as(*Payload.UnOp, @alignCast(@fieldParentPtr(*align(1) Payload.UnOp, "base", node.ptr_otherwise))).data; return c.addNode(.{ .tag = tag, .main_token = try c.addToken(tok_tag, bytes), @@ -2499,7 +2499,7 @@ fn renderPrefixOp(c: *Context, node: Node, tag: std.zig.Ast.Node.Tag, tok_tag: T } fn renderBinOpGrouped(c: *Context, node: Node, tag: std.zig.Ast.Node.Tag, tok_tag: TokenTag, bytes: []const u8) !NodeIndex { - const payload = @fieldParentPtr(Payload.BinOp, "base", node.ptr_otherwise).data; + const payload = @as(*Payload.BinOp, @alignCast(@fieldParentPtr(*align(1) Payload.BinOp, "base", node.ptr_otherwise))).data; const lhs = try renderNodeGrouped(c, payload.lhs); return c.addNode(.{ .tag = tag, @@ -2512,7 +2512,7 @@ fn renderBinOpGrouped(c: *Context, node: Node, tag: std.zig.Ast.Node.Tag, tok_ta } fn renderBinOp(c: *Context, node: Node, tag: std.zig.Ast.Node.Tag, tok_tag: TokenTag, bytes: []const u8) !NodeIndex { - const payload = @fieldParentPtr(Payload.BinOp, "base", node.ptr_otherwise).data; + const payload = @as(*Payload.BinOp, @alignCast(@fieldParentPtr(*align(1) Payload.BinOp, "base", node.ptr_otherwise))).data; const lhs = try renderNode(c, payload.lhs); return c.addNode(.{ .tag = tag, diff --git a/lib/std/Build.zig b/lib/std/Build.zig index f850f733953e..f59498fb5050 100644 --- a/lib/std/Build.zig +++ b/lib/std/Build.zig @@ -1062,8 +1062,8 @@ pub fn getUninstallStep(self: *Build) *Step { fn makeUninstall(uninstall_step: *Step, prog_node: *std.Progress.Node) anyerror!void { _ = prog_node; - const uninstall_tls = @fieldParentPtr(TopLevelStep, "step", uninstall_step); - const self = @fieldParentPtr(Build, "uninstall_tls", uninstall_tls); + const uninstall_tls = @fieldParentPtr(*TopLevelStep, "step", uninstall_step); + const self = @fieldParentPtr(*Build, "uninstall_tls", uninstall_tls); for (self.installed_files.items) |installed_file| { const full_path = self.getInstallPath(installed_file.dir, installed_file.path); diff --git a/lib/std/Build/Step.zig b/lib/std/Build/Step.zig index 48af9e54d6fa..67e1b0ed585b 100644 --- a/lib/std/Build/Step.zig +++ b/lib/std/Build/Step.zig @@ -231,7 +231,7 @@ fn makeNoOp(step: *Step, prog_node: *std.Progress.Node) anyerror!void { pub fn cast(step: *Step, comptime T: type) ?*T { if (step.id == T.base_id) { - return @fieldParentPtr(T, "step", step); + return @fieldParentPtr(*T, "step", step); } return null; } diff --git a/lib/std/Build/Step/CheckFile.zig b/lib/std/Build/Step/CheckFile.zig index d072865922fb..9dfb94a67da6 100644 --- a/lib/std/Build/Step/CheckFile.zig +++ b/lib/std/Build/Step/CheckFile.zig @@ -49,7 +49,7 @@ pub fn setName(self: *CheckFile, name: []const u8) void { fn make(step: *Step, prog_node: *std.Progress.Node) !void { _ = prog_node; const b = step.owner; - const self = @fieldParentPtr(CheckFile, "step", step); + const self = @fieldParentPtr(*CheckFile, "step", step); const src_path = self.source.getPath(b); const contents = fs.cwd().readFileAlloc(b.allocator, src_path, self.max_bytes) catch |err| { diff --git a/lib/std/Build/Step/CheckObject.zig b/lib/std/Build/Step/CheckObject.zig index c5eb1f776bbd..a1c3bbcf14f7 100644 --- a/lib/std/Build/Step/CheckObject.zig +++ b/lib/std/Build/Step/CheckObject.zig @@ -530,7 +530,7 @@ fn make(step: *Step, prog_node: *std.Progress.Node) !void { _ = prog_node; const b = step.owner; const gpa = b.allocator; - const self = @fieldParentPtr(CheckObject, "step", step); + const self = @fieldParentPtr(*CheckObject, "step", step); const src_path = self.source.getPath(b); const contents = fs.cwd().readFileAllocOptions( diff --git a/lib/std/Build/Step/Compile.zig b/lib/std/Build/Step/Compile.zig index 9c1354fd3034..f3182b02580f 100644 --- a/lib/std/Build/Step/Compile.zig +++ b/lib/std/Build/Step/Compile.zig @@ -918,7 +918,7 @@ fn getGeneratedFilePath(self: *Compile, comptime tag_name: []const u8, asking_st fn make(step: *Step, prog_node: *std.Progress.Node) !void { const b = step.owner; const arena = b.allocator; - const self = @fieldParentPtr(Compile, "step", step); + const self = @fieldParentPtr(*Compile, "step", step); var zig_args = ArrayList([]const u8).init(arena); defer zig_args.deinit(); diff --git a/lib/std/Build/Step/ConfigHeader.zig b/lib/std/Build/Step/ConfigHeader.zig index 9c2f5d0826c5..a26bec469243 100644 --- a/lib/std/Build/Step/ConfigHeader.zig +++ b/lib/std/Build/Step/ConfigHeader.zig @@ -167,7 +167,7 @@ fn putValue(self: *ConfigHeader, field_name: []const u8, comptime T: type, v: T) fn make(step: *Step, prog_node: *std.Progress.Node) !void { _ = prog_node; const b = step.owner; - const self = @fieldParentPtr(ConfigHeader, "step", step); + const self = @fieldParentPtr(*ConfigHeader, "step", step); const gpa = b.allocator; const arena = b.allocator; diff --git a/lib/std/Build/Step/Fmt.zig b/lib/std/Build/Step/Fmt.zig index 4ff9d4e58931..a46ca2578e63 100644 --- a/lib/std/Build/Step/Fmt.zig +++ b/lib/std/Build/Step/Fmt.zig @@ -47,7 +47,7 @@ fn make(step: *Step, prog_node: *std.Progress.Node) !void { const b = step.owner; const arena = b.allocator; - const self = @fieldParentPtr(Fmt, "step", step); + const self = @fieldParentPtr(*Fmt, "step", step); var argv: std.ArrayListUnmanaged([]const u8) = .{}; try argv.ensureUnusedCapacity(arena, 2 + 1 + self.paths.len + 2 * self.exclude_paths.len); diff --git a/lib/std/Build/Step/InstallArtifact.zig b/lib/std/Build/Step/InstallArtifact.zig index b9c3acfbc912..9afab1925f1b 100644 --- a/lib/std/Build/Step/InstallArtifact.zig +++ b/lib/std/Build/Step/InstallArtifact.zig @@ -121,7 +121,7 @@ pub fn create(owner: *std.Build, artifact: *Step.Compile, options: Options) *Ins fn make(step: *Step, prog_node: *std.Progress.Node) !void { _ = prog_node; - const self = @fieldParentPtr(InstallArtifact, "step", step); + const self = @fieldParentPtr(*InstallArtifact, "step", step); const dest_builder = step.owner; const cwd = fs.cwd(); diff --git a/lib/std/Build/Step/InstallDir.zig b/lib/std/Build/Step/InstallDir.zig index 7472dba2a740..ce71b3773c79 100644 --- a/lib/std/Build/Step/InstallDir.zig +++ b/lib/std/Build/Step/InstallDir.zig @@ -63,7 +63,7 @@ pub fn create(owner: *std.Build, options: Options) *InstallDirStep { fn make(step: *Step, prog_node: *std.Progress.Node) !void { _ = prog_node; - const self = @fieldParentPtr(InstallDirStep, "step", step); + const self = @fieldParentPtr(*InstallDirStep, "step", step); const dest_builder = self.dest_builder; const arena = dest_builder.allocator; const dest_prefix = dest_builder.getInstallPath(self.options.install_dir, self.options.install_subdir); diff --git a/lib/std/Build/Step/InstallFile.zig b/lib/std/Build/Step/InstallFile.zig index f7487de5985f..0c61572f5cef 100644 --- a/lib/std/Build/Step/InstallFile.zig +++ b/lib/std/Build/Step/InstallFile.zig @@ -43,7 +43,7 @@ pub fn create( fn make(step: *Step, prog_node: *std.Progress.Node) !void { _ = prog_node; const src_builder = step.owner; - const self = @fieldParentPtr(InstallFile, "step", step); + const self = @fieldParentPtr(*InstallFile, "step", step); const dest_builder = self.dest_builder; const full_src_path = self.source.getPath2(src_builder, step); const full_dest_path = dest_builder.getInstallPath(self.dir, self.dest_rel_path); diff --git a/lib/std/Build/Step/ObjCopy.zig b/lib/std/Build/Step/ObjCopy.zig index 5ad123f89ff3..972681723f85 100644 --- a/lib/std/Build/Step/ObjCopy.zig +++ b/lib/std/Build/Step/ObjCopy.zig @@ -92,7 +92,7 @@ pub fn getOutputSeparatedDebug(self: *const ObjCopy) ?std.Build.LazyPath { fn make(step: *Step, prog_node: *std.Progress.Node) !void { const b = step.owner; - const self = @fieldParentPtr(ObjCopy, "step", step); + const self = @fieldParentPtr(*ObjCopy, "step", step); var man = b.graph.cache.obtain(); defer man.deinit(); diff --git a/lib/std/Build/Step/Options.zig b/lib/std/Build/Step/Options.zig index 436c7fb8e7c5..59f16f5b4264 100644 --- a/lib/std/Build/Step/Options.zig +++ b/lib/std/Build/Step/Options.zig @@ -415,7 +415,7 @@ fn make(step: *Step, prog_node: *std.Progress.Node) !void { _ = prog_node; const b = step.owner; - const self = @fieldParentPtr(Options, "step", step); + const self = @fieldParentPtr(*Options, "step", step); for (self.args.items) |item| { self.addOption( diff --git a/lib/std/Build/Step/RemoveDir.zig b/lib/std/Build/Step/RemoveDir.zig index 7a2a56771a6d..4eedf563a8d5 100644 --- a/lib/std/Build/Step/RemoveDir.zig +++ b/lib/std/Build/Step/RemoveDir.zig @@ -28,7 +28,7 @@ fn make(step: *Step, prog_node: *std.Progress.Node) !void { _ = prog_node; const b = step.owner; - const self = @fieldParentPtr(RemoveDir, "step", step); + const self = @fieldParentPtr(*RemoveDir, "step", step); b.build_root.handle.deleteTree(self.dir_path) catch |err| { if (b.build_root.path) |base| { diff --git a/lib/std/Build/Step/Run.zig b/lib/std/Build/Step/Run.zig index cb1ed7e7dc76..b8f213b8f71b 100644 --- a/lib/std/Build/Step/Run.zig +++ b/lib/std/Build/Step/Run.zig @@ -497,7 +497,7 @@ const IndexedOutput = struct { fn make(step: *Step, prog_node: *std.Progress.Node) !void { const b = step.owner; const arena = b.allocator; - const self = @fieldParentPtr(Run, "step", step); + const self = @fieldParentPtr(*Run, "step", step); const has_side_effects = self.hasSideEffects(); var argv_list = ArrayList([]const u8).init(arena); diff --git a/lib/std/Build/Step/TranslateC.zig b/lib/std/Build/Step/TranslateC.zig index 7d69ffa8b018..35536158b062 100644 --- a/lib/std/Build/Step/TranslateC.zig +++ b/lib/std/Build/Step/TranslateC.zig @@ -118,7 +118,7 @@ pub fn defineCMacroRaw(self: *TranslateC, name_and_value: []const u8) void { fn make(step: *Step, prog_node: *std.Progress.Node) !void { const b = step.owner; - const self = @fieldParentPtr(TranslateC, "step", step); + const self = @fieldParentPtr(*TranslateC, "step", step); var argv_list = std.ArrayList([]const u8).init(b.allocator); try argv_list.append(b.graph.zig_exe); diff --git a/lib/std/Build/Step/WriteFile.zig b/lib/std/Build/Step/WriteFile.zig index aab40a8a5e09..c997c86d1f57 100644 --- a/lib/std/Build/Step/WriteFile.zig +++ b/lib/std/Build/Step/WriteFile.zig @@ -141,7 +141,7 @@ fn maybeUpdateName(wf: *WriteFile) void { fn make(step: *Step, prog_node: *std.Progress.Node) !void { _ = prog_node; const b = step.owner; - const wf = @fieldParentPtr(WriteFile, "step", step); + const wf = @fieldParentPtr(*WriteFile, "step", step); // Writing to source files is kind of an extra capability of this // WriteFile - arguably it should be a different step. But anyway here diff --git a/lib/std/Thread/Pool.zig b/lib/std/Thread/Pool.zig index 3694f94be42a..9f386c8e6570 100644 --- a/lib/std/Thread/Pool.zig +++ b/lib/std/Thread/Pool.zig @@ -88,8 +88,8 @@ pub fn spawn(pool: *Pool, comptime func: anytype, args: anytype) !void { run_node: RunQueue.Node = .{ .data = .{ .runFn = runFn } }, fn runFn(runnable: *Runnable) void { - const run_node = @fieldParentPtr(RunQueue.Node, "data", runnable); - const closure = @fieldParentPtr(@This(), "run_node", run_node); + const run_node = @fieldParentPtr(*RunQueue.Node, "data", runnable); + const closure = @fieldParentPtr(*@This(), "run_node", run_node); @call(.auto, func, closure.arguments); // The thread pool's allocator is protected by the mutex. diff --git a/lib/std/http/Client.zig b/lib/std/http/Client.zig index 0e70b839b4e0..02aea79dd911 100644 --- a/lib/std/http/Client.zig +++ b/lib/std/http/Client.zig @@ -108,7 +108,7 @@ pub const ConnectionPool = struct { pool.mutex.lock(); defer pool.mutex.unlock(); - const node = @fieldParentPtr(Node, "data", connection); + const node = @fieldParentPtr(*Node, "data", connection); pool.used.remove(node); diff --git a/lib/std/zig/AstGen.zig b/lib/std/zig/AstGen.zig index 2cab0fe7ca91..2fe67628d342 100644 --- a/lib/std/zig/AstGen.zig +++ b/lib/std/zig/AstGen.zig @@ -11686,20 +11686,20 @@ const Scope = struct { fn cast(base: *Scope, comptime T: type) ?*T { if (T == Defer) { switch (base.tag) { - .defer_normal, .defer_error => return @fieldParentPtr(T, "base", base), + .defer_normal, .defer_error => return @alignCast(@fieldParentPtr(*align(1) T, "base", base)), else => return null, } } if (T == Namespace) { switch (base.tag) { - .namespace => return @fieldParentPtr(T, "base", base), + .namespace => return @alignCast(@fieldParentPtr(*align(1) T, "base", base)), else => return null, } } if (base.tag != T.base_tag) return null; - return @fieldParentPtr(T, "base", base); + return @alignCast(@fieldParentPtr(*align(1) T, "base", base)); } fn parent(base: *Scope) ?*Scope { diff --git a/lib/std/zig/c_translation.zig b/lib/std/zig/c_translation.zig index 337149e97d7c..be7431127fe9 100644 --- a/lib/std/zig/c_translation.zig +++ b/lib/std/zig/c_translation.zig @@ -414,7 +414,7 @@ pub const Macros = struct { } pub fn WL_CONTAINER_OF(ptr: anytype, sample: anytype, comptime member: []const u8) @TypeOf(sample) { - return @fieldParentPtr(@TypeOf(sample.*), member, ptr); + return @fieldParentPtr(@TypeOf(sample), member, ptr); } /// A 2-argument function-like macro defined as #define FOO(A, B) (A)(B) diff --git a/src/link.zig b/src/link.zig index 9e1daa09af28..8ccd68fb650f 100644 --- a/src/link.zig +++ b/src/link.zig @@ -226,7 +226,7 @@ pub const File = struct { if (base.tag != T.base_tag) return null; - return @fieldParentPtr(T, "base", base); + return @fieldParentPtr(*T, "base", base); } pub fn makeWritable(base: *File) !void { @@ -383,7 +383,7 @@ pub const File = struct { .c => unreachable, .nvptx => unreachable, inline else => |t| { - return @fieldParentPtr(t.Type(), "base", base).lowerUnnamedConst(val, decl_index); + return @fieldParentPtr(*t.Type(), "base", base).lowerUnnamedConst(val, decl_index); }, } } @@ -402,7 +402,7 @@ pub const File = struct { .c => unreachable, .nvptx => unreachable, inline else => |t| { - return @fieldParentPtr(t.Type(), "base", base).getGlobalSymbol(name, lib_name); + return @fieldParentPtr(*t.Type(), "base", base).getGlobalSymbol(name, lib_name); }, } } @@ -413,11 +413,11 @@ pub const File = struct { assert(decl.has_tv); switch (base.tag) { .c => { - return @fieldParentPtr(C, "base", base).updateDecl(module, decl_index); + return @fieldParentPtr(*C, "base", base).updateDecl(module, decl_index); }, inline else => |tag| { if (build_options.only_c) unreachable; - return @fieldParentPtr(tag.Type(), "base", base).updateDecl(module, decl_index); + return @fieldParentPtr(*tag.Type(), "base", base).updateDecl(module, decl_index); }, } } @@ -432,11 +432,11 @@ pub const File = struct { ) UpdateDeclError!void { switch (base.tag) { .c => { - return @fieldParentPtr(C, "base", base).updateFunc(module, func_index, air, liveness); + return @fieldParentPtr(*C, "base", base).updateFunc(module, func_index, air, liveness); }, inline else => |tag| { if (build_options.only_c) unreachable; - return @fieldParentPtr(tag.Type(), "base", base).updateFunc(module, func_index, air, liveness); + return @fieldParentPtr(*tag.Type(), "base", base).updateFunc(module, func_index, air, liveness); }, } } @@ -447,11 +447,11 @@ pub const File = struct { switch (base.tag) { .spirv, .nvptx => {}, .c => { - return @fieldParentPtr(C, "base", base).updateDeclLineNumber(module, decl_index); + return @fieldParentPtr(*C, "base", base).updateDeclLineNumber(module, decl_index); }, inline else => |tag| { if (build_options.only_c) unreachable; - return @fieldParentPtr(tag.Type(), "base", base).updateDeclLineNumber(module, decl_index); + return @fieldParentPtr(*tag.Type(), "base", base).updateDeclLineNumber(module, decl_index); }, } } @@ -473,11 +473,11 @@ pub const File = struct { base.releaseLock(); if (base.file) |f| f.close(); switch (base.tag) { - .c => @fieldParentPtr(C, "base", base).deinit(), + .c => @fieldParentPtr(*C, "base", base).deinit(), inline else => |tag| { if (build_options.only_c) unreachable; - @fieldParentPtr(tag.Type(), "base", base).deinit(); + @fieldParentPtr(*tag.Type(), "base", base).deinit(); }, } } @@ -560,7 +560,7 @@ pub const File = struct { pub fn flush(base: *File, arena: Allocator, prog_node: *std.Progress.Node) FlushError!void { if (build_options.only_c) { assert(base.tag == .c); - return @fieldParentPtr(C, "base", base).flush(arena, prog_node); + return @fieldParentPtr(*C, "base", base).flush(arena, prog_node); } const comp = base.comp; if (comp.clang_preprocessor_mode == .yes or comp.clang_preprocessor_mode == .pch) { @@ -587,7 +587,7 @@ pub const File = struct { } switch (base.tag) { inline else => |tag| { - return @fieldParentPtr(tag.Type(), "base", base).flush(arena, prog_node); + return @fieldParentPtr(*tag.Type(), "base", base).flush(arena, prog_node); }, } } @@ -597,11 +597,11 @@ pub const File = struct { pub fn flushModule(base: *File, arena: Allocator, prog_node: *std.Progress.Node) FlushError!void { switch (base.tag) { .c => { - return @fieldParentPtr(C, "base", base).flushModule(arena, prog_node); + return @fieldParentPtr(*C, "base", base).flushModule(arena, prog_node); }, inline else => |tag| { if (build_options.only_c) unreachable; - return @fieldParentPtr(tag.Type(), "base", base).flushModule(arena, prog_node); + return @fieldParentPtr(*tag.Type(), "base", base).flushModule(arena, prog_node); }, } } @@ -610,11 +610,11 @@ pub const File = struct { pub fn freeDecl(base: *File, decl_index: InternPool.DeclIndex) void { switch (base.tag) { .c => { - @fieldParentPtr(C, "base", base).freeDecl(decl_index); + @fieldParentPtr(*C, "base", base).freeDecl(decl_index); }, inline else => |tag| { if (build_options.only_c) unreachable; - @fieldParentPtr(tag.Type(), "base", base).freeDecl(decl_index); + @fieldParentPtr(*tag.Type(), "base", base).freeDecl(decl_index); }, } } @@ -636,11 +636,11 @@ pub const File = struct { ) UpdateExportsError!void { switch (base.tag) { .c => { - return @fieldParentPtr(C, "base", base).updateExports(module, exported, exports); + return @fieldParentPtr(*C, "base", base).updateExports(module, exported, exports); }, inline else => |tag| { if (build_options.only_c) unreachable; - return @fieldParentPtr(tag.Type(), "base", base).updateExports(module, exported, exports); + return @fieldParentPtr(*tag.Type(), "base", base).updateExports(module, exported, exports); }, } } @@ -664,7 +664,7 @@ pub const File = struct { .spirv => unreachable, .nvptx => unreachable, inline else => |tag| { - return @fieldParentPtr(tag.Type(), "base", base).getDeclVAddr(decl_index, reloc_info); + return @fieldParentPtr(*tag.Type(), "base", base).getDeclVAddr(decl_index, reloc_info); }, } } @@ -683,7 +683,7 @@ pub const File = struct { .spirv => unreachable, .nvptx => unreachable, inline else => |tag| { - return @fieldParentPtr(tag.Type(), "base", base).lowerAnonDecl(decl_val, decl_align, src_loc); + return @fieldParentPtr(*tag.Type(), "base", base).lowerAnonDecl(decl_val, decl_align, src_loc); }, } } @@ -695,7 +695,7 @@ pub const File = struct { .spirv => unreachable, .nvptx => unreachable, inline else => |tag| { - return @fieldParentPtr(tag.Type(), "base", base).getAnonDeclVAddr(decl_val, reloc_info); + return @fieldParentPtr(*tag.Type(), "base", base).getAnonDeclVAddr(decl_val, reloc_info); }, } } @@ -714,7 +714,7 @@ pub const File = struct { => {}, inline else => |tag| { - return @fieldParentPtr(tag.Type(), "base", base).deleteDeclExport(decl_index, name); + return @fieldParentPtr(*tag.Type(), "base", base).deleteDeclExport(decl_index, name); }, } } diff --git a/src/link/tapi/parse.zig b/src/link/tapi/parse.zig index 89e0b238244e..796cd8ab6a2b 100644 --- a/src/link/tapi/parse.zig +++ b/src/link/tapi/parse.zig @@ -35,28 +35,28 @@ pub const Node = struct { if (self.tag != T.base_tag) { return null; } - return @fieldParentPtr(T, "base", self); + return @fieldParentPtr(*const T, "base", self); } pub fn deinit(self: *Node, allocator: Allocator) void { switch (self.tag) { .doc => { - const parent = @fieldParentPtr(Node.Doc, "base", self); + const parent = @fieldParentPtr(*Node.Doc, "base", self); parent.deinit(allocator); allocator.destroy(parent); }, .map => { - const parent = @fieldParentPtr(Node.Map, "base", self); + const parent = @fieldParentPtr(*Node.Map, "base", self); parent.deinit(allocator); allocator.destroy(parent); }, .list => { - const parent = @fieldParentPtr(Node.List, "base", self); + const parent = @fieldParentPtr(*Node.List, "base", self); parent.deinit(allocator); allocator.destroy(parent); }, .value => { - const parent = @fieldParentPtr(Node.Value, "base", self); + const parent = @fieldParentPtr(*Node.Value, "base", self); parent.deinit(allocator); allocator.destroy(parent); }, @@ -70,10 +70,10 @@ pub const Node = struct { writer: anytype, ) !void { return switch (self.tag) { - .doc => @fieldParentPtr(Node.Doc, "base", self).format(fmt, options, writer), - .map => @fieldParentPtr(Node.Map, "base", self).format(fmt, options, writer), - .list => @fieldParentPtr(Node.List, "base", self).format(fmt, options, writer), - .value => @fieldParentPtr(Node.Value, "base", self).format(fmt, options, writer), + .doc => @fieldParentPtr(*Node.Doc, "base", self).format(fmt, options, writer), + .map => @fieldParentPtr(*Node.Map, "base", self).format(fmt, options, writer), + .list => @fieldParentPtr(*Node.List, "base", self).format(fmt, options, writer), + .value => @fieldParentPtr(*Node.Value, "base", self).format(fmt, options, writer), }; } diff --git a/src/register_manager.zig b/src/register_manager.zig index 62aeb78fc73b..333499f1427a 100644 --- a/src/register_manager.zig +++ b/src/register_manager.zig @@ -59,7 +59,7 @@ pub fn RegisterManager( pub const RegisterBitSet = StaticBitSet(tracked_registers.len); fn getFunction(self: *Self) *Function { - return @fieldParentPtr(Function, "register_manager", self); + return @alignCast(@fieldParentPtr(*align(1) Function, "register_manager", self)); } fn excludeRegister(reg: Register, register_class: RegisterBitSet) bool { diff --git a/test/standalone/cmakedefine/build.zig b/test/standalone/cmakedefine/build.zig index 52fda369a647..ceb1ad847adc 100644 --- a/test/standalone/cmakedefine/build.zig +++ b/test/standalone/cmakedefine/build.zig @@ -86,7 +86,7 @@ fn compare_headers(step: *std.Build.Step, prog_node: *std.Progress.Node) !void { const expected_fmt = "expected_{s}"; for (step.dependencies.items) |config_header_step| { - const config_header = @fieldParentPtr(ConfigHeader, "step", config_header_step); + const config_header = @fieldParentPtr(*ConfigHeader, "step", config_header_step); const zig_header_path = config_header.output_file.path orelse @panic("Could not locate header file"); From 17673dcd6e3ffeb25fc9dc1cfc72334ab4e71b37 Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Tue, 19 Mar 2024 11:55:15 +0100 Subject: [PATCH 5/9] AstGen: use RLS to infer the first argument of `@fieldParentPtr` --- lib/std/zig/AstGen.zig | 95 ++++++++++++------- lib/std/zig/AstRlAnnotate.zig | 2 +- lib/std/zig/BuiltinFn.zig | 2 +- lib/std/zig/Zir.zig | 19 ++-- src/Sema.zig | 66 ++++++------- src/print_zir.zig | 23 +++-- .../increase_pointer_alignment_in_ptrCast.zig | 2 +- .../nested_ptr_cast_bad_operand.zig | 2 +- .../ptrCast_discards_const_qualifier.zig | 2 +- 9 files changed, 128 insertions(+), 85 deletions(-) diff --git a/lib/std/zig/AstGen.zig b/lib/std/zig/AstGen.zig index 2fe67628d342..574a8e46af78 100644 --- a/lib/std/zig/AstGen.zig +++ b/lib/std/zig/AstGen.zig @@ -316,8 +316,7 @@ const ResultInfo = struct { }; /// Find the result type for a cast builtin given the result location. - /// If the location does not have a known result type, emits an error on - /// the given node. + /// If the location does not have a known result type, returns `null`. fn resultType(rl: Loc, gz: *GenZir, node: Ast.Node.Index) !?Zir.Inst.Ref { return switch (rl) { .discard, .none, .ref, .inferred_ptr, .destructure => null, @@ -330,6 +329,9 @@ const ResultInfo = struct { }; } + /// Find the result type for a cast builtin given the result location. + /// If the location does not have a known result type, emits an error on + /// the given node. fn resultTypeForCast(rl: Loc, gz: *GenZir, node: Ast.Node.Index, builtin_name: []const u8) !Zir.Inst.Ref { const astgen = gz.astgen; if (try rl.resultType(gz, node)) |ty| return ty; @@ -2786,7 +2788,6 @@ fn addEnsureResult(gz: *GenZir, maybe_unused_result: Zir.Inst.Ref, statement: As .atomic_load, .atomic_rmw, .mul_add, - .field_parent_ptr, .max, .min, .c_import, @@ -8853,6 +8854,7 @@ fn ptrCast( const node_datas = tree.nodes.items(.data); const node_tags = tree.nodes.items(.tag); + const FlagsInt = @typeInfo(Zir.Inst.FullPtrCastFlags).Struct.backing_integer.?; var flags: Zir.Inst.FullPtrCastFlags = .{}; // Note that all pointer cast builtins have one parameter, so we only need @@ -8870,36 +8872,62 @@ fn ptrCast( } if (node_datas[node].lhs == 0) break; // 0 args - if (node_datas[node].rhs != 0) break; // 2 args const builtin_token = main_tokens[node]; const builtin_name = tree.tokenSlice(builtin_token); const info = BuiltinFn.list.get(builtin_name) orelse break; - if (info.param_count != 1) break; + if (node_datas[node].rhs == 0) { + // 1 arg + if (info.param_count != 1) break; + + switch (info.tag) { + else => break, + inline .ptr_cast, + .align_cast, + .addrspace_cast, + .const_cast, + .volatile_cast, + => |tag| { + if (@field(flags, @tagName(tag))) { + return astgen.failNode(node, "redundant {s}", .{builtin_name}); + } + @field(flags, @tagName(tag)) = true; + }, + } - switch (info.tag) { - else => break, - inline .ptr_cast, - .align_cast, - .addrspace_cast, - .const_cast, - .volatile_cast, - => |tag| { - if (@field(flags, @tagName(tag))) { - return astgen.failNode(node, "redundant {s}", .{builtin_name}); - } - @field(flags, @tagName(tag)) = true; - }, + node = node_datas[node].lhs; + } else { + // 2 args + if (info.param_count != 2) break; + + switch (info.tag) { + else => break, + .field_parent_ptr => { + if (flags.ptr_cast) break; + + const flags_int: FlagsInt = @bitCast(flags); + const cursor = maybeAdvanceSourceCursorToMainToken(gz, root_node); + const parent_ptr_type = try ri.rl.resultTypeForCast(gz, root_node, "@alignCast"); + const field_name = try comptimeExpr(gz, scope, .{ .rl = .{ .coerced_ty = .slice_const_u8_type } }, node_datas[node].lhs); + const field_ptr = try expr(gz, scope, .{ .rl = .none }, node_datas[node].rhs); + try emitDbgStmt(gz, cursor); + const result = try gz.addExtendedPayloadSmall(.field_parent_ptr, flags_int, Zir.Inst.FieldParentPtr{ + .src_node = gz.nodeIndexToRelative(node), + .parent_ptr_type = parent_ptr_type, + .field_name = field_name, + .field_ptr = field_ptr, + }); + return rvalue(gz, ri, result, root_node); + }, + } } - - node = node_datas[node].lhs; } - const flags_i: u5 = @bitCast(flags); - assert(flags_i != 0); + const flags_int: FlagsInt = @bitCast(flags); + assert(flags_int != 0); const ptr_only: Zir.Inst.FullPtrCastFlags = .{ .ptr_cast = true }; - if (flags_i == @as(u5, @bitCast(ptr_only))) { + if (flags_int == @as(FlagsInt, @bitCast(ptr_only))) { // Special case: simpler representation return typeCast(gz, scope, ri, root_node, node, .ptr_cast, "@ptrCast"); } @@ -8908,12 +8936,12 @@ fn ptrCast( .const_cast = true, .volatile_cast = true, }; - if ((flags_i & ~@as(u5, @bitCast(no_result_ty_flags))) == 0) { + if ((flags_int & ~@as(FlagsInt, @bitCast(no_result_ty_flags))) == 0) { // Result type not needed const cursor = maybeAdvanceSourceCursorToMainToken(gz, root_node); const operand = try expr(gz, scope, .{ .rl = .none }, node); try emitDbgStmt(gz, cursor); - const result = try gz.addExtendedPayloadSmall(.ptr_cast_no_dest, flags_i, Zir.Inst.UnNode{ + const result = try gz.addExtendedPayloadSmall(.ptr_cast_no_dest, flags_int, Zir.Inst.UnNode{ .node = gz.nodeIndexToRelative(root_node), .operand = operand, }); @@ -8926,7 +8954,7 @@ fn ptrCast( const result_type = try ri.rl.resultTypeForCast(gz, root_node, flags.needResultTypeBuiltinName()); const operand = try expr(gz, scope, .{ .rl = .none }, node); try emitDbgStmt(gz, cursor); - const result = try gz.addExtendedPayloadSmall(.ptr_cast_full, flags_i, Zir.Inst.BinNode{ + const result = try gz.addExtendedPayloadSmall(.ptr_cast_full, flags_int, Zir.Inst.BinNode{ .node = gz.nodeIndexToRelative(root_node), .lhs = result_type, .rhs = operand, @@ -9379,7 +9407,7 @@ fn builtinCall( try emitDbgNode(gz, node); const result = try gz.addExtendedPayload(.error_cast, Zir.Inst.BinNode{ - .lhs = try ri.rl.resultTypeForCast(gz, node, "@errorCast"), + .lhs = try ri.rl.resultTypeForCast(gz, node, builtin_name), .rhs = try expr(gz, scope, .{ .rl = .none }, params[0]), .node = gz.nodeIndexToRelative(node), }); @@ -9452,7 +9480,7 @@ fn builtinCall( }, .splat => { - const result_type = try ri.rl.resultTypeForCast(gz, node, "@splat"); + const result_type = try ri.rl.resultTypeForCast(gz, node, builtin_name); const elem_type = try gz.addUnNode(.vector_elem_type, result_type, node); const scalar = try expr(gz, scope, .{ .rl = .{ .ty = elem_type } }, params[0]); const result = try gz.addPlNode(.splat, node, Zir.Inst.Bin{ @@ -9537,12 +9565,13 @@ fn builtinCall( return rvalue(gz, ri, result, node); }, .field_parent_ptr => { - const parent_type = try typeExpr(gz, scope, params[0]); - const field_name = try comptimeExpr(gz, scope, .{ .rl = .{ .coerced_ty = .slice_const_u8_type } }, params[1]); - const result = try gz.addPlNode(.field_parent_ptr, node, Zir.Inst.FieldParentPtr{ - .parent_type = parent_type, + const parent_ptr_type = try ri.rl.resultTypeForCast(gz, node, builtin_name); + const field_name = try comptimeExpr(gz, scope, .{ .rl = .{ .coerced_ty = .slice_const_u8_type } }, params[0]); + const result = try gz.addExtendedPayloadSmall(.field_parent_ptr, 0, Zir.Inst.FieldParentPtr{ + .src_node = gz.nodeIndexToRelative(node), + .parent_ptr_type = parent_ptr_type, .field_name = field_name, - .field_ptr = try expr(gz, scope, .{ .rl = .none }, params[2]), + .field_ptr = try expr(gz, scope, .{ .rl = .none }, params[1]), }); return rvalue(gz, ri, result, node); }, diff --git a/lib/std/zig/AstRlAnnotate.zig b/lib/std/zig/AstRlAnnotate.zig index 7e75b5c14810..4a1203ca09fc 100644 --- a/lib/std/zig/AstRlAnnotate.zig +++ b/lib/std/zig/AstRlAnnotate.zig @@ -911,6 +911,7 @@ fn builtinCall(astrl: *AstRlAnnotate, block: ?*Block, ri: ResultInfo, node: Ast. .work_item_id, .work_group_size, .work_group_id, + .field_parent_ptr, => { _ = try astrl.expr(args[0], block, ResultInfo.type_only); return false; @@ -976,7 +977,6 @@ fn builtinCall(astrl: *AstRlAnnotate, block: ?*Block, ri: ResultInfo, node: Ast. }, .bit_offset_of, .offset_of, - .field_parent_ptr, .has_decl, .has_field, .field, diff --git a/lib/std/zig/BuiltinFn.zig b/lib/std/zig/BuiltinFn.zig index decb3cf7fd8e..11d6a17303c8 100644 --- a/lib/std/zig/BuiltinFn.zig +++ b/lib/std/zig/BuiltinFn.zig @@ -504,7 +504,7 @@ pub const list = list: { "@fieldParentPtr", .{ .tag = .field_parent_ptr, - .param_count = 3, + .param_count = 2, }, }, .{ diff --git a/lib/std/zig/Zir.zig b/lib/std/zig/Zir.zig index 8aa4c0c8c53e..db082b7f8e6f 100644 --- a/lib/std/zig/Zir.zig +++ b/lib/std/zig/Zir.zig @@ -940,9 +940,6 @@ pub const Inst = struct { /// The addend communicates the type of the builtin. /// The mulends need to be coerced to the same type. mul_add, - /// Implements the `@fieldParentPtr` builtin. - /// Uses the `pl_node` union field with payload `FieldParentPtr`. - field_parent_ptr, /// Implements the `@memcpy` builtin. /// Uses the `pl_node` union field with payload `Bin`. memcpy, @@ -1230,7 +1227,6 @@ pub const Inst = struct { .atomic_store, .mul_add, .builtin_call, - .field_parent_ptr, .max, .memcpy, .memset, @@ -1522,7 +1518,6 @@ pub const Inst = struct { .atomic_rmw, .mul_add, .builtin_call, - .field_parent_ptr, .max, .min, .c_import, @@ -1794,7 +1789,6 @@ pub const Inst = struct { .atomic_store = .pl_node, .mul_add = .pl_node, .builtin_call = .pl_node, - .field_parent_ptr = .pl_node, .max = .pl_node, .memcpy = .pl_node, .memset = .pl_node, @@ -2064,6 +2058,12 @@ pub const Inst = struct { /// with a specific value. For instance, this is used for the capture of an `errdefer`. /// This should never appear in a body. value_placeholder, + /// Implements the `@fieldParentPtr` builtin. + /// `operand` is payload index to `FieldParentPtr`. + /// `small` contains `FullPtrCastFlags`. + /// Guaranteed to not have the `ptr_cast` flag. + /// Uses the `pl_node` union field with payload `FieldParentPtr`. + field_parent_ptr, pub const InstData = struct { opcode: Extended, @@ -3363,9 +3363,14 @@ pub const Inst = struct { }; pub const FieldParentPtr = struct { - parent_type: Ref, + src_node: i32, + parent_ptr_type: Ref, field_name: Ref, field_ptr: Ref, + + pub fn src(self: FieldParentPtr) LazySrcLoc { + return LazySrcLoc.nodeOffset(self.src_node); + } }; pub const Shuffle = struct { diff --git a/src/Sema.zig b/src/Sema.zig index 189a9c4d1192..6061dbfea42c 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -1131,7 +1131,6 @@ fn analyzeBodyInner( .atomic_rmw => try sema.zirAtomicRmw(block, inst), .mul_add => try sema.zirMulAdd(block, inst), .builtin_call => try sema.zirBuiltinCall(block, inst), - .field_parent_ptr => try sema.zirFieldParentPtr(block, inst), .@"resume" => try sema.zirResume(block, inst), .@"await" => try sema.zirAwait(block, inst), .for_len => try sema.zirForLen(block, inst), @@ -1296,6 +1295,7 @@ fn analyzeBodyInner( continue; }, .value_placeholder => unreachable, // never appears in a body + .field_parent_ptr => try sema.zirFieldParentPtr(block, extended), }; }, @@ -22757,10 +22757,8 @@ fn zirErrorCast(sema: *Sema, block: *Block, extended: Zir.Inst.Extended.InstData } fn zirPtrCastFull(sema: *Sema, block: *Block, extended: Zir.Inst.Extended.InstData) CompileError!Air.Inst.Ref { - const flags: Zir.Inst.FullPtrCastFlags = @bitCast(@as( - @typeInfo(Zir.Inst.FullPtrCastFlags).Struct.backing_integer.?, - @truncate(extended.small), - )); + const FlagsInt = @typeInfo(Zir.Inst.FullPtrCastFlags).Struct.backing_integer.?; + const flags: Zir.Inst.FullPtrCastFlags = @bitCast(@as(FlagsInt, @truncate(extended.small))); const extra = sema.code.extraData(Zir.Inst.BinNode, extended.operand).data; const src = LazySrcLoc.nodeOffset(extra.node); const operand_src: LazySrcLoc = .{ .node_offset_ptrcast_operand = extra.node }; @@ -22773,6 +22771,7 @@ fn zirPtrCastFull(sema: *Sema, block: *Block, extended: Zir.Inst.Extended.InstDa operand, operand_src, dest_ty, + flags.needResultTypeBuiltinName(), ); } @@ -22791,6 +22790,7 @@ fn zirPtrCast(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air operand, operand_src, dest_ty, + "@ptrCast", ); } @@ -22802,6 +22802,7 @@ fn ptrCastFull( operand: Air.Inst.Ref, operand_src: LazySrcLoc, dest_ty: Type, + operation: []const u8, ) CompileError!Air.Inst.Ref { const mod = sema.mod; const operand_ty = sema.typeOf(operand); @@ -22834,7 +22835,7 @@ fn ptrCastFull( }; const dest_elem_size = Type.fromInterned(dest_info.child).abiSize(mod); if (src_elem_size != dest_elem_size) { - return sema.fail(block, src, "TODO: implement @ptrCast between slices changing the length", .{}); + return sema.fail(block, src, "TODO: implement {s} between slices changing the length", .{operation}); } } @@ -22983,7 +22984,7 @@ fn ptrCastFull( if (!flags.align_cast) { if (dest_align.compare(.gt, src_align)) { return sema.failWithOwnedErrorMsg(block, msg: { - const msg = try sema.errMsg(block, src, "cast increases pointer alignment", .{}); + const msg = try sema.errMsg(block, src, "{s} increases pointer alignment", .{operation}); errdefer msg.destroy(sema.gpa); try sema.errNote(block, operand_src, msg, "'{}' has alignment '{d}'", .{ operand_ty.fmt(mod), src_align.toByteUnits() orelse 0, @@ -23000,7 +23001,7 @@ fn ptrCastFull( if (!flags.addrspace_cast) { if (src_info.flags.address_space != dest_info.flags.address_space) { return sema.failWithOwnedErrorMsg(block, msg: { - const msg = try sema.errMsg(block, src, "cast changes pointer address space", .{}); + const msg = try sema.errMsg(block, src, "{s} changes pointer address space", .{operation}); errdefer msg.destroy(sema.gpa); try sema.errNote(block, operand_src, msg, "'{}' has address space '{s}'", .{ operand_ty.fmt(mod), @tagName(src_info.flags.address_space), @@ -23030,7 +23031,7 @@ fn ptrCastFull( if (!flags.const_cast) { if (src_info.flags.is_const and !dest_info.flags.is_const) { return sema.failWithOwnedErrorMsg(block, msg: { - const msg = try sema.errMsg(block, src, "cast discards const qualifier", .{}); + const msg = try sema.errMsg(block, src, "{s} discards const qualifier", .{operation}); errdefer msg.destroy(sema.gpa); try sema.errNote(block, src, msg, "use @constCast to discard const qualifier", .{}); break :msg msg; @@ -23041,7 +23042,7 @@ fn ptrCastFull( if (!flags.volatile_cast) { if (src_info.flags.is_volatile and !dest_info.flags.is_volatile) { return sema.failWithOwnedErrorMsg(block, msg: { - const msg = try sema.errMsg(block, src, "cast discards volatile qualifier", .{}); + const msg = try sema.errMsg(block, src, "{s} discards volatile qualifier", .{operation}); errdefer msg.destroy(sema.gpa); try sema.errNote(block, src, msg, "use @volatileCast to discard volatile qualifier", .{}); break :msg msg; @@ -23187,10 +23188,8 @@ fn ptrCastFull( fn zirPtrCastNoDest(sema: *Sema, block: *Block, extended: Zir.Inst.Extended.InstData) CompileError!Air.Inst.Ref { const mod = sema.mod; - const flags: Zir.Inst.FullPtrCastFlags = @bitCast(@as( - @typeInfo(Zir.Inst.FullPtrCastFlags).Struct.backing_integer.?, - @truncate(extended.small), - )); + const FlagsInt = @typeInfo(Zir.Inst.FullPtrCastFlags).Struct.backing_integer.?; + const flags: Zir.Inst.FullPtrCastFlags = @bitCast(@as(FlagsInt, @truncate(extended.small))); const extra = sema.code.extraData(Zir.Inst.UnNode, extended.operand).data; const src = LazySrcLoc.nodeOffset(extra.node); const operand_src: LazySrcLoc = .{ .node_offset_ptrcast_operand = extra.node }; @@ -24859,25 +24858,28 @@ fn zirBuiltinCall(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError ); } -fn zirFieldParentPtr(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.Inst.Ref { +fn zirFieldParentPtr(sema: *Sema, block: *Block, extended: Zir.Inst.Extended.InstData) CompileError!Air.Inst.Ref { const mod = sema.mod; const ip = &mod.intern_pool; - const inst_data = sema.code.instructions.items(.data)[@intFromEnum(inst)].pl_node; - const extra = sema.code.extraData(Zir.Inst.FieldParentPtr, inst_data.payload_index).data; - const inst_src = inst_data.src(); - const parent_ptr_ty_src: LazySrcLoc = .{ .node_offset_builtin_call_arg0 = inst_data.src_node }; - const field_name_src: LazySrcLoc = .{ .node_offset_builtin_call_arg1 = inst_data.src_node }; - const field_ptr_src: LazySrcLoc = .{ .node_offset_builtin_call_arg2 = inst_data.src_node }; - - const parent_ptr_ty = try sema.resolveType(block, parent_ptr_ty_src, extra.parent_type); - try sema.checkPtrType(block, parent_ptr_ty_src, parent_ptr_ty, false); - if (!parent_ptr_ty.isSinglePointer(mod)) { - return sema.fail(block, parent_ptr_ty_src, "expected single pointer type, found '{}'", .{parent_ptr_ty.fmt(sema.mod)}); - } - const parent_ty = parent_ptr_ty.childType(mod); - if (parent_ty.zigTypeTag(mod) != .Struct and parent_ty.zigTypeTag(mod) != .Union) { - return sema.fail(block, parent_ptr_ty_src, "expected pointer to struct or union type, found '{}'", .{parent_ptr_ty.fmt(sema.mod)}); + const extra = sema.code.extraData(Zir.Inst.FieldParentPtr, extended.operand).data; + const FlagsInt = @typeInfo(Zir.Inst.FullPtrCastFlags).Struct.backing_integer.?; + const flags: Zir.Inst.FullPtrCastFlags = @bitCast(@as(FlagsInt, @truncate(extended.small))); + assert(!flags.ptr_cast); + const inst_src = extra.src(); + const field_name_src: LazySrcLoc = .{ .node_offset_builtin_call_arg0 = extra.src_node }; + const field_ptr_src: LazySrcLoc = .{ .node_offset_builtin_call_arg1 = extra.src_node }; + + const parent_ptr_ty = try sema.resolveDestType(block, inst_src, extra.parent_ptr_type, .remove_eu, "@fieldParentPtr"); + try sema.checkPtrType(block, inst_src, parent_ptr_ty, true); + const parent_ptr_info = parent_ptr_ty.ptrInfo(mod); + if (parent_ptr_info.flags.size != .One) { + return sema.fail(block, inst_src, "expected single pointer type, found '{}'", .{parent_ptr_ty.fmt(sema.mod)}); + } + const parent_ty = Type.fromInterned(parent_ptr_info.child); + switch (parent_ty.zigTypeTag(mod)) { + .Struct, .Union => {}, + else => return sema.fail(block, inst_src, "expected pointer to struct or union type, found '{}'", .{parent_ptr_ty.fmt(sema.mod)}), } try sema.resolveTypeLayout(parent_ty); @@ -24916,7 +24918,7 @@ fn zirFieldParentPtr(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileEr .is_allowzero = field_ptr_info.flags.is_allowzero, .address_space = field_ptr_info.flags.address_space, }, - .packed_offset = parent_ptr_ty.ptrInfo(mod).packed_offset, + .packed_offset = parent_ptr_info.packed_offset, }; const field_ty = parent_ty.structFieldType(field_index, mod); var actual_field_ptr_info: InternPool.Key.PtrType = .{ @@ -25000,7 +25002,7 @@ fn zirFieldParentPtr(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileEr } }, }); }; - return sema.coerce(block, parent_ptr_ty, result, inst_src); + return sema.ptrCastFull(block, flags, inst_src, result, inst_src, parent_ptr_ty, "@fieldParentPtr"); } fn zirMinMax( diff --git a/src/print_zir.zig b/src/print_zir.zig index e20eff63281e..a2929c32d9df 100644 --- a/src/print_zir.zig +++ b/src/print_zir.zig @@ -355,7 +355,6 @@ const Writer = struct { .atomic_rmw => try self.writeAtomicRmw(stream, inst), .shuffle => try self.writeShuffle(stream, inst), .mul_add => try self.writeMulAdd(stream, inst), - .field_parent_ptr => try self.writeFieldParentPtr(stream, inst), .builtin_call => try self.writeBuiltinCall(stream, inst), .field_type_ref => try self.writeFieldTypeRef(stream, inst), @@ -609,6 +608,7 @@ const Writer = struct { .restore_err_ret_index => try self.writeRestoreErrRetIndex(stream, extended), .closure_get => try self.writeClosureGet(stream, extended), + .field_parent_ptr => try self.writeFieldParentPtr(stream, extended), } } @@ -901,16 +901,21 @@ const Writer = struct { try self.writeSrc(stream, inst_data.src()); } - fn writeFieldParentPtr(self: *Writer, stream: anytype, inst: Zir.Inst.Index) !void { - const inst_data = self.code.instructions.items(.data)[@intFromEnum(inst)].pl_node; - const extra = self.code.extraData(Zir.Inst.FieldParentPtr, inst_data.payload_index).data; - try self.writeInstRef(stream, extra.parent_type); + fn writeFieldParentPtr(self: *Writer, stream: anytype, extended: Zir.Inst.Extended.InstData) !void { + const extra = self.code.extraData(Zir.Inst.FieldParentPtr, extended.operand).data; + const FlagsInt = @typeInfo(Zir.Inst.FullPtrCastFlags).Struct.backing_integer.?; + const flags: Zir.Inst.FullPtrCastFlags = @bitCast(@as(FlagsInt, @truncate(extended.small))); + if (flags.align_cast) try stream.writeAll("align_cast, "); + if (flags.addrspace_cast) try stream.writeAll("addrspace_cast, "); + if (flags.const_cast) try stream.writeAll("const_cast, "); + if (flags.volatile_cast) try stream.writeAll("volatile_cast, "); + try self.writeInstRef(stream, extra.parent_ptr_type); try stream.writeAll(", "); try self.writeInstRef(stream, extra.field_name); try stream.writeAll(", "); try self.writeInstRef(stream, extra.field_ptr); try stream.writeAll(") "); - try self.writeSrc(stream, inst_data.src()); + try self.writeSrc(stream, extra.src()); } fn writeBuiltinAsyncCall(self: *Writer, stream: anytype, extended: Zir.Inst.Extended.InstData) !void { @@ -1069,7 +1074,8 @@ const Writer = struct { } fn writePtrCastFull(self: *Writer, stream: anytype, extended: Zir.Inst.Extended.InstData) !void { - const flags = @as(Zir.Inst.FullPtrCastFlags, @bitCast(@as(u5, @truncate(extended.small)))); + const FlagsInt = @typeInfo(Zir.Inst.FullPtrCastFlags).Struct.backing_integer.?; + const flags: Zir.Inst.FullPtrCastFlags = @bitCast(@as(FlagsInt, @truncate(extended.small))); const extra = self.code.extraData(Zir.Inst.BinNode, extended.operand).data; const src = LazySrcLoc.nodeOffset(extra.node); if (flags.ptr_cast) try stream.writeAll("ptr_cast, "); @@ -1085,7 +1091,8 @@ const Writer = struct { } fn writePtrCastNoDest(self: *Writer, stream: anytype, extended: Zir.Inst.Extended.InstData) !void { - const flags = @as(Zir.Inst.FullPtrCastFlags, @bitCast(@as(u5, @truncate(extended.small)))); + const FlagsInt = @typeInfo(Zir.Inst.FullPtrCastFlags).Struct.backing_integer.?; + const flags: Zir.Inst.FullPtrCastFlags = @bitCast(@as(FlagsInt, @truncate(extended.small))); const extra = self.code.extraData(Zir.Inst.UnNode, extended.operand).data; const src = LazySrcLoc.nodeOffset(extra.node); if (flags.const_cast) try stream.writeAll("const_cast, "); diff --git a/test/cases/compile_errors/increase_pointer_alignment_in_ptrCast.zig b/test/cases/compile_errors/increase_pointer_alignment_in_ptrCast.zig index 22bd90b0684c..bb52c544214b 100644 --- a/test/cases/compile_errors/increase_pointer_alignment_in_ptrCast.zig +++ b/test/cases/compile_errors/increase_pointer_alignment_in_ptrCast.zig @@ -8,7 +8,7 @@ export fn entry() u32 { // backend=stage2 // target=native // -// :3:23: error: cast increases pointer alignment +// :3:23: error: @ptrCast increases pointer alignment // :3:32: note: '*u8' has alignment '1' // :3:23: note: '*u32' has alignment '4' // :3:23: note: use @alignCast to assert pointer alignment diff --git a/test/cases/compile_errors/nested_ptr_cast_bad_operand.zig b/test/cases/compile_errors/nested_ptr_cast_bad_operand.zig index ec7ee3075ce4..ca594aa37a00 100644 --- a/test/cases/compile_errors/nested_ptr_cast_bad_operand.zig +++ b/test/cases/compile_errors/nested_ptr_cast_bad_operand.zig @@ -16,7 +16,7 @@ export fn c() void { // // :3:45: error: null pointer casted to type '*const u32' // :6:34: error: expected pointer type, found 'comptime_int' -// :9:22: error: cast increases pointer alignment +// :9:22: error: @ptrCast increases pointer alignment // :9:71: note: '?*const u8' has alignment '1' // :9:22: note: '?*f32' has alignment '4' // :9:22: note: use @alignCast to assert pointer alignment diff --git a/test/cases/compile_errors/ptrCast_discards_const_qualifier.zig b/test/cases/compile_errors/ptrCast_discards_const_qualifier.zig index a704ea456b41..0c4bb0a1e24a 100644 --- a/test/cases/compile_errors/ptrCast_discards_const_qualifier.zig +++ b/test/cases/compile_errors/ptrCast_discards_const_qualifier.zig @@ -8,5 +8,5 @@ export fn entry() void { // backend=stage2 // target=native // -// :3:21: error: cast discards const qualifier +// :3:21: error: @ptrCast discards const qualifier // :3:21: note: use @constCast to discard const qualifier From eb723a407073592db858cf14bece8643bec2a771 Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Tue, 19 Mar 2024 12:46:38 +0100 Subject: [PATCH 6/9] Update uses of `@fieldParentPtr` to use RLS --- doc/langref.html.in | 5 +- lib/compiler/aro/aro/pragmas/gcc.zig | 12 +- lib/compiler/aro/aro/pragmas/message.zig | 2 +- lib/compiler/aro/aro/pragmas/once.zig | 6 +- lib/compiler/aro/aro/pragmas/pack.zig | 4 +- lib/compiler/aro/backend/Object.zig | 10 +- lib/compiler/aro_translate_c.zig | 20 +- lib/compiler/aro_translate_c/ast.zig | 16 +- lib/compiler/resinator/ast.zig | 173 ++++--- lib/compiler/resinator/compile.zig | 66 +-- lib/compiler/resinator/parse.zig | 2 +- lib/docs/wasm/Walk.zig | 12 +- lib/std/Build.zig | 4 +- lib/std/Build/Step.zig | 2 +- lib/std/Build/Step/CheckFile.zig | 2 +- lib/std/Build/Step/CheckObject.zig | 2 +- lib/std/Build/Step/Compile.zig | 2 +- lib/std/Build/Step/ConfigHeader.zig | 2 +- lib/std/Build/Step/Fmt.zig | 2 +- lib/std/Build/Step/InstallArtifact.zig | 2 +- lib/std/Build/Step/InstallDir.zig | 2 +- lib/std/Build/Step/InstallFile.zig | 2 +- lib/std/Build/Step/ObjCopy.zig | 2 +- lib/std/Build/Step/Options.zig | 2 +- lib/std/Build/Step/RemoveDir.zig | 2 +- lib/std/Build/Step/Run.zig | 2 +- lib/std/Build/Step/TranslateC.zig | 2 +- lib/std/Build/Step/WriteFile.zig | 2 +- lib/std/Thread/Futex.zig | 6 +- lib/std/Thread/Pool.zig | 4 +- lib/std/http/Client.zig | 2 +- lib/std/zig.zig | 1 + lib/std/zig/AstGen.zig | 6 +- lib/std/zig/c_translation.zig | 2 +- src/Module.zig | 4 +- src/link.zig | 95 ++-- src/link/tapi/parse.zig | 39 +- src/register_manager.zig | 2 +- test/behavior/align.zig | 2 +- test/behavior/field_parent_ptr.zig | 464 +++++++++--------- test/behavior/struct.zig | 12 +- test/behavior/tuple.zig | 4 +- .../fieldParentPtr-bad_field_name.zig | 4 +- ...comptime_field_ptr_not_based_on_struct.zig | 2 +- ...ldParentPtr-comptime_wrong_field_index.zig | 4 +- ...ParentPtr-field_pointer_is_not_pointer.zig | 6 +- .../fieldParentPtr-non_pointer.zig | 6 +- .../fieldParentPtr_on_comptime_field.zig | 4 +- test/standalone/cmakedefine/build.zig | 2 +- 49 files changed, 494 insertions(+), 539 deletions(-) diff --git a/doc/langref.html.in b/doc/langref.html.in index 4ad6b3f866d9..f49457403633 100644 --- a/doc/langref.html.in +++ b/doc/langref.html.in @@ -3107,7 +3107,7 @@ test "struct namespaced variable" { // struct field order is determined by the compiler for optimal performance. // however, you can still calculate a struct base pointer given a field pointer: fn setYBasedOnX(x: *f32, y: f32) void { - const point = @fieldParentPtr(Point, "x", x); + const point: *Point = @fieldParentPtr("x", x); point.y = y; } test "field parent pointer" { @@ -8757,8 +8757,7 @@ test "decl access by string" { {#header_close#} {#header_open|@fieldParentPtr#} -
{#syntax#}@fieldParentPtr(comptime ParentType: type, comptime field_name: []const u8,
-    field_ptr: *T) *ParentType{#endsyntax#}
+
{#syntax#}@fieldParentPtr(comptime field_name: []const u8, field_ptr: *T) anytype{#endsyntax#}

Given a pointer to a field, returns the base pointer of a struct.

diff --git a/lib/compiler/aro/aro/pragmas/gcc.zig b/lib/compiler/aro/aro/pragmas/gcc.zig index f73877c69bb1..91ab750b4c81 100644 --- a/lib/compiler/aro/aro/pragmas/gcc.zig +++ b/lib/compiler/aro/aro/pragmas/gcc.zig @@ -37,18 +37,18 @@ const Directive = enum { }; fn beforePreprocess(pragma: *Pragma, comp: *Compilation) void { - var self = @fieldParentPtr(*GCC, "pragma", pragma); + var self: *GCC = @fieldParentPtr("pragma", pragma); self.original_options = comp.diagnostics.options; } fn beforeParse(pragma: *Pragma, comp: *Compilation) void { - var self = @fieldParentPtr(*GCC, "pragma", pragma); + var self: *GCC = @fieldParentPtr("pragma", pragma); comp.diagnostics.options = self.original_options; self.options_stack.items.len = 0; } fn afterParse(pragma: *Pragma, comp: *Compilation) void { - var self = @fieldParentPtr(*GCC, "pragma", pragma); + var self: *GCC = @fieldParentPtr("pragma", pragma); comp.diagnostics.options = self.original_options; self.options_stack.items.len = 0; } @@ -60,7 +60,7 @@ pub fn init(allocator: mem.Allocator) !*Pragma { } fn deinit(pragma: *Pragma, comp: *Compilation) void { - var self = @fieldParentPtr(*GCC, "pragma", pragma); + var self: *GCC = @fieldParentPtr("pragma", pragma); self.options_stack.deinit(comp.gpa); comp.gpa.destroy(self); } @@ -108,7 +108,7 @@ fn diagnosticHandler(self: *GCC, pp: *Preprocessor, start_idx: TokenIndex) Pragm } fn preprocessorHandler(pragma: *Pragma, pp: *Preprocessor, start_idx: TokenIndex) Pragma.Error!void { - var self = @fieldParentPtr(*GCC, "pragma", pragma); + var self: *GCC = @fieldParentPtr("pragma", pragma); const directive_tok = pp.tokens.get(start_idx + 1); if (directive_tok.id == .nl) return; @@ -174,7 +174,7 @@ fn preprocessorHandler(pragma: *Pragma, pp: *Preprocessor, start_idx: TokenIndex } fn parserHandler(pragma: *Pragma, p: *Parser, start_idx: TokenIndex) Compilation.Error!void { - var self = @fieldParentPtr(*GCC, "pragma", pragma); + var self: *GCC = @fieldParentPtr("pragma", pragma); const directive_tok = p.pp.tokens.get(start_idx + 1); if (directive_tok.id == .nl) return; const name = p.pp.expandedSlice(directive_tok); diff --git a/lib/compiler/aro/aro/pragmas/message.zig b/lib/compiler/aro/aro/pragmas/message.zig index 6ad6082c3d20..a364c6d8c12a 100644 --- a/lib/compiler/aro/aro/pragmas/message.zig +++ b/lib/compiler/aro/aro/pragmas/message.zig @@ -22,7 +22,7 @@ pub fn init(allocator: mem.Allocator) !*Pragma { } fn deinit(pragma: *Pragma, comp: *Compilation) void { - const self = @fieldParentPtr(*Message, "pragma", pragma); + const self: *Message = @fieldParentPtr("pragma", pragma); comp.gpa.destroy(self); } diff --git a/lib/compiler/aro/aro/pragmas/once.zig b/lib/compiler/aro/aro/pragmas/once.zig index 9a8925025284..21d6c9854efc 100644 --- a/lib/compiler/aro/aro/pragmas/once.zig +++ b/lib/compiler/aro/aro/pragmas/once.zig @@ -27,18 +27,18 @@ pub fn init(allocator: mem.Allocator) !*Pragma { } fn afterParse(pragma: *Pragma, _: *Compilation) void { - var self = @fieldParentPtr(*Once, "pragma", pragma); + var self: *Once = @fieldParentPtr("pragma", pragma); self.pragma_once.clearRetainingCapacity(); } fn deinit(pragma: *Pragma, comp: *Compilation) void { - var self = @fieldParentPtr(*Once, "pragma", pragma); + var self: *Once = @fieldParentPtr("pragma", pragma); self.pragma_once.deinit(); comp.gpa.destroy(self); } fn preprocessorHandler(pragma: *Pragma, pp: *Preprocessor, start_idx: TokenIndex) Pragma.Error!void { - var self = @fieldParentPtr(*Once, "pragma", pragma); + var self: *Once = @fieldParentPtr("pragma", pragma); const name_tok = pp.tokens.get(start_idx); const next = pp.tokens.get(start_idx + 1); if (next.id != .nl) { diff --git a/lib/compiler/aro/aro/pragmas/pack.zig b/lib/compiler/aro/aro/pragmas/pack.zig index 26c95c3907df..81d1dbc59a1c 100644 --- a/lib/compiler/aro/aro/pragmas/pack.zig +++ b/lib/compiler/aro/aro/pragmas/pack.zig @@ -24,13 +24,13 @@ pub fn init(allocator: mem.Allocator) !*Pragma { } fn deinit(pragma: *Pragma, comp: *Compilation) void { - var self = @fieldParentPtr(*Pack, "pragma", pragma); + var self: *Pack = @fieldParentPtr("pragma", pragma); self.stack.deinit(comp.gpa); comp.gpa.destroy(self); } fn parserHandler(pragma: *Pragma, p: *Parser, start_idx: TokenIndex) Compilation.Error!void { - var pack = @fieldParentPtr(*Pack, "pragma", pragma); + var pack: *Pack = @fieldParentPtr("pragma", pragma); var idx = start_idx + 1; const l_paren = p.pp.tokens.get(idx); if (l_paren.id != .l_paren) { diff --git a/lib/compiler/aro/backend/Object.zig b/lib/compiler/aro/backend/Object.zig index db880099051a..b42ad4bdcbb7 100644 --- a/lib/compiler/aro/backend/Object.zig +++ b/lib/compiler/aro/backend/Object.zig @@ -16,7 +16,7 @@ pub fn create(gpa: Allocator, target: std.Target) !*Object { pub fn deinit(obj: *Object) void { switch (obj.format) { - .elf => @fieldParentPtr(Elf, "obj", obj).deinit(), + .elf => @as(*Elf, @fieldParentPtr("obj", obj)).deinit(), else => unreachable, } } @@ -32,7 +32,7 @@ pub const Section = union(enum) { pub fn getSection(obj: *Object, section: Section) !*std.ArrayList(u8) { switch (obj.format) { - .elf => return @fieldParentPtr(Elf, "obj", obj).getSection(section), + .elf => return @as(*Elf, @fieldParentPtr("obj", obj)).getSection(section), else => unreachable, } } @@ -53,21 +53,21 @@ pub fn declareSymbol( size: u64, ) ![]const u8 { switch (obj.format) { - .elf => return @fieldParentPtr(Elf, "obj", obj).declareSymbol(section, name, linkage, @"type", offset, size), + .elf => return @as(*Elf, @fieldParentPtr("obj", obj)).declareSymbol(section, name, linkage, @"type", offset, size), else => unreachable, } } pub fn addRelocation(obj: *Object, name: []const u8, section: Section, address: u64, addend: i64) !void { switch (obj.format) { - .elf => return @fieldParentPtr(Elf, "obj", obj).addRelocation(name, section, address, addend), + .elf => return @as(*Elf, @fieldParentPtr("obj", obj)).addRelocation(name, section, address, addend), else => unreachable, } } pub fn finish(obj: *Object, file: std.fs.File) !void { switch (obj.format) { - .elf => return @fieldParentPtr(Elf, "obj", obj).finish(file), + .elf => return @as(*Elf, @fieldParentPtr("obj", obj)).finish(file), else => unreachable, } } diff --git a/lib/compiler/aro_translate_c.zig b/lib/compiler/aro_translate_c.zig index fe8b07c4d996..1c481bf1a78b 100644 --- a/lib/compiler/aro_translate_c.zig +++ b/lib/compiler/aro_translate_c.zig @@ -1098,13 +1098,13 @@ pub fn ScopeExtra(comptime ScopeExtraContext: type, comptime ScopeExtraType: typ } }; - pub fn findBlockScope(inner: *ScopeExtraScope, c: *ScopeExtraContext) !*ScopeExtraScope.Block { + pub fn findBlockScope(inner: *ScopeExtraScope, c: *ScopeExtraContext) !*Block { var scope = inner; while (true) { switch (scope.id) { .root => unreachable, - .block => return @fieldParentPtr(*Block, "base", scope), - .condition => return @fieldParentPtr(*Condition, "base", scope).getBlockScope(c), + .block => return @fieldParentPtr("base", scope), + .condition => return @as(*Condition, @fieldParentPtr("base", scope)).getBlockScope(c), else => scope = scope.parent.?, } } @@ -1116,7 +1116,7 @@ pub fn ScopeExtra(comptime ScopeExtraContext: type, comptime ScopeExtraType: typ switch (scope.id) { .root => unreachable, .block => { - const block = @fieldParentPtr(*Block, "base", scope); + const block: *Block = @fieldParentPtr("base", scope); if (block.return_type) |ty| return ty; scope = scope.parent.?; }, @@ -1128,15 +1128,15 @@ pub fn ScopeExtra(comptime ScopeExtraContext: type, comptime ScopeExtraType: typ pub fn getAlias(scope: *ScopeExtraScope, name: []const u8) []const u8 { return switch (scope.id) { .root => return name, - .block => @fieldParentPtr(*Block, "base", scope).getAlias(name), + .block => @as(*Block, @fieldParentPtr("base", scope)).getAlias(name), .loop, .do_loop, .condition => scope.parent.?.getAlias(name), }; } pub fn contains(scope: *ScopeExtraScope, name: []const u8) bool { return switch (scope.id) { - .root => @fieldParentPtr(*Root, "base", scope).contains(name), - .block => @fieldParentPtr(*Block, "base", scope).contains(name), + .root => @as(*Root, @fieldParentPtr("base", scope)).contains(name), + .block => @as(*Block, @fieldParentPtr("base", scope)).contains(name), .loop, .do_loop, .condition => scope.parent.?.contains(name), }; } @@ -1158,11 +1158,11 @@ pub fn ScopeExtra(comptime ScopeExtraContext: type, comptime ScopeExtraType: typ while (true) { switch (scope.id) { .root => { - const root = @fieldParentPtr(*Root, "base", scope); + const root: *Root = @fieldParentPtr("base", scope); return root.nodes.append(node); }, .block => { - const block = @fieldParentPtr(*Block, "base", scope); + const block: *Block = @fieldParentPtr("base", scope); return block.statements.append(node); }, else => scope = scope.parent.?, @@ -1184,7 +1184,7 @@ pub fn ScopeExtra(comptime ScopeExtraContext: type, comptime ScopeExtraType: typ switch (scope.id) { .root => return, .block => { - const block = @fieldParentPtr(*Block, "base", scope); + const block: *Block = @fieldParentPtr("base", scope); if (block.variable_discards.get(name)) |discard| { discard.data.should_skip = true; return; diff --git a/lib/compiler/aro_translate_c/ast.zig b/lib/compiler/aro_translate_c/ast.zig index b7ab20095c14..722fed4f1838 100644 --- a/lib/compiler/aro_translate_c/ast.zig +++ b/lib/compiler/aro_translate_c/ast.zig @@ -409,7 +409,7 @@ pub const Node = extern union { return null; if (self.ptr_otherwise.tag == t) - return @alignCast(@fieldParentPtr(*align(1) t.Type(), "base", self.ptr_otherwise)); + return @alignCast(@fieldParentPtr("base", self.ptr_otherwise)); return null; } @@ -1220,7 +1220,7 @@ fn renderNode(c: *Context, node: Node) Allocator.Error!NodeIndex { }); }, .pub_var_simple, .var_simple => { - const payload = @as(*Payload.SimpleVarDecl, @alignCast(@fieldParentPtr(*align(1) Payload.SimpleVarDecl, "base", node.ptr_otherwise))).data; + const payload = @as(*Payload.SimpleVarDecl, @alignCast(@fieldParentPtr("base", node.ptr_otherwise))).data; if (node.tag() == .pub_var_simple) _ = try c.addToken(.keyword_pub, "pub"); const const_tok = try c.addToken(.keyword_const, "const"); _ = try c.addIdentifier(payload.name); @@ -1293,7 +1293,7 @@ fn renderNode(c: *Context, node: Node) Allocator.Error!NodeIndex { }, .var_decl => return renderVar(c, node), .arg_redecl, .alias => { - const payload = @as(*Payload.ArgRedecl, @alignCast(@fieldParentPtr(*align(1) Payload.ArgRedecl, "base", node.ptr_otherwise))).data; + const payload = @as(*Payload.ArgRedecl, @alignCast(@fieldParentPtr("base", node.ptr_otherwise))).data; if (node.tag() == .alias) _ = try c.addToken(.keyword_pub, "pub"); const mut_tok = if (node.tag() == .alias) try c.addToken(.keyword_const, "const") @@ -1492,7 +1492,7 @@ fn renderNode(c: *Context, node: Node) Allocator.Error!NodeIndex { }); }, .c_pointer, .single_pointer => { - const payload = @as(*Payload.Pointer, @alignCast(@fieldParentPtr(*align(1) Payload.Pointer, "base", node.ptr_otherwise))).data; + const payload = @as(*Payload.Pointer, @alignCast(@fieldParentPtr("base", node.ptr_otherwise))).data; const asterisk = if (node.tag() == .single_pointer) try c.addToken(.asterisk, "*") @@ -2085,7 +2085,7 @@ fn renderNode(c: *Context, node: Node) Allocator.Error!NodeIndex { } fn renderRecord(c: *Context, node: Node) !NodeIndex { - const payload = @as(*Payload.Record, @alignCast(@fieldParentPtr(*align(1) Payload.Record, "base", node.ptr_otherwise))).data; + const payload = @as(*Payload.Record, @alignCast(@fieldParentPtr("base", node.ptr_otherwise))).data; if (payload.layout == .@"packed") _ = try c.addToken(.keyword_packed, "packed") else if (payload.layout == .@"extern") @@ -2487,7 +2487,7 @@ fn renderNodeGrouped(c: *Context, node: Node) !NodeIndex { } fn renderPrefixOp(c: *Context, node: Node, tag: std.zig.Ast.Node.Tag, tok_tag: TokenTag, bytes: []const u8) !NodeIndex { - const payload = @as(*Payload.UnOp, @alignCast(@fieldParentPtr(*align(1) Payload.UnOp, "base", node.ptr_otherwise))).data; + const payload = @as(*Payload.UnOp, @alignCast(@fieldParentPtr("base", node.ptr_otherwise))).data; return c.addNode(.{ .tag = tag, .main_token = try c.addToken(tok_tag, bytes), @@ -2499,7 +2499,7 @@ fn renderPrefixOp(c: *Context, node: Node, tag: std.zig.Ast.Node.Tag, tok_tag: T } fn renderBinOpGrouped(c: *Context, node: Node, tag: std.zig.Ast.Node.Tag, tok_tag: TokenTag, bytes: []const u8) !NodeIndex { - const payload = @as(*Payload.BinOp, @alignCast(@fieldParentPtr(*align(1) Payload.BinOp, "base", node.ptr_otherwise))).data; + const payload = @as(*Payload.BinOp, @alignCast(@fieldParentPtr("base", node.ptr_otherwise))).data; const lhs = try renderNodeGrouped(c, payload.lhs); return c.addNode(.{ .tag = tag, @@ -2512,7 +2512,7 @@ fn renderBinOpGrouped(c: *Context, node: Node, tag: std.zig.Ast.Node.Tag, tok_ta } fn renderBinOp(c: *Context, node: Node, tag: std.zig.Ast.Node.Tag, tok_tag: TokenTag, bytes: []const u8) !NodeIndex { - const payload = @as(*Payload.BinOp, @alignCast(@fieldParentPtr(*align(1) Payload.BinOp, "base", node.ptr_otherwise))).data; + const payload = @as(*Payload.BinOp, @alignCast(@fieldParentPtr("base", node.ptr_otherwise))).data; const lhs = try renderNode(c, payload.lhs); return c.addNode(.{ .tag = tag, diff --git a/lib/compiler/resinator/ast.zig b/lib/compiler/resinator/ast.zig index e6f6c030c08c..d55d91e52c64 100644 --- a/lib/compiler/resinator/ast.zig +++ b/lib/compiler/resinator/ast.zig @@ -19,7 +19,7 @@ pub const Tree = struct { } pub fn root(self: *Tree) *Node.Root { - return @fieldParentPtr(Node.Root, "base", self.node); + return @alignCast(@fieldParentPtr("base", self.node)); } pub fn dump(self: *Tree, writer: anytype) @TypeOf(writer).Error!void { @@ -174,7 +174,7 @@ pub const Node = struct { pub fn cast(base: *Node, comptime id: Id) ?*id.Type() { if (base.id == id) { - return @fieldParentPtr(id.Type(), "base", base); + return @alignCast(@fieldParentPtr("base", base)); } return null; } @@ -461,7 +461,7 @@ pub const Node = struct { pub fn isNumberExpression(node: *const Node) bool { switch (node.id) { .literal => { - const literal = @fieldParentPtr(Node.Literal, "base", node); + const literal: *const Node.Literal = @alignCast(@fieldParentPtr("base", node)); return switch (literal.token.id) { .number => true, else => false, @@ -475,7 +475,7 @@ pub const Node = struct { pub fn isStringLiteral(node: *const Node) bool { switch (node.id) { .literal => { - const literal = @fieldParentPtr(Node.Literal, "base", node); + const literal: *const Node.Literal = @alignCast(@fieldParentPtr("base", node)); return switch (literal.token.id) { .quoted_ascii_string, .quoted_wide_string => true, else => false, @@ -489,105 +489,103 @@ pub const Node = struct { switch (node.id) { .root => unreachable, .resource_external => { - const casted = @fieldParentPtr(Node.ResourceExternal, "base", node); + const casted: *const Node.ResourceExternal = @alignCast(@fieldParentPtr("base", node)); return casted.id; }, .resource_raw_data => { - const casted = @fieldParentPtr(Node.ResourceRawData, "base", node); + const casted: *const Node.ResourceRawData = @alignCast(@fieldParentPtr("base", node)); return casted.id; }, .literal => { - const casted = @fieldParentPtr(Node.Literal, "base", node); + const casted: *const Node.Literal = @alignCast(@fieldParentPtr("base", node)); return casted.token; }, .binary_expression => { - const casted = @fieldParentPtr(Node.BinaryExpression, "base", node); + const casted: *const Node.BinaryExpression = @alignCast(@fieldParentPtr("base", node)); return casted.left.getFirstToken(); }, .grouped_expression => { - const casted = @fieldParentPtr(Node.GroupedExpression, "base", node); + const casted: *const Node.GroupedExpression = @alignCast(@fieldParentPtr("base", node)); return casted.open_token; }, .not_expression => { - const casted = @fieldParentPtr(Node.NotExpression, "base", node); + const casted: *const Node.NotExpression = @alignCast(@fieldParentPtr("base", node)); return casted.not_token; }, .accelerators => { - const casted = @fieldParentPtr(Node.Accelerators, "base", node); + const casted: *const Node.Accelerators = @alignCast(@fieldParentPtr("base", node)); return casted.id; }, .accelerator => { - const casted = @fieldParentPtr(Node.Accelerator, "base", node); + const casted: *const Node.Accelerator = @alignCast(@fieldParentPtr("base", node)); return casted.event.getFirstToken(); }, .dialog => { - const casted = @fieldParentPtr(Node.Dialog, "base", node); + const casted: *const Node.Dialog = @alignCast(@fieldParentPtr("base", node)); return casted.id; }, .control_statement => { - const casted = @fieldParentPtr(Node.ControlStatement, "base", node); + const casted: *const Node.ControlStatement = @alignCast(@fieldParentPtr("base", node)); return casted.type; }, .toolbar => { - const casted = @fieldParentPtr(Node.Toolbar, "base", node); + const casted: *const Node.Toolbar = @alignCast(@fieldParentPtr("base", node)); return casted.id; }, .menu => { - const casted = @fieldParentPtr(Node.Menu, "base", node); + const casted: *const Node.Menu = @alignCast(@fieldParentPtr("base", node)); return casted.id; }, inline .menu_item, .menu_item_separator, .menu_item_ex => |menu_item_type| { - const node_type = menu_item_type.Type(); - const casted = @fieldParentPtr(node_type, "base", node); + const casted: *const menu_item_type.Type() = @alignCast(@fieldParentPtr("base", node)); return casted.menuitem; }, inline .popup, .popup_ex => |popup_type| { - const node_type = popup_type.Type(); - const casted = @fieldParentPtr(node_type, "base", node); + const casted: *const popup_type.Type() = @alignCast(@fieldParentPtr("base", node)); return casted.popup; }, .version_info => { - const casted = @fieldParentPtr(Node.VersionInfo, "base", node); + const casted: *const Node.VersionInfo = @alignCast(@fieldParentPtr("base", node)); return casted.id; }, .version_statement => { - const casted = @fieldParentPtr(Node.VersionStatement, "base", node); + const casted: *const Node.VersionStatement = @alignCast(@fieldParentPtr("base", node)); return casted.type; }, .block => { - const casted = @fieldParentPtr(Node.Block, "base", node); + const casted: *const Node.Block = @alignCast(@fieldParentPtr("base", node)); return casted.identifier; }, .block_value => { - const casted = @fieldParentPtr(Node.BlockValue, "base", node); + const casted: *const Node.BlockValue = @alignCast(@fieldParentPtr("base", node)); return casted.identifier; }, .block_value_value => { - const casted = @fieldParentPtr(Node.BlockValueValue, "base", node); + const casted: *const Node.BlockValueValue = @alignCast(@fieldParentPtr("base", node)); return casted.expression.getFirstToken(); }, .string_table => { - const casted = @fieldParentPtr(Node.StringTable, "base", node); + const casted: *const Node.StringTable = @alignCast(@fieldParentPtr("base", node)); return casted.type; }, .string_table_string => { - const casted = @fieldParentPtr(Node.StringTableString, "base", node); + const casted: *const Node.StringTableString = @alignCast(@fieldParentPtr("base", node)); return casted.id.getFirstToken(); }, .language_statement => { - const casted = @fieldParentPtr(Node.LanguageStatement, "base", node); + const casted: *const Node.LanguageStatement = @alignCast(@fieldParentPtr("base", node)); return casted.language_token; }, .font_statement => { - const casted = @fieldParentPtr(Node.FontStatement, "base", node); + const casted: *const Node.FontStatement = @alignCast(@fieldParentPtr("base", node)); return casted.identifier; }, .simple_statement => { - const casted = @fieldParentPtr(Node.SimpleStatement, "base", node); + const casted: *const Node.SimpleStatement = @alignCast(@fieldParentPtr("base", node)); return casted.identifier; }, .invalid => { - const casted = @fieldParentPtr(Node.Invalid, "base", node); + const casted: *const Node.Invalid = @alignCast(@fieldParentPtr("base", node)); return casted.context[0]; }, } @@ -597,44 +595,44 @@ pub const Node = struct { switch (node.id) { .root => unreachable, .resource_external => { - const casted = @fieldParentPtr(Node.ResourceExternal, "base", node); + const casted: *const Node.ResourceExternal = @alignCast(@fieldParentPtr("base", node)); return casted.filename.getLastToken(); }, .resource_raw_data => { - const casted = @fieldParentPtr(Node.ResourceRawData, "base", node); + const casted: *const Node.ResourceRawData = @alignCast(@fieldParentPtr("base", node)); return casted.end_token; }, .literal => { - const casted = @fieldParentPtr(Node.Literal, "base", node); + const casted: *const Node.Literal = @alignCast(@fieldParentPtr("base", node)); return casted.token; }, .binary_expression => { - const casted = @fieldParentPtr(Node.BinaryExpression, "base", node); + const casted: *const Node.BinaryExpression = @alignCast(@fieldParentPtr("base", node)); return casted.right.getLastToken(); }, .grouped_expression => { - const casted = @fieldParentPtr(Node.GroupedExpression, "base", node); + const casted: *const Node.GroupedExpression = @alignCast(@fieldParentPtr("base", node)); return casted.close_token; }, .not_expression => { - const casted = @fieldParentPtr(Node.NotExpression, "base", node); + const casted: *const Node.NotExpression = @alignCast(@fieldParentPtr("base", node)); return casted.number_token; }, .accelerators => { - const casted = @fieldParentPtr(Node.Accelerators, "base", node); + const casted: *const Node.Accelerators = @alignCast(@fieldParentPtr("base", node)); return casted.end_token; }, .accelerator => { - const casted = @fieldParentPtr(Node.Accelerator, "base", node); + const casted: *const Node.Accelerator = @alignCast(@fieldParentPtr("base", node)); if (casted.type_and_options.len > 0) return casted.type_and_options[casted.type_and_options.len - 1]; return casted.idvalue.getLastToken(); }, .dialog => { - const casted = @fieldParentPtr(Node.Dialog, "base", node); + const casted: *const Node.Dialog = @alignCast(@fieldParentPtr("base", node)); return casted.end_token; }, .control_statement => { - const casted = @fieldParentPtr(Node.ControlStatement, "base", node); + const casted: *const Node.ControlStatement = @alignCast(@fieldParentPtr("base", node)); if (casted.extra_data_end) |token| return token; if (casted.help_id) |help_id_node| return help_id_node.getLastToken(); if (casted.exstyle) |exstyle_node| return exstyle_node.getLastToken(); @@ -647,80 +645,79 @@ pub const Node = struct { return casted.height.getLastToken(); }, .toolbar => { - const casted = @fieldParentPtr(Node.Toolbar, "base", node); + const casted: *const Node.Toolbar = @alignCast(@fieldParentPtr("base", node)); return casted.end_token; }, .menu => { - const casted = @fieldParentPtr(Node.Menu, "base", node); + const casted: *const Node.Menu = @alignCast(@fieldParentPtr("base", node)); return casted.end_token; }, .menu_item => { - const casted = @fieldParentPtr(Node.MenuItem, "base", node); + const casted: *const Node.MenuItem = @alignCast(@fieldParentPtr("base", node)); if (casted.option_list.len > 0) return casted.option_list[casted.option_list.len - 1]; return casted.result.getLastToken(); }, .menu_item_separator => { - const casted = @fieldParentPtr(Node.MenuItemSeparator, "base", node); + const casted: *const Node.MenuItemSeparator = @alignCast(@fieldParentPtr("base", node)); return casted.separator; }, .menu_item_ex => { - const casted = @fieldParentPtr(Node.MenuItemEx, "base", node); + const casted: *const Node.MenuItemEx = @alignCast(@fieldParentPtr("base", node)); if (casted.state) |state_node| return state_node.getLastToken(); if (casted.type) |type_node| return type_node.getLastToken(); if (casted.id) |id_node| return id_node.getLastToken(); return casted.text; }, inline .popup, .popup_ex => |popup_type| { - const node_type = popup_type.Type(); - const casted = @fieldParentPtr(node_type, "base", node); + const casted: *const popup_type.Type() = @alignCast(@fieldParentPtr("base", node)); return casted.end_token; }, .version_info => { - const casted = @fieldParentPtr(Node.VersionInfo, "base", node); + const casted: *const Node.VersionInfo = @alignCast(@fieldParentPtr("base", node)); return casted.end_token; }, .version_statement => { - const casted = @fieldParentPtr(Node.VersionStatement, "base", node); + const casted: *const Node.VersionStatement = @alignCast(@fieldParentPtr("base", node)); return casted.parts[casted.parts.len - 1].getLastToken(); }, .block => { - const casted = @fieldParentPtr(Node.Block, "base", node); + const casted: *const Node.Block = @alignCast(@fieldParentPtr("base", node)); return casted.end_token; }, .block_value => { - const casted = @fieldParentPtr(Node.BlockValue, "base", node); + const casted: *const Node.BlockValue = @alignCast(@fieldParentPtr("base", node)); if (casted.values.len > 0) return casted.values[casted.values.len - 1].getLastToken(); return casted.key; }, .block_value_value => { - const casted = @fieldParentPtr(Node.BlockValueValue, "base", node); + const casted: *const Node.BlockValueValue = @alignCast(@fieldParentPtr("base", node)); return casted.expression.getLastToken(); }, .string_table => { - const casted = @fieldParentPtr(Node.StringTable, "base", node); + const casted: *const Node.StringTable = @alignCast(@fieldParentPtr("base", node)); return casted.end_token; }, .string_table_string => { - const casted = @fieldParentPtr(Node.StringTableString, "base", node); + const casted: *const Node.StringTableString = @alignCast(@fieldParentPtr("base", node)); return casted.string; }, .language_statement => { - const casted = @fieldParentPtr(Node.LanguageStatement, "base", node); + const casted: *const Node.LanguageStatement = @alignCast(@fieldParentPtr("base", node)); return casted.sublanguage_id.getLastToken(); }, .font_statement => { - const casted = @fieldParentPtr(Node.FontStatement, "base", node); + const casted: *const Node.FontStatement = @alignCast(@fieldParentPtr("base", node)); if (casted.char_set) |char_set_node| return char_set_node.getLastToken(); if (casted.italic) |italic_node| return italic_node.getLastToken(); if (casted.weight) |weight_node| return weight_node.getLastToken(); return casted.typeface; }, .simple_statement => { - const casted = @fieldParentPtr(Node.SimpleStatement, "base", node); + const casted: *const Node.SimpleStatement = @alignCast(@fieldParentPtr("base", node)); return casted.value.getLastToken(); }, .invalid => { - const casted = @fieldParentPtr(Node.Invalid, "base", node); + const casted: *const Node.Invalid = @alignCast(@fieldParentPtr("base", node)); return casted.context[casted.context.len - 1]; }, } @@ -737,31 +734,31 @@ pub const Node = struct { switch (node.id) { .root => { try writer.writeAll("\n"); - const root = @fieldParentPtr(Node.Root, "base", node); + const root: *Node.Root = @alignCast(@fieldParentPtr("base", node)); for (root.body) |body_node| { try body_node.dump(tree, writer, indent + 1); } }, .resource_external => { - const resource = @fieldParentPtr(Node.ResourceExternal, "base", node); + const resource: *Node.ResourceExternal = @alignCast(@fieldParentPtr("base", node)); try writer.print(" {s} {s} [{d} common_resource_attributes]\n", .{ resource.id.slice(tree.source), resource.type.slice(tree.source), resource.common_resource_attributes.len }); try resource.filename.dump(tree, writer, indent + 1); }, .resource_raw_data => { - const resource = @fieldParentPtr(Node.ResourceRawData, "base", node); + const resource: *Node.ResourceRawData = @alignCast(@fieldParentPtr("base", node)); try writer.print(" {s} {s} [{d} common_resource_attributes] raw data: {}\n", .{ resource.id.slice(tree.source), resource.type.slice(tree.source), resource.common_resource_attributes.len, resource.raw_data.len }); for (resource.raw_data) |data_expression| { try data_expression.dump(tree, writer, indent + 1); } }, .literal => { - const literal = @fieldParentPtr(Node.Literal, "base", node); + const literal: *Node.Literal = @alignCast(@fieldParentPtr("base", node)); try writer.writeAll(" "); try writer.writeAll(literal.token.slice(tree.source)); try writer.writeAll("\n"); }, .binary_expression => { - const binary = @fieldParentPtr(Node.BinaryExpression, "base", node); + const binary: *Node.BinaryExpression = @alignCast(@fieldParentPtr("base", node)); try writer.writeAll(" "); try writer.writeAll(binary.operator.slice(tree.source)); try writer.writeAll("\n"); @@ -769,7 +766,7 @@ pub const Node = struct { try binary.right.dump(tree, writer, indent + 1); }, .grouped_expression => { - const grouped = @fieldParentPtr(Node.GroupedExpression, "base", node); + const grouped: *Node.GroupedExpression = @alignCast(@fieldParentPtr("base", node)); try writer.writeAll("\n"); try writer.writeByteNTimes(' ', indent); try writer.writeAll(grouped.open_token.slice(tree.source)); @@ -780,7 +777,7 @@ pub const Node = struct { try writer.writeAll("\n"); }, .not_expression => { - const not = @fieldParentPtr(Node.NotExpression, "base", node); + const not: *Node.NotExpression = @alignCast(@fieldParentPtr("base", node)); try writer.writeAll(" "); try writer.writeAll(not.not_token.slice(tree.source)); try writer.writeAll(" "); @@ -788,7 +785,7 @@ pub const Node = struct { try writer.writeAll("\n"); }, .accelerators => { - const accelerators = @fieldParentPtr(Node.Accelerators, "base", node); + const accelerators: *Node.Accelerators = @alignCast(@fieldParentPtr("base", node)); try writer.print(" {s} {s} [{d} common_resource_attributes]\n", .{ accelerators.id.slice(tree.source), accelerators.type.slice(tree.source), accelerators.common_resource_attributes.len }); for (accelerators.optional_statements) |statement| { try statement.dump(tree, writer, indent + 1); @@ -804,7 +801,7 @@ pub const Node = struct { try writer.writeAll("\n"); }, .accelerator => { - const accelerator = @fieldParentPtr(Node.Accelerator, "base", node); + const accelerator: *Node.Accelerator = @alignCast(@fieldParentPtr("base", node)); for (accelerator.type_and_options, 0..) |option, i| { if (i != 0) try writer.writeAll(","); try writer.writeByte(' '); @@ -815,7 +812,7 @@ pub const Node = struct { try accelerator.idvalue.dump(tree, writer, indent + 1); }, .dialog => { - const dialog = @fieldParentPtr(Node.Dialog, "base", node); + const dialog: *Node.Dialog = @alignCast(@fieldParentPtr("base", node)); try writer.print(" {s} {s} [{d} common_resource_attributes]\n", .{ dialog.id.slice(tree.source), dialog.type.slice(tree.source), dialog.common_resource_attributes.len }); inline for (.{ "x", "y", "width", "height" }) |arg| { try writer.writeByteNTimes(' ', indent + 1); @@ -841,7 +838,7 @@ pub const Node = struct { try writer.writeAll("\n"); }, .control_statement => { - const control = @fieldParentPtr(Node.ControlStatement, "base", node); + const control: *Node.ControlStatement = @alignCast(@fieldParentPtr("base", node)); try writer.print(" {s}", .{control.type.slice(tree.source)}); if (control.text) |text| { try writer.print(" text: {s}", .{text.slice(tree.source)}); @@ -877,7 +874,7 @@ pub const Node = struct { } }, .toolbar => { - const toolbar = @fieldParentPtr(Node.Toolbar, "base", node); + const toolbar: *Node.Toolbar = @alignCast(@fieldParentPtr("base", node)); try writer.print(" {s} {s} [{d} common_resource_attributes]\n", .{ toolbar.id.slice(tree.source), toolbar.type.slice(tree.source), toolbar.common_resource_attributes.len }); inline for (.{ "button_width", "button_height" }) |arg| { try writer.writeByteNTimes(' ', indent + 1); @@ -895,7 +892,7 @@ pub const Node = struct { try writer.writeAll("\n"); }, .menu => { - const menu = @fieldParentPtr(Node.Menu, "base", node); + const menu: *Node.Menu = @alignCast(@fieldParentPtr("base", node)); try writer.print(" {s} {s} [{d} common_resource_attributes]\n", .{ menu.id.slice(tree.source), menu.type.slice(tree.source), menu.common_resource_attributes.len }); for (menu.optional_statements) |statement| { try statement.dump(tree, writer, indent + 1); @@ -916,16 +913,16 @@ pub const Node = struct { try writer.writeAll("\n"); }, .menu_item => { - const menu_item = @fieldParentPtr(Node.MenuItem, "base", node); + const menu_item: *Node.MenuItem = @alignCast(@fieldParentPtr("base", node)); try writer.print(" {s} {s} [{d} options]\n", .{ menu_item.menuitem.slice(tree.source), menu_item.text.slice(tree.source), menu_item.option_list.len }); try menu_item.result.dump(tree, writer, indent + 1); }, .menu_item_separator => { - const menu_item = @fieldParentPtr(Node.MenuItemSeparator, "base", node); + const menu_item: *Node.MenuItemSeparator = @alignCast(@fieldParentPtr("base", node)); try writer.print(" {s} {s}\n", .{ menu_item.menuitem.slice(tree.source), menu_item.separator.slice(tree.source) }); }, .menu_item_ex => { - const menu_item = @fieldParentPtr(Node.MenuItemEx, "base", node); + const menu_item: *Node.MenuItemEx = @alignCast(@fieldParentPtr("base", node)); try writer.print(" {s} {s}\n", .{ menu_item.menuitem.slice(tree.source), menu_item.text.slice(tree.source) }); inline for (.{ "id", "type", "state" }) |arg| { if (@field(menu_item, arg)) |val_node| { @@ -936,7 +933,7 @@ pub const Node = struct { } }, .popup => { - const popup = @fieldParentPtr(Node.Popup, "base", node); + const popup: *Node.Popup = @alignCast(@fieldParentPtr("base", node)); try writer.print(" {s} {s} [{d} options]\n", .{ popup.popup.slice(tree.source), popup.text.slice(tree.source), popup.option_list.len }); try writer.writeByteNTimes(' ', indent); try writer.writeAll(popup.begin_token.slice(tree.source)); @@ -949,7 +946,7 @@ pub const Node = struct { try writer.writeAll("\n"); }, .popup_ex => { - const popup = @fieldParentPtr(Node.PopupEx, "base", node); + const popup: *Node.PopupEx = @alignCast(@fieldParentPtr("base", node)); try writer.print(" {s} {s}\n", .{ popup.popup.slice(tree.source), popup.text.slice(tree.source) }); inline for (.{ "id", "type", "state", "help_id" }) |arg| { if (@field(popup, arg)) |val_node| { @@ -969,7 +966,7 @@ pub const Node = struct { try writer.writeAll("\n"); }, .version_info => { - const version_info = @fieldParentPtr(Node.VersionInfo, "base", node); + const version_info: *Node.VersionInfo = @alignCast(@fieldParentPtr("base", node)); try writer.print(" {s} {s} [{d} common_resource_attributes]\n", .{ version_info.id.slice(tree.source), version_info.versioninfo.slice(tree.source), version_info.common_resource_attributes.len }); for (version_info.fixed_info) |fixed_info| { try fixed_info.dump(tree, writer, indent + 1); @@ -985,14 +982,14 @@ pub const Node = struct { try writer.writeAll("\n"); }, .version_statement => { - const version_statement = @fieldParentPtr(Node.VersionStatement, "base", node); + const version_statement: *Node.VersionStatement = @alignCast(@fieldParentPtr("base", node)); try writer.print(" {s}\n", .{version_statement.type.slice(tree.source)}); for (version_statement.parts) |part| { try part.dump(tree, writer, indent + 1); } }, .block => { - const block = @fieldParentPtr(Node.Block, "base", node); + const block: *Node.Block = @alignCast(@fieldParentPtr("base", node)); try writer.print(" {s} {s}\n", .{ block.identifier.slice(tree.source), block.key.slice(tree.source) }); for (block.values) |value| { try value.dump(tree, writer, indent + 1); @@ -1008,14 +1005,14 @@ pub const Node = struct { try writer.writeAll("\n"); }, .block_value => { - const block_value = @fieldParentPtr(Node.BlockValue, "base", node); + const block_value: *Node.BlockValue = @alignCast(@fieldParentPtr("base", node)); try writer.print(" {s} {s}\n", .{ block_value.identifier.slice(tree.source), block_value.key.slice(tree.source) }); for (block_value.values) |value| { try value.dump(tree, writer, indent + 1); } }, .block_value_value => { - const block_value = @fieldParentPtr(Node.BlockValueValue, "base", node); + const block_value: *Node.BlockValueValue = @alignCast(@fieldParentPtr("base", node)); if (block_value.trailing_comma) { try writer.writeAll(" ,"); } @@ -1023,7 +1020,7 @@ pub const Node = struct { try block_value.expression.dump(tree, writer, indent + 1); }, .string_table => { - const string_table = @fieldParentPtr(Node.StringTable, "base", node); + const string_table: *Node.StringTable = @alignCast(@fieldParentPtr("base", node)); try writer.print(" {s} [{d} common_resource_attributes]\n", .{ string_table.type.slice(tree.source), string_table.common_resource_attributes.len }); for (string_table.optional_statements) |statement| { try statement.dump(tree, writer, indent + 1); @@ -1040,19 +1037,19 @@ pub const Node = struct { }, .string_table_string => { try writer.writeAll("\n"); - const string = @fieldParentPtr(Node.StringTableString, "base", node); + const string: *Node.StringTableString = @alignCast(@fieldParentPtr("base", node)); try string.id.dump(tree, writer, indent + 1); try writer.writeByteNTimes(' ', indent + 1); try writer.print("{s}\n", .{string.string.slice(tree.source)}); }, .language_statement => { - const language = @fieldParentPtr(Node.LanguageStatement, "base", node); + const language: *Node.LanguageStatement = @alignCast(@fieldParentPtr("base", node)); try writer.print(" {s}\n", .{language.language_token.slice(tree.source)}); try language.primary_language_id.dump(tree, writer, indent + 1); try language.sublanguage_id.dump(tree, writer, indent + 1); }, .font_statement => { - const font = @fieldParentPtr(Node.FontStatement, "base", node); + const font: *Node.FontStatement = @alignCast(@fieldParentPtr("base", node)); try writer.print(" {s} typeface: {s}\n", .{ font.identifier.slice(tree.source), font.typeface.slice(tree.source) }); try writer.writeByteNTimes(' ', indent + 1); try writer.writeAll("point_size:\n"); @@ -1066,12 +1063,12 @@ pub const Node = struct { } }, .simple_statement => { - const statement = @fieldParentPtr(Node.SimpleStatement, "base", node); + const statement: *Node.SimpleStatement = @alignCast(@fieldParentPtr("base", node)); try writer.print(" {s}\n", .{statement.identifier.slice(tree.source)}); try statement.value.dump(tree, writer, indent + 1); }, .invalid => { - const invalid = @fieldParentPtr(Node.Invalid, "base", node); + const invalid: *Node.Invalid = @alignCast(@fieldParentPtr("base", node)); try writer.print(" context.len: {}\n", .{invalid.context.len}); for (invalid.context) |context_token| { try writer.writeByteNTimes(' ', indent + 1); diff --git a/lib/compiler/resinator/compile.zig b/lib/compiler/resinator/compile.zig index ebe741e79b0c..25f3a5f5d3bb 100644 --- a/lib/compiler/resinator/compile.zig +++ b/lib/compiler/resinator/compile.zig @@ -229,34 +229,34 @@ pub const Compiler = struct { pub fn writeNode(self: *Compiler, node: *Node, writer: anytype) !void { switch (node.id) { .root => unreachable, // writeRoot should be called directly instead - .resource_external => try self.writeResourceExternal(@fieldParentPtr(Node.ResourceExternal, "base", node), writer), - .resource_raw_data => try self.writeResourceRawData(@fieldParentPtr(Node.ResourceRawData, "base", node), writer), + .resource_external => try self.writeResourceExternal(@alignCast(@fieldParentPtr("base", node)), writer), + .resource_raw_data => try self.writeResourceRawData(@alignCast(@fieldParentPtr("base", node)), writer), .literal => unreachable, // this is context dependent and should be handled by its parent .binary_expression => unreachable, .grouped_expression => unreachable, .not_expression => unreachable, .invalid => {}, // no-op, currently only used for dangling literals at EOF - .accelerators => try self.writeAccelerators(@fieldParentPtr(Node.Accelerators, "base", node), writer), + .accelerators => try self.writeAccelerators(@alignCast(@fieldParentPtr("base", node)), writer), .accelerator => unreachable, // handled by writeAccelerators - .dialog => try self.writeDialog(@fieldParentPtr(Node.Dialog, "base", node), writer), + .dialog => try self.writeDialog(@alignCast(@fieldParentPtr("base", node)), writer), .control_statement => unreachable, - .toolbar => try self.writeToolbar(@fieldParentPtr(Node.Toolbar, "base", node), writer), - .menu => try self.writeMenu(@fieldParentPtr(Node.Menu, "base", node), writer), + .toolbar => try self.writeToolbar(@alignCast(@fieldParentPtr("base", node)), writer), + .menu => try self.writeMenu(@alignCast(@fieldParentPtr("base", node)), writer), .menu_item => unreachable, .menu_item_separator => unreachable, .menu_item_ex => unreachable, .popup => unreachable, .popup_ex => unreachable, - .version_info => try self.writeVersionInfo(@fieldParentPtr(Node.VersionInfo, "base", node), writer), + .version_info => try self.writeVersionInfo(@alignCast(@fieldParentPtr("base", node)), writer), .version_statement => unreachable, .block => unreachable, .block_value => unreachable, .block_value_value => unreachable, - .string_table => try self.writeStringTable(@fieldParentPtr(Node.StringTable, "base", node)), + .string_table => try self.writeStringTable(@alignCast(@fieldParentPtr("base", node))), .string_table_string => unreachable, // handled by writeStringTable - .language_statement => self.writeLanguageStatement(@fieldParentPtr(Node.LanguageStatement, "base", node)), + .language_statement => self.writeLanguageStatement(@alignCast(@fieldParentPtr("base", node))), .font_statement => unreachable, - .simple_statement => self.writeTopLevelSimpleStatement(@fieldParentPtr(Node.SimpleStatement, "base", node)), + .simple_statement => self.writeTopLevelSimpleStatement(@alignCast(@fieldParentPtr("base", node))), } } @@ -1289,7 +1289,7 @@ pub const Compiler = struct { return evaluateNumberExpression(node, self.source, self.input_code_pages).asWord(); } else { std.debug.assert(node.isStringLiteral()); - const literal = @fieldParentPtr(Node.Literal, "base", node); + const literal: *Node.Literal = @alignCast(@fieldParentPtr("base", node)); const bytes = SourceBytes{ .slice = literal.token.slice(self.source), .code_page = self.input_code_pages.getForToken(literal.token), @@ -1342,7 +1342,7 @@ pub const Compiler = struct { /// the writer within this function could return error.NoSpaceLeft pub fn writeAcceleratorsData(self: *Compiler, node: *Node.Accelerators, data_writer: anytype) !void { for (node.accelerators, 0..) |accel_node, i| { - const accelerator = @fieldParentPtr(Node.Accelerator, "base", accel_node); + const accelerator: *Node.Accelerator = @alignCast(@fieldParentPtr("base", accel_node)); var modifiers = res.AcceleratorModifiers{}; for (accelerator.type_and_options) |type_or_option| { const modifier = rc.AcceleratorTypeAndOptions.map.get(type_or_option.slice(self.source)).?; @@ -1426,7 +1426,7 @@ pub const Compiler = struct { for (node.optional_statements) |optional_statement| { switch (optional_statement.id) { .simple_statement => { - const simple_statement = @fieldParentPtr(Node.SimpleStatement, "base", optional_statement); + const simple_statement: *Node.SimpleStatement = @alignCast(@fieldParentPtr("base", optional_statement)); const statement_identifier = simple_statement.identifier; const statement_type = rc.OptionalStatements.dialog_map.get(statement_identifier.slice(self.source)) orelse continue; switch (statement_type) { @@ -1440,7 +1440,7 @@ pub const Compiler = struct { }, .caption => { std.debug.assert(simple_statement.value.id == .literal); - const literal_node = @fieldParentPtr(Node.Literal, "base", simple_statement.value); + const literal_node: *Node.Literal = @alignCast(@fieldParentPtr("base", simple_statement.value)); optional_statement_values.caption = literal_node.token; }, .class => { @@ -1466,7 +1466,7 @@ pub const Compiler = struct { optional_statement_values.class = NameOrOrdinal{ .ordinal = class_ordinal.asWord() }; } else { std.debug.assert(simple_statement.value.isStringLiteral()); - const literal_node = @fieldParentPtr(Node.Literal, "base", simple_statement.value); + const literal_node: *Node.Literal = @alignCast(@fieldParentPtr("base", simple_statement.value)); const parsed = try self.parseQuotedStringAsWideString(literal_node.token); optional_statement_values.class = NameOrOrdinal{ .name = parsed }; } @@ -1492,7 +1492,7 @@ pub const Compiler = struct { } std.debug.assert(simple_statement.value.id == .literal); - const literal_node = @fieldParentPtr(Node.Literal, "base", simple_statement.value); + const literal_node: *Node.Literal = @alignCast(@fieldParentPtr("base", simple_statement.value)); const token_slice = literal_node.token.slice(self.source); const bytes = SourceBytes{ @@ -1542,7 +1542,7 @@ pub const Compiler = struct { } }, .font_statement => { - const font = @fieldParentPtr(Node.FontStatement, "base", optional_statement); + const font: *Node.FontStatement = @alignCast(@fieldParentPtr("base", optional_statement)); if (optional_statement_values.font != null) { optional_statement_values.font.?.node = font; } else { @@ -1581,7 +1581,7 @@ pub const Compiler = struct { // Multiple CLASS parameters are specified and any of them are treated as a number, then // the last CLASS is always treated as a number no matter what if (last_class_would_be_forced_ordinal and optional_statement_values.class.? == .name) { - const literal_node = @fieldParentPtr(Node.Literal, "base", last_class.value); + const literal_node: *Node.Literal = @alignCast(@fieldParentPtr("base", last_class.value)); const ordinal_value = res.ForcedOrdinal.fromUtf16Le(optional_statement_values.class.?.name); try self.addErrorDetails(.{ @@ -1611,7 +1611,7 @@ pub const Compiler = struct { // 2. Multiple MENU parameters are specified and any of them are treated as a number, then // the last MENU is always treated as a number no matter what if ((last_menu_would_be_forced_ordinal or last_menu_has_digit_as_first_char) and optional_statement_values.menu.? == .name) { - const literal_node = @fieldParentPtr(Node.Literal, "base", last_menu.value); + const literal_node: *Node.Literal = @alignCast(@fieldParentPtr("base", last_menu.value)); const token_slice = literal_node.token.slice(self.source); const bytes = SourceBytes{ .slice = token_slice, @@ -1658,7 +1658,7 @@ pub const Compiler = struct { // between resinator and the Win32 RC compiler, we only emit a hint instead of // a warning. if (last_menu_did_uppercase) { - const literal_node = @fieldParentPtr(Node.Literal, "base", last_menu.value); + const literal_node: *Node.Literal = @alignCast(@fieldParentPtr("base", last_menu.value)); try self.addErrorDetails(.{ .err = .dialog_menu_id_was_uppercased, .type = .hint, @@ -1704,7 +1704,7 @@ pub const Compiler = struct { defer controls_by_id.deinit(); for (node.controls) |control_node| { - const control = @fieldParentPtr(Node.ControlStatement, "base", control_node); + const control: *Node.ControlStatement = @alignCast(@fieldParentPtr("base", control_node)); self.writeDialogControl( control, @@ -1940,7 +1940,7 @@ pub const Compiler = struct { // And then write out the ordinal using a proper a NameOrOrdinal encoding. try ordinal.write(data_writer); } else if (class_node.isStringLiteral()) { - const literal_node = @fieldParentPtr(Node.Literal, "base", class_node); + const literal_node: *Node.Literal = @alignCast(@fieldParentPtr("base", class_node)); const parsed = try self.parseQuotedStringAsWideString(literal_node.token); defer self.allocator.free(parsed); if (rc.ControlClass.fromWideString(parsed)) |control_class| { @@ -1955,7 +1955,7 @@ pub const Compiler = struct { try name.write(data_writer); } } else { - const literal_node = @fieldParentPtr(Node.Literal, "base", class_node); + const literal_node: *Node.Literal = @alignCast(@fieldParentPtr("base", class_node)); const literal_slice = literal_node.token.slice(self.source); // This succeeding is guaranteed by the parser const control_class = rc.ControlClass.map.get(literal_slice) orelse unreachable; @@ -2178,7 +2178,7 @@ pub const Compiler = struct { try writer.writeInt(u16, 0, .little); // null-terminated UTF-16 text }, .menu_item => { - const menu_item = @fieldParentPtr(Node.MenuItem, "base", node); + const menu_item: *Node.MenuItem = @alignCast(@fieldParentPtr("base", node)); var flags = res.MenuItemFlags{}; for (menu_item.option_list) |option_token| { // This failing would be a bug in the parser @@ -2196,7 +2196,7 @@ pub const Compiler = struct { try writer.writeAll(std.mem.sliceAsBytes(text[0 .. text.len + 1])); }, .popup => { - const popup = @fieldParentPtr(Node.Popup, "base", node); + const popup: *Node.Popup = @alignCast(@fieldParentPtr("base", node)); var flags = res.MenuItemFlags{ .value = res.MF.POPUP }; for (popup.option_list) |option_token| { // This failing would be a bug in the parser @@ -2216,7 +2216,7 @@ pub const Compiler = struct { } }, inline .menu_item_ex, .popup_ex => |node_type| { - const menu_item = @fieldParentPtr(node_type.Type(), "base", node); + const menu_item: *node_type.Type() = @alignCast(@fieldParentPtr("base", node)); if (menu_item.type) |flags| { const value = evaluateNumberExpression(flags, self.source, self.input_code_pages); @@ -2295,7 +2295,7 @@ pub const Compiler = struct { for (node.fixed_info) |fixed_info| { switch (fixed_info.id) { .version_statement => { - const version_statement = @fieldParentPtr(Node.VersionStatement, "base", fixed_info); + const version_statement: *Node.VersionStatement = @alignCast(@fieldParentPtr("base", fixed_info)); const version_type = rc.VersionInfo.map.get(version_statement.type.slice(self.source)).?; // Ensure that all parts are cleared for each version, to properly account for @@ -2345,7 +2345,7 @@ pub const Compiler = struct { } }, .simple_statement => { - const statement = @fieldParentPtr(Node.SimpleStatement, "base", fixed_info); + const statement: *Node.SimpleStatement = @alignCast(@fieldParentPtr("base", fixed_info)); const statement_type = rc.VersionInfo.map.get(statement.identifier.slice(self.source)).?; const value = evaluateNumberExpression(statement.value, self.source, self.input_code_pages); switch (statement_type) { @@ -2416,7 +2416,7 @@ pub const Compiler = struct { switch (node.id) { inline .block, .block_value => |node_type| { - const block_or_value = @fieldParentPtr(node_type.Type(), "base", node); + const block_or_value: *node_type.Type() = @alignCast(@fieldParentPtr("base", node)); const parsed_key = try self.parseQuotedStringAsWideString(block_or_value.key); defer self.allocator.free(parsed_key); @@ -2506,7 +2506,7 @@ pub const Compiler = struct { const language = getLanguageFromOptionalStatements(node.optional_statements, self.source, self.input_code_pages) orelse self.state.language; for (node.strings) |string_node| { - const string = @fieldParentPtr(Node.StringTableString, "base", string_node); + const string: *Node.StringTableString = @alignCast(@fieldParentPtr("base", string_node)); const string_id_data = try self.evaluateDataExpression(string.id); const string_id = string_id_data.number.asWord(); @@ -2795,11 +2795,11 @@ pub const Compiler = struct { fn applyToOptionalStatements(language: *res.Language, version: *u32, characteristics: *u32, statements: []*Node, source: []const u8, code_page_lookup: *const CodePageLookup) void { for (statements) |node| switch (node.id) { .language_statement => { - const language_statement = @fieldParentPtr(Node.LanguageStatement, "base", node); + const language_statement: *Node.LanguageStatement = @alignCast(@fieldParentPtr("base", node)); language.* = languageFromLanguageStatement(language_statement, source, code_page_lookup); }, .simple_statement => { - const simple_statement = @fieldParentPtr(Node.SimpleStatement, "base", node); + const simple_statement: *Node.SimpleStatement = @alignCast(@fieldParentPtr("base", node)); const statement_type = rc.OptionalStatements.map.get(simple_statement.identifier.slice(source)) orelse continue; const result = Compiler.evaluateNumberExpression(simple_statement.value, source, code_page_lookup); switch (statement_type) { @@ -2824,7 +2824,7 @@ pub const Compiler = struct { pub fn getLanguageFromOptionalStatements(statements: []*Node, source: []const u8, code_page_lookup: *const CodePageLookup) ?res.Language { for (statements) |node| switch (node.id) { .language_statement => { - const language_statement = @fieldParentPtr(Node.LanguageStatement, "base", node); + const language_statement: *Node.LanguageStatement = @alignCast(@fieldParentPtr("base", node)); return languageFromLanguageStatement(language_statement, source, code_page_lookup); }, else => continue, diff --git a/lib/compiler/resinator/parse.zig b/lib/compiler/resinator/parse.zig index 3426c389b162..e6fe228dcc49 100644 --- a/lib/compiler/resinator/parse.zig +++ b/lib/compiler/resinator/parse.zig @@ -889,7 +889,7 @@ pub const Parser = struct { if (control == .control) { class = try self.parseExpression(.{}); if (class.?.id == .literal) { - const class_literal = @fieldParentPtr(Node.Literal, "base", class.?); + const class_literal: *Node.Literal = @alignCast(@fieldParentPtr("base", class.?)); const is_invalid_control_class = class_literal.token.id == .literal and !rc.ControlClass.map.has(class_literal.token.slice(self.lexer.buffer)); if (is_invalid_control_class) { return self.addErrorDetailsAndFail(.{ diff --git a/lib/docs/wasm/Walk.zig b/lib/docs/wasm/Walk.zig index 486f4c32d260..3f7ccc4bac3b 100644 --- a/lib/docs/wasm/Walk.zig +++ b/lib/docs/wasm/Walk.zig @@ -48,7 +48,7 @@ pub const File = struct { pub fn field_count(file: *const File, node: Ast.Node.Index) u32 { const scope = file.scopes.get(node) orelse return 0; if (scope.tag != .namespace) return 0; - const namespace = @fieldParentPtr(Scope.Namespace, "base", scope); + const namespace: *Scope.Namespace = @alignCast(@fieldParentPtr("base", scope)); return namespace.field_count; } @@ -439,11 +439,11 @@ pub const Scope = struct { while (true) switch (it.tag) { .top => unreachable, .local => { - const local = @fieldParentPtr(Local, "base", it); + const local: *Local = @alignCast(@fieldParentPtr("base", it)); it = local.parent; }, .namespace => { - const namespace = @fieldParentPtr(Namespace, "base", it); + const namespace: *Namespace = @alignCast(@fieldParentPtr("base", it)); return namespace.decl_index; }, }; @@ -453,7 +453,7 @@ pub const Scope = struct { switch (scope.tag) { .top, .local => return null, .namespace => { - const namespace = @fieldParentPtr(Namespace, "base", scope); + const namespace: *Namespace = @alignCast(@fieldParentPtr("base", scope)); return namespace.names.get(name); }, } @@ -465,7 +465,7 @@ pub const Scope = struct { while (true) switch (it.tag) { .top => break, .local => { - const local = @fieldParentPtr(Local, "base", it); + const local: *Local = @alignCast(@fieldParentPtr("base", it)); const name_token = main_tokens[local.var_node] + 1; const ident_name = ast.tokenSlice(name_token); if (std.mem.eql(u8, ident_name, name)) { @@ -474,7 +474,7 @@ pub const Scope = struct { it = local.parent; }, .namespace => { - const namespace = @fieldParentPtr(Namespace, "base", it); + const namespace: *Namespace = @alignCast(@fieldParentPtr("base", it)); if (namespace.names.get(name)) |node| { return node; } diff --git a/lib/std/Build.zig b/lib/std/Build.zig index f59498fb5050..5db70d5491e2 100644 --- a/lib/std/Build.zig +++ b/lib/std/Build.zig @@ -1062,8 +1062,8 @@ pub fn getUninstallStep(self: *Build) *Step { fn makeUninstall(uninstall_step: *Step, prog_node: *std.Progress.Node) anyerror!void { _ = prog_node; - const uninstall_tls = @fieldParentPtr(*TopLevelStep, "step", uninstall_step); - const self = @fieldParentPtr(*Build, "uninstall_tls", uninstall_tls); + const uninstall_tls: *TopLevelStep = @fieldParentPtr("step", uninstall_step); + const self: *Build = @fieldParentPtr("uninstall_tls", uninstall_tls); for (self.installed_files.items) |installed_file| { const full_path = self.getInstallPath(installed_file.dir, installed_file.path); diff --git a/lib/std/Build/Step.zig b/lib/std/Build/Step.zig index 67e1b0ed585b..d88288748c41 100644 --- a/lib/std/Build/Step.zig +++ b/lib/std/Build/Step.zig @@ -231,7 +231,7 @@ fn makeNoOp(step: *Step, prog_node: *std.Progress.Node) anyerror!void { pub fn cast(step: *Step, comptime T: type) ?*T { if (step.id == T.base_id) { - return @fieldParentPtr(*T, "step", step); + return @fieldParentPtr("step", step); } return null; } diff --git a/lib/std/Build/Step/CheckFile.zig b/lib/std/Build/Step/CheckFile.zig index 9dfb94a67da6..19d697a3b65c 100644 --- a/lib/std/Build/Step/CheckFile.zig +++ b/lib/std/Build/Step/CheckFile.zig @@ -49,7 +49,7 @@ pub fn setName(self: *CheckFile, name: []const u8) void { fn make(step: *Step, prog_node: *std.Progress.Node) !void { _ = prog_node; const b = step.owner; - const self = @fieldParentPtr(*CheckFile, "step", step); + const self: *CheckFile = @fieldParentPtr("step", step); const src_path = self.source.getPath(b); const contents = fs.cwd().readFileAlloc(b.allocator, src_path, self.max_bytes) catch |err| { diff --git a/lib/std/Build/Step/CheckObject.zig b/lib/std/Build/Step/CheckObject.zig index a1c3bbcf14f7..c39a487649bc 100644 --- a/lib/std/Build/Step/CheckObject.zig +++ b/lib/std/Build/Step/CheckObject.zig @@ -530,7 +530,7 @@ fn make(step: *Step, prog_node: *std.Progress.Node) !void { _ = prog_node; const b = step.owner; const gpa = b.allocator; - const self = @fieldParentPtr(*CheckObject, "step", step); + const self: *CheckObject = @fieldParentPtr("step", step); const src_path = self.source.getPath(b); const contents = fs.cwd().readFileAllocOptions( diff --git a/lib/std/Build/Step/Compile.zig b/lib/std/Build/Step/Compile.zig index f3182b02580f..0c37769e9cf2 100644 --- a/lib/std/Build/Step/Compile.zig +++ b/lib/std/Build/Step/Compile.zig @@ -918,7 +918,7 @@ fn getGeneratedFilePath(self: *Compile, comptime tag_name: []const u8, asking_st fn make(step: *Step, prog_node: *std.Progress.Node) !void { const b = step.owner; const arena = b.allocator; - const self = @fieldParentPtr(*Compile, "step", step); + const self: *Compile = @fieldParentPtr("step", step); var zig_args = ArrayList([]const u8).init(arena); defer zig_args.deinit(); diff --git a/lib/std/Build/Step/ConfigHeader.zig b/lib/std/Build/Step/ConfigHeader.zig index a26bec469243..46631cac24a4 100644 --- a/lib/std/Build/Step/ConfigHeader.zig +++ b/lib/std/Build/Step/ConfigHeader.zig @@ -167,7 +167,7 @@ fn putValue(self: *ConfigHeader, field_name: []const u8, comptime T: type, v: T) fn make(step: *Step, prog_node: *std.Progress.Node) !void { _ = prog_node; const b = step.owner; - const self = @fieldParentPtr(*ConfigHeader, "step", step); + const self: *ConfigHeader = @fieldParentPtr("step", step); const gpa = b.allocator; const arena = b.allocator; diff --git a/lib/std/Build/Step/Fmt.zig b/lib/std/Build/Step/Fmt.zig index a46ca2578e63..a39a0057ff14 100644 --- a/lib/std/Build/Step/Fmt.zig +++ b/lib/std/Build/Step/Fmt.zig @@ -47,7 +47,7 @@ fn make(step: *Step, prog_node: *std.Progress.Node) !void { const b = step.owner; const arena = b.allocator; - const self = @fieldParentPtr(*Fmt, "step", step); + const self: *Fmt = @fieldParentPtr("step", step); var argv: std.ArrayListUnmanaged([]const u8) = .{}; try argv.ensureUnusedCapacity(arena, 2 + 1 + self.paths.len + 2 * self.exclude_paths.len); diff --git a/lib/std/Build/Step/InstallArtifact.zig b/lib/std/Build/Step/InstallArtifact.zig index 9afab1925f1b..3ef69f597512 100644 --- a/lib/std/Build/Step/InstallArtifact.zig +++ b/lib/std/Build/Step/InstallArtifact.zig @@ -121,7 +121,7 @@ pub fn create(owner: *std.Build, artifact: *Step.Compile, options: Options) *Ins fn make(step: *Step, prog_node: *std.Progress.Node) !void { _ = prog_node; - const self = @fieldParentPtr(*InstallArtifact, "step", step); + const self: *InstallArtifact = @fieldParentPtr("step", step); const dest_builder = step.owner; const cwd = fs.cwd(); diff --git a/lib/std/Build/Step/InstallDir.zig b/lib/std/Build/Step/InstallDir.zig index ce71b3773c79..96ab9205316f 100644 --- a/lib/std/Build/Step/InstallDir.zig +++ b/lib/std/Build/Step/InstallDir.zig @@ -63,7 +63,7 @@ pub fn create(owner: *std.Build, options: Options) *InstallDirStep { fn make(step: *Step, prog_node: *std.Progress.Node) !void { _ = prog_node; - const self = @fieldParentPtr(*InstallDirStep, "step", step); + const self: *InstallDirStep = @fieldParentPtr("step", step); const dest_builder = self.dest_builder; const arena = dest_builder.allocator; const dest_prefix = dest_builder.getInstallPath(self.options.install_dir, self.options.install_subdir); diff --git a/lib/std/Build/Step/InstallFile.zig b/lib/std/Build/Step/InstallFile.zig index 0c61572f5cef..ca5a986fd16a 100644 --- a/lib/std/Build/Step/InstallFile.zig +++ b/lib/std/Build/Step/InstallFile.zig @@ -43,7 +43,7 @@ pub fn create( fn make(step: *Step, prog_node: *std.Progress.Node) !void { _ = prog_node; const src_builder = step.owner; - const self = @fieldParentPtr(*InstallFile, "step", step); + const self: *InstallFile = @fieldParentPtr("step", step); const dest_builder = self.dest_builder; const full_src_path = self.source.getPath2(src_builder, step); const full_dest_path = dest_builder.getInstallPath(self.dir, self.dest_rel_path); diff --git a/lib/std/Build/Step/ObjCopy.zig b/lib/std/Build/Step/ObjCopy.zig index 972681723f85..ddd56833c04b 100644 --- a/lib/std/Build/Step/ObjCopy.zig +++ b/lib/std/Build/Step/ObjCopy.zig @@ -92,7 +92,7 @@ pub fn getOutputSeparatedDebug(self: *const ObjCopy) ?std.Build.LazyPath { fn make(step: *Step, prog_node: *std.Progress.Node) !void { const b = step.owner; - const self = @fieldParentPtr(*ObjCopy, "step", step); + const self: *ObjCopy = @fieldParentPtr("step", step); var man = b.graph.cache.obtain(); defer man.deinit(); diff --git a/lib/std/Build/Step/Options.zig b/lib/std/Build/Step/Options.zig index 59f16f5b4264..1d0e34a254b7 100644 --- a/lib/std/Build/Step/Options.zig +++ b/lib/std/Build/Step/Options.zig @@ -415,7 +415,7 @@ fn make(step: *Step, prog_node: *std.Progress.Node) !void { _ = prog_node; const b = step.owner; - const self = @fieldParentPtr(*Options, "step", step); + const self: *Options = @fieldParentPtr("step", step); for (self.args.items) |item| { self.addOption( diff --git a/lib/std/Build/Step/RemoveDir.zig b/lib/std/Build/Step/RemoveDir.zig index 4eedf563a8d5..de1d786e41b1 100644 --- a/lib/std/Build/Step/RemoveDir.zig +++ b/lib/std/Build/Step/RemoveDir.zig @@ -28,7 +28,7 @@ fn make(step: *Step, prog_node: *std.Progress.Node) !void { _ = prog_node; const b = step.owner; - const self = @fieldParentPtr(*RemoveDir, "step", step); + const self: *RemoveDir = @fieldParentPtr("step", step); b.build_root.handle.deleteTree(self.dir_path) catch |err| { if (b.build_root.path) |base| { diff --git a/lib/std/Build/Step/Run.zig b/lib/std/Build/Step/Run.zig index b8f213b8f71b..b3550624fc6d 100644 --- a/lib/std/Build/Step/Run.zig +++ b/lib/std/Build/Step/Run.zig @@ -497,7 +497,7 @@ const IndexedOutput = struct { fn make(step: *Step, prog_node: *std.Progress.Node) !void { const b = step.owner; const arena = b.allocator; - const self = @fieldParentPtr(*Run, "step", step); + const self: *Run = @fieldParentPtr("step", step); const has_side_effects = self.hasSideEffects(); var argv_list = ArrayList([]const u8).init(arena); diff --git a/lib/std/Build/Step/TranslateC.zig b/lib/std/Build/Step/TranslateC.zig index 35536158b062..ac421a67cad5 100644 --- a/lib/std/Build/Step/TranslateC.zig +++ b/lib/std/Build/Step/TranslateC.zig @@ -118,7 +118,7 @@ pub fn defineCMacroRaw(self: *TranslateC, name_and_value: []const u8) void { fn make(step: *Step, prog_node: *std.Progress.Node) !void { const b = step.owner; - const self = @fieldParentPtr(*TranslateC, "step", step); + const self: *TranslateC = @fieldParentPtr("step", step); var argv_list = std.ArrayList([]const u8).init(b.allocator); try argv_list.append(b.graph.zig_exe); diff --git a/lib/std/Build/Step/WriteFile.zig b/lib/std/Build/Step/WriteFile.zig index c997c86d1f57..d0ac68377ac1 100644 --- a/lib/std/Build/Step/WriteFile.zig +++ b/lib/std/Build/Step/WriteFile.zig @@ -141,7 +141,7 @@ fn maybeUpdateName(wf: *WriteFile) void { fn make(step: *Step, prog_node: *std.Progress.Node) !void { _ = prog_node; const b = step.owner; - const wf = @fieldParentPtr(*WriteFile, "step", step); + const wf: *WriteFile = @fieldParentPtr("step", step); // Writing to source files is kind of an extra capability of this // WriteFile - arguably it should be a different step. But anyway here diff --git a/lib/std/Thread/Futex.zig b/lib/std/Thread/Futex.zig index 39afe249d19e..4bbe1f629389 100644 --- a/lib/std/Thread/Futex.zig +++ b/lib/std/Thread/Futex.zig @@ -644,7 +644,7 @@ const PosixImpl = struct { }; // There's a wait queue on the address; get the queue head and tail. - const head = @fieldParentPtr(Waiter, "node", entry_node); + const head: *Waiter = @fieldParentPtr("node", entry_node); const tail = head.tail orelse unreachable; // Push the waiter to the tail by replacing it and linking to the previous tail. @@ -656,7 +656,7 @@ const PosixImpl = struct { fn remove(treap: *Treap, address: usize, max_waiters: usize) WaitList { // Find the wait queue associated with this address and get the head/tail if any. var entry = treap.getEntryFor(address); - var queue_head = if (entry.node) |node| @fieldParentPtr(Waiter, "node", node) else null; + var queue_head: ?*Waiter = if (entry.node) |node| @fieldParentPtr("node", node) else null; const queue_tail = if (queue_head) |head| head.tail else null; // Once we're done updating the head, fix it's tail pointer and update the treap's queue head as well. @@ -699,7 +699,7 @@ const PosixImpl = struct { }; // The queue head and tail must exist if we're removing a queued waiter. - const head = @fieldParentPtr(Waiter, "node", entry.node orelse unreachable); + const head: *Waiter = @fieldParentPtr("node", entry.node orelse unreachable); const tail = head.tail orelse unreachable; // A waiter with a previous link is never the head of the queue. diff --git a/lib/std/Thread/Pool.zig b/lib/std/Thread/Pool.zig index 9f386c8e6570..a96b4255e200 100644 --- a/lib/std/Thread/Pool.zig +++ b/lib/std/Thread/Pool.zig @@ -88,8 +88,8 @@ pub fn spawn(pool: *Pool, comptime func: anytype, args: anytype) !void { run_node: RunQueue.Node = .{ .data = .{ .runFn = runFn } }, fn runFn(runnable: *Runnable) void { - const run_node = @fieldParentPtr(*RunQueue.Node, "data", runnable); - const closure = @fieldParentPtr(*@This(), "run_node", run_node); + const run_node: *RunQueue.Node = @fieldParentPtr("data", runnable); + const closure: *@This() = @fieldParentPtr("run_node", run_node); @call(.auto, func, closure.arguments); // The thread pool's allocator is protected by the mutex. diff --git a/lib/std/http/Client.zig b/lib/std/http/Client.zig index 02aea79dd911..2cec73f281d7 100644 --- a/lib/std/http/Client.zig +++ b/lib/std/http/Client.zig @@ -108,7 +108,7 @@ pub const ConnectionPool = struct { pool.mutex.lock(); defer pool.mutex.unlock(); - const node = @fieldParentPtr(*Node, "data", connection); + const node: *Node = @fieldParentPtr("data", connection); pool.used.remove(node); diff --git a/lib/std/zig.zig b/lib/std/zig.zig index 0b2b29eebfa3..2101530a7fdb 100644 --- a/lib/std/zig.zig +++ b/lib/std/zig.zig @@ -1021,4 +1021,5 @@ test { _ = string_literal; _ = system; _ = target; + _ = c_translation; } diff --git a/lib/std/zig/AstGen.zig b/lib/std/zig/AstGen.zig index 574a8e46af78..a52007eabf24 100644 --- a/lib/std/zig/AstGen.zig +++ b/lib/std/zig/AstGen.zig @@ -11715,20 +11715,20 @@ const Scope = struct { fn cast(base: *Scope, comptime T: type) ?*T { if (T == Defer) { switch (base.tag) { - .defer_normal, .defer_error => return @alignCast(@fieldParentPtr(*align(1) T, "base", base)), + .defer_normal, .defer_error => return @alignCast(@fieldParentPtr("base", base)), else => return null, } } if (T == Namespace) { switch (base.tag) { - .namespace => return @alignCast(@fieldParentPtr(*align(1) T, "base", base)), + .namespace => return @alignCast(@fieldParentPtr("base", base)), else => return null, } } if (base.tag != T.base_tag) return null; - return @alignCast(@fieldParentPtr(*align(1) T, "base", base)); + return @alignCast(@fieldParentPtr("base", base)); } fn parent(base: *Scope) ?*Scope { diff --git a/lib/std/zig/c_translation.zig b/lib/std/zig/c_translation.zig index be7431127fe9..504f134b4158 100644 --- a/lib/std/zig/c_translation.zig +++ b/lib/std/zig/c_translation.zig @@ -414,7 +414,7 @@ pub const Macros = struct { } pub fn WL_CONTAINER_OF(ptr: anytype, sample: anytype, comptime member: []const u8) @TypeOf(sample) { - return @fieldParentPtr(@TypeOf(sample), member, ptr); + return @fieldParentPtr(member, ptr); } /// A 2-argument function-like macro defined as #define FOO(A, B) (A)(B) diff --git a/src/Module.zig b/src/Module.zig index ac2d11d575ea..0399a2f85b53 100644 --- a/src/Module.zig +++ b/src/Module.zig @@ -299,7 +299,7 @@ const ValueArena = struct { /// and must live until the matching call to release(). pub fn acquire(self: *ValueArena, child_allocator: Allocator, out_arena_allocator: *std.heap.ArenaAllocator) Allocator { if (self.state_acquired) |state_acquired| { - return @fieldParentPtr(std.heap.ArenaAllocator, "state", state_acquired).allocator(); + return @as(*std.heap.ArenaAllocator, @fieldParentPtr("state", state_acquired)).allocator(); } out_arena_allocator.* = self.state.promote(child_allocator); @@ -309,7 +309,7 @@ const ValueArena = struct { /// Releases the allocator acquired by `acquire. `arena_allocator` must match the one passed to `acquire`. pub fn release(self: *ValueArena, arena_allocator: *std.heap.ArenaAllocator) void { - if (@fieldParentPtr(std.heap.ArenaAllocator, "state", self.state_acquired.?) == arena_allocator) { + if (@as(*std.heap.ArenaAllocator, @fieldParentPtr("state", self.state_acquired.?)) == arena_allocator) { self.state = self.state_acquired.?.*; self.state_acquired = null; } diff --git a/src/link.zig b/src/link.zig index 8ccd68fb650f..8b28a17b9dfa 100644 --- a/src/link.zig +++ b/src/link.zig @@ -188,15 +188,10 @@ pub const File = struct { emit: Compilation.Emit, options: OpenOptions, ) !*File { - const tag = Tag.fromObjectFormat(comp.root_mod.resolved_target.result.ofmt); - switch (tag) { - .c => { - const ptr = try C.open(arena, comp, emit, options); - return &ptr.base; - }, - inline else => |t| { - if (build_options.only_c) unreachable; - const ptr = try t.Type().open(arena, comp, emit, options); + switch (Tag.fromObjectFormat(comp.root_mod.resolved_target.result.ofmt)) { + inline else => |tag| { + if (tag != .c and build_options.only_c) unreachable; + const ptr = try tag.Type().open(arena, comp, emit, options); return &ptr.base; }, } @@ -208,25 +203,17 @@ pub const File = struct { emit: Compilation.Emit, options: OpenOptions, ) !*File { - const tag = Tag.fromObjectFormat(comp.root_mod.resolved_target.result.ofmt); - switch (tag) { - .c => { - const ptr = try C.createEmpty(arena, comp, emit, options); - return &ptr.base; - }, - inline else => |t| { - if (build_options.only_c) unreachable; - const ptr = try t.Type().createEmpty(arena, comp, emit, options); + switch (Tag.fromObjectFormat(comp.root_mod.resolved_target.result.ofmt)) { + inline else => |tag| { + if (tag != .c and build_options.only_c) unreachable; + const ptr = try tag.Type().createEmpty(arena, comp, emit, options); return &ptr.base; }, } } pub fn cast(base: *File, comptime T: type) ?*T { - if (base.tag != T.base_tag) - return null; - - return @fieldParentPtr(*T, "base", base); + return if (base.tag == T.base_tag) @fieldParentPtr("base", base) else null; } pub fn makeWritable(base: *File) !void { @@ -383,7 +370,7 @@ pub const File = struct { .c => unreachable, .nvptx => unreachable, inline else => |t| { - return @fieldParentPtr(*t.Type(), "base", base).lowerUnnamedConst(val, decl_index); + return @as(*t.Type(), @fieldParentPtr("base", base)).lowerUnnamedConst(val, decl_index); }, } } @@ -402,7 +389,7 @@ pub const File = struct { .c => unreachable, .nvptx => unreachable, inline else => |t| { - return @fieldParentPtr(*t.Type(), "base", base).getGlobalSymbol(name, lib_name); + return @as(*t.Type(), @fieldParentPtr("base", base)).getGlobalSymbol(name, lib_name); }, } } @@ -412,12 +399,9 @@ pub const File = struct { const decl = module.declPtr(decl_index); assert(decl.has_tv); switch (base.tag) { - .c => { - return @fieldParentPtr(*C, "base", base).updateDecl(module, decl_index); - }, inline else => |tag| { - if (build_options.only_c) unreachable; - return @fieldParentPtr(*tag.Type(), "base", base).updateDecl(module, decl_index); + if (tag != .c and build_options.only_c) unreachable; + return @as(*tag.Type(), @fieldParentPtr("base", base)).updateDecl(module, decl_index); }, } } @@ -431,12 +415,9 @@ pub const File = struct { liveness: Liveness, ) UpdateDeclError!void { switch (base.tag) { - .c => { - return @fieldParentPtr(*C, "base", base).updateFunc(module, func_index, air, liveness); - }, inline else => |tag| { - if (build_options.only_c) unreachable; - return @fieldParentPtr(*tag.Type(), "base", base).updateFunc(module, func_index, air, liveness); + if (tag != .c and build_options.only_c) unreachable; + return @as(*tag.Type(), @fieldParentPtr("base", base)).updateFunc(module, func_index, air, liveness); }, } } @@ -446,12 +427,9 @@ pub const File = struct { assert(decl.has_tv); switch (base.tag) { .spirv, .nvptx => {}, - .c => { - return @fieldParentPtr(*C, "base", base).updateDeclLineNumber(module, decl_index); - }, inline else => |tag| { - if (build_options.only_c) unreachable; - return @fieldParentPtr(*tag.Type(), "base", base).updateDeclLineNumber(module, decl_index); + if (tag != .c and build_options.only_c) unreachable; + return @as(*tag.Type(), @fieldParentPtr("base", base)).updateDeclLineNumber(module, decl_index); }, } } @@ -473,11 +451,9 @@ pub const File = struct { base.releaseLock(); if (base.file) |f| f.close(); switch (base.tag) { - .c => @fieldParentPtr(*C, "base", base).deinit(), - inline else => |tag| { - if (build_options.only_c) unreachable; - @fieldParentPtr(*tag.Type(), "base", base).deinit(); + if (tag != .c and build_options.only_c) unreachable; + @as(*tag.Type(), @fieldParentPtr("base", base)).deinit(); }, } } @@ -560,7 +536,7 @@ pub const File = struct { pub fn flush(base: *File, arena: Allocator, prog_node: *std.Progress.Node) FlushError!void { if (build_options.only_c) { assert(base.tag == .c); - return @fieldParentPtr(*C, "base", base).flush(arena, prog_node); + return @as(*C, @fieldParentPtr("base", base)).flush(arena, prog_node); } const comp = base.comp; if (comp.clang_preprocessor_mode == .yes or comp.clang_preprocessor_mode == .pch) { @@ -587,7 +563,7 @@ pub const File = struct { } switch (base.tag) { inline else => |tag| { - return @fieldParentPtr(*tag.Type(), "base", base).flush(arena, prog_node); + return @as(*tag.Type(), @fieldParentPtr("base", base)).flush(arena, prog_node); }, } } @@ -596,12 +572,9 @@ pub const File = struct { /// rather than final output mode. pub fn flushModule(base: *File, arena: Allocator, prog_node: *std.Progress.Node) FlushError!void { switch (base.tag) { - .c => { - return @fieldParentPtr(*C, "base", base).flushModule(arena, prog_node); - }, inline else => |tag| { - if (build_options.only_c) unreachable; - return @fieldParentPtr(*tag.Type(), "base", base).flushModule(arena, prog_node); + if (tag != .c and build_options.only_c) unreachable; + return @as(*tag.Type(), @fieldParentPtr("base", base)).flushModule(arena, prog_node); }, } } @@ -609,12 +582,9 @@ pub const File = struct { /// Called when a Decl is deleted from the Module. pub fn freeDecl(base: *File, decl_index: InternPool.DeclIndex) void { switch (base.tag) { - .c => { - @fieldParentPtr(*C, "base", base).freeDecl(decl_index); - }, inline else => |tag| { - if (build_options.only_c) unreachable; - @fieldParentPtr(*tag.Type(), "base", base).freeDecl(decl_index); + if (tag != .c and build_options.only_c) unreachable; + @as(*tag.Type(), @fieldParentPtr("base", base)).freeDecl(decl_index); }, } } @@ -635,12 +605,9 @@ pub const File = struct { exports: []const *Module.Export, ) UpdateExportsError!void { switch (base.tag) { - .c => { - return @fieldParentPtr(*C, "base", base).updateExports(module, exported, exports); - }, inline else => |tag| { - if (build_options.only_c) unreachable; - return @fieldParentPtr(*tag.Type(), "base", base).updateExports(module, exported, exports); + if (tag != .c and build_options.only_c) unreachable; + return @as(*tag.Type(), @fieldParentPtr("base", base)).updateExports(module, exported, exports); }, } } @@ -664,7 +631,7 @@ pub const File = struct { .spirv => unreachable, .nvptx => unreachable, inline else => |tag| { - return @fieldParentPtr(*tag.Type(), "base", base).getDeclVAddr(decl_index, reloc_info); + return @as(*tag.Type(), @fieldParentPtr("base", base)).getDeclVAddr(decl_index, reloc_info); }, } } @@ -683,7 +650,7 @@ pub const File = struct { .spirv => unreachable, .nvptx => unreachable, inline else => |tag| { - return @fieldParentPtr(*tag.Type(), "base", base).lowerAnonDecl(decl_val, decl_align, src_loc); + return @as(*tag.Type(), @fieldParentPtr("base", base)).lowerAnonDecl(decl_val, decl_align, src_loc); }, } } @@ -695,7 +662,7 @@ pub const File = struct { .spirv => unreachable, .nvptx => unreachable, inline else => |tag| { - return @fieldParentPtr(*tag.Type(), "base", base).getAnonDeclVAddr(decl_val, reloc_info); + return @as(*tag.Type(), @fieldParentPtr("base", base)).getAnonDeclVAddr(decl_val, reloc_info); }, } } @@ -714,7 +681,7 @@ pub const File = struct { => {}, inline else => |tag| { - return @fieldParentPtr(*tag.Type(), "base", base).deleteDeclExport(decl_index, name); + return @as(*tag.Type(), @fieldParentPtr("base", base)).deleteDeclExport(decl_index, name); }, } } diff --git a/src/link/tapi/parse.zig b/src/link/tapi/parse.zig index 796cd8ab6a2b..deba9aaef01f 100644 --- a/src/link/tapi/parse.zig +++ b/src/link/tapi/parse.zig @@ -29,34 +29,28 @@ pub const Node = struct { map, list, value, + + pub fn Type(comptime tag: Tag) type { + return switch (tag) { + .doc => Doc, + .map => Map, + .list => List, + .value => Value, + }; + } }; pub fn cast(self: *const Node, comptime T: type) ?*const T { if (self.tag != T.base_tag) { return null; } - return @fieldParentPtr(*const T, "base", self); + return @fieldParentPtr("base", self); } pub fn deinit(self: *Node, allocator: Allocator) void { switch (self.tag) { - .doc => { - const parent = @fieldParentPtr(*Node.Doc, "base", self); - parent.deinit(allocator); - allocator.destroy(parent); - }, - .map => { - const parent = @fieldParentPtr(*Node.Map, "base", self); - parent.deinit(allocator); - allocator.destroy(parent); - }, - .list => { - const parent = @fieldParentPtr(*Node.List, "base", self); - parent.deinit(allocator); - allocator.destroy(parent); - }, - .value => { - const parent = @fieldParentPtr(*Node.Value, "base", self); + inline else => |tag| { + const parent: *tag.Type() = @fieldParentPtr("base", self); parent.deinit(allocator); allocator.destroy(parent); }, @@ -69,12 +63,9 @@ pub const Node = struct { options: std.fmt.FormatOptions, writer: anytype, ) !void { - return switch (self.tag) { - .doc => @fieldParentPtr(*Node.Doc, "base", self).format(fmt, options, writer), - .map => @fieldParentPtr(*Node.Map, "base", self).format(fmt, options, writer), - .list => @fieldParentPtr(*Node.List, "base", self).format(fmt, options, writer), - .value => @fieldParentPtr(*Node.Value, "base", self).format(fmt, options, writer), - }; + switch (self.tag) { + inline else => |tag| return @as(*tag.Type(), @fieldParentPtr("base", self)).format(fmt, options, writer), + } } pub const Doc = struct { diff --git a/src/register_manager.zig b/src/register_manager.zig index 333499f1427a..d1d773ed10e7 100644 --- a/src/register_manager.zig +++ b/src/register_manager.zig @@ -59,7 +59,7 @@ pub fn RegisterManager( pub const RegisterBitSet = StaticBitSet(tracked_registers.len); fn getFunction(self: *Self) *Function { - return @alignCast(@fieldParentPtr(*align(1) Function, "register_manager", self)); + return @alignCast(@fieldParentPtr("register_manager", self)); } fn excludeRegister(reg: Register, register_class: RegisterBitSet) bool { diff --git a/test/behavior/align.zig b/test/behavior/align.zig index 411579fef071..36366fd52caf 100644 --- a/test/behavior/align.zig +++ b/test/behavior/align.zig @@ -693,5 +693,5 @@ test "zero-bit fields in extern struct pad fields appropriately" { try expect(@intFromPtr(&s) % 2 == 0); try expect(@intFromPtr(&s.y) - @intFromPtr(&s.x) == 2); try expect(@intFromPtr(&s.y) == @intFromPtr(&s.a)); - try expect(@fieldParentPtr(*S, "a", &s.a) == &s); + try expect(@as(*S, @fieldParentPtr("a", &s.a)) == &s); } diff --git a/test/behavior/field_parent_ptr.zig b/test/behavior/field_parent_ptr.zig index 896fa3ab59b0..bd2063a3a34c 100644 --- a/test/behavior/field_parent_ptr.zig +++ b/test/behavior/field_parent_ptr.zig @@ -12,14 +12,14 @@ test "@fieldParentPtr struct" { { const c: C = .{ .a = false }; const pcf = &c.a; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { const c: C = .{ .a = false }; const pcf = &c.a; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { @@ -27,7 +27,7 @@ test "@fieldParentPtr struct" { var pcf: @TypeOf(&c.a) = undefined; pcf = &c.a; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { @@ -36,21 +36,21 @@ test "@fieldParentPtr struct" { var pcf: @TypeOf(&c.a) = undefined; pcf = &c.a; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { const c: C = .{ .b = 666.667 }; const pcf = &c.b; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { const c: C = .{ .b = 666.667 }; const pcf = &c.b; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { @@ -58,7 +58,7 @@ test "@fieldParentPtr struct" { var pcf: @TypeOf(&c.b) = undefined; pcf = &c.b; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { @@ -67,21 +67,21 @@ test "@fieldParentPtr struct" { var pcf: @TypeOf(&c.b) = undefined; pcf = &c.b; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { const c: C = .{ .c = .{255} }; const pcf = &c.c; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { const c: C = .{ .c = .{255} }; const pcf = &c.c; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { @@ -89,7 +89,7 @@ test "@fieldParentPtr struct" { var pcf: @TypeOf(&c.c) = undefined; pcf = &c.c; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { @@ -98,21 +98,21 @@ test "@fieldParentPtr struct" { var pcf: @TypeOf(&c.c) = undefined; pcf = &c.c; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { const c: C = .{ .d = -1111111111 }; const pcf = &c.d; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("d", pcf)); try expect(pc == &c); } { const c: C = .{ .d = -1111111111 }; const pcf = &c.d; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + pc = @alignCast(@fieldParentPtr("d", pcf)); try expect(pc == &c); } { @@ -120,7 +120,7 @@ test "@fieldParentPtr struct" { var pcf: @TypeOf(&c.d) = undefined; pcf = &c.d; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + pc = @alignCast(@fieldParentPtr("d", pcf)); try expect(pc == &c); } { @@ -129,7 +129,7 @@ test "@fieldParentPtr struct" { var pcf: @TypeOf(&c.d) = undefined; pcf = &c.d; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "d", pcf)); + pc = @alignCast(@fieldParentPtr("d", pcf)); try expect(pc == &c); } } @@ -145,14 +145,14 @@ test "@fieldParentPtr extern struct" { { const c: C = .{ .a = false }; const pcf = &c.a; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { const c: C = .{ .a = false }; const pcf = &c.a; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { @@ -160,7 +160,7 @@ test "@fieldParentPtr extern struct" { var pcf: @TypeOf(&c.a) = undefined; pcf = &c.a; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { @@ -169,21 +169,21 @@ test "@fieldParentPtr extern struct" { var pcf: @TypeOf(&c.a) = undefined; pcf = &c.a; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { const c: C = .{ .b = 666.667 }; const pcf = &c.b; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { const c: C = .{ .b = 666.667 }; const pcf = &c.b; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { @@ -191,7 +191,7 @@ test "@fieldParentPtr extern struct" { var pcf: @TypeOf(&c.b) = undefined; pcf = &c.b; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { @@ -200,21 +200,21 @@ test "@fieldParentPtr extern struct" { var pcf: @TypeOf(&c.b) = undefined; pcf = &c.b; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { const c: C = .{ .c = .{ .x = 255 } }; const pcf = &c.c; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { const c: C = .{ .c = .{ .x = 255 } }; const pcf = &c.c; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { @@ -222,7 +222,7 @@ test "@fieldParentPtr extern struct" { var pcf: @TypeOf(&c.c) = undefined; pcf = &c.c; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { @@ -231,21 +231,21 @@ test "@fieldParentPtr extern struct" { var pcf: @TypeOf(&c.c) = undefined; pcf = &c.c; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { const c: C = .{ .d = -1111111111 }; const pcf = &c.d; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("d", pcf)); try expect(pc == &c); } { const c: C = .{ .d = -1111111111 }; const pcf = &c.d; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + pc = @alignCast(@fieldParentPtr("d", pcf)); try expect(pc == &c); } { @@ -253,7 +253,7 @@ test "@fieldParentPtr extern struct" { var pcf: @TypeOf(&c.d) = undefined; pcf = &c.d; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + pc = @alignCast(@fieldParentPtr("d", pcf)); try expect(pc == &c); } { @@ -262,7 +262,7 @@ test "@fieldParentPtr extern struct" { var pcf: @TypeOf(&c.d) = undefined; pcf = &c.d; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "d", pcf)); + pc = @alignCast(@fieldParentPtr("d", pcf)); try expect(pc == &c); } } @@ -277,14 +277,14 @@ test "@fieldParentPtr extern struct first zero-bit field" { { const c: C = .{ .a = 0 }; const pcf = &c.a; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { const c: C = .{ .a = 0 }; const pcf = &c.a; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { @@ -292,7 +292,7 @@ test "@fieldParentPtr extern struct first zero-bit field" { var pcf: @TypeOf(&c.a) = undefined; pcf = &c.a; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { @@ -301,21 +301,21 @@ test "@fieldParentPtr extern struct first zero-bit field" { var pcf: @TypeOf(&c.a) = undefined; pcf = &c.a; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { const c: C = .{ .b = 666.667 }; const pcf = &c.b; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { const c: C = .{ .b = 666.667 }; const pcf = &c.b; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { @@ -323,7 +323,7 @@ test "@fieldParentPtr extern struct first zero-bit field" { var pcf: @TypeOf(&c.b) = undefined; pcf = &c.b; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { @@ -332,21 +332,21 @@ test "@fieldParentPtr extern struct first zero-bit field" { var pcf: @TypeOf(&c.b) = undefined; pcf = &c.b; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { const c: C = .{ .c = -1111111111 }; const pcf = &c.c; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { const c: C = .{ .c = -1111111111 }; const pcf = &c.c; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { @@ -354,7 +354,7 @@ test "@fieldParentPtr extern struct first zero-bit field" { var pcf: @TypeOf(&c.c) = undefined; pcf = &c.c; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { @@ -363,7 +363,7 @@ test "@fieldParentPtr extern struct first zero-bit field" { var pcf: @TypeOf(&c.c) = undefined; pcf = &c.c; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } } @@ -378,14 +378,14 @@ test "@fieldParentPtr extern struct middle zero-bit field" { { const c: C = .{ .a = 666.667 }; const pcf = &c.a; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { const c: C = .{ .a = 666.667 }; const pcf = &c.a; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { @@ -393,7 +393,7 @@ test "@fieldParentPtr extern struct middle zero-bit field" { var pcf: @TypeOf(&c.a) = undefined; pcf = &c.a; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { @@ -402,21 +402,21 @@ test "@fieldParentPtr extern struct middle zero-bit field" { var pcf: @TypeOf(&c.a) = undefined; pcf = &c.a; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { const c: C = .{ .b = 0 }; const pcf = &c.b; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { const c: C = .{ .b = 0 }; const pcf = &c.b; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { @@ -424,7 +424,7 @@ test "@fieldParentPtr extern struct middle zero-bit field" { var pcf: @TypeOf(&c.b) = undefined; pcf = &c.b; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { @@ -433,21 +433,21 @@ test "@fieldParentPtr extern struct middle zero-bit field" { var pcf: @TypeOf(&c.b) = undefined; pcf = &c.b; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { const c: C = .{ .c = -1111111111 }; const pcf = &c.c; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { const c: C = .{ .c = -1111111111 }; const pcf = &c.c; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { @@ -455,7 +455,7 @@ test "@fieldParentPtr extern struct middle zero-bit field" { var pcf: @TypeOf(&c.c) = undefined; pcf = &c.c; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { @@ -464,7 +464,7 @@ test "@fieldParentPtr extern struct middle zero-bit field" { var pcf: @TypeOf(&c.c) = undefined; pcf = &c.c; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } } @@ -479,14 +479,14 @@ test "@fieldParentPtr extern struct last zero-bit field" { { const c: C = .{ .a = 666.667 }; const pcf = &c.a; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { const c: C = .{ .a = 666.667 }; const pcf = &c.a; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { @@ -494,7 +494,7 @@ test "@fieldParentPtr extern struct last zero-bit field" { var pcf: @TypeOf(&c.a) = undefined; pcf = &c.a; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { @@ -503,21 +503,21 @@ test "@fieldParentPtr extern struct last zero-bit field" { var pcf: @TypeOf(&c.a) = undefined; pcf = &c.a; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { const c: C = .{ .b = -1111111111 }; const pcf = &c.b; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { const c: C = .{ .b = -1111111111 }; const pcf = &c.b; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { @@ -525,7 +525,7 @@ test "@fieldParentPtr extern struct last zero-bit field" { var pcf: @TypeOf(&c.b) = undefined; pcf = &c.b; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { @@ -534,21 +534,21 @@ test "@fieldParentPtr extern struct last zero-bit field" { var pcf: @TypeOf(&c.b) = undefined; pcf = &c.b; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { const c: C = .{ .c = 0 }; const pcf = &c.c; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { const c: C = .{ .c = 0 }; const pcf = &c.c; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { @@ -556,7 +556,7 @@ test "@fieldParentPtr extern struct last zero-bit field" { var pcf: @TypeOf(&c.c) = undefined; pcf = &c.c; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { @@ -565,7 +565,7 @@ test "@fieldParentPtr extern struct last zero-bit field" { var pcf: @TypeOf(&c.c) = undefined; pcf = &c.c; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } } @@ -585,14 +585,14 @@ test "@fieldParentPtr unaligned packed struct" { { const c: C = .{ .a = false }; const pcf = &c.a; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { const c: C = .{ .a = false }; const pcf = &c.a; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { @@ -600,7 +600,7 @@ test "@fieldParentPtr unaligned packed struct" { var pcf: @TypeOf(&c.a) = undefined; pcf = &c.a; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { @@ -609,21 +609,21 @@ test "@fieldParentPtr unaligned packed struct" { var pcf: @TypeOf(&c.a) = undefined; pcf = &c.a; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { const c: C = .{ .b = 666.667 }; const pcf = &c.b; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { const c: C = .{ .b = 666.667 }; const pcf = &c.b; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { @@ -631,7 +631,7 @@ test "@fieldParentPtr unaligned packed struct" { var pcf: @TypeOf(&c.b) = undefined; pcf = &c.b; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { @@ -640,21 +640,21 @@ test "@fieldParentPtr unaligned packed struct" { var pcf: @TypeOf(&c.b) = undefined; pcf = &c.b; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { const c: C = .{ .c = .{ .x = 255 } }; const pcf = &c.c; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { const c: C = .{ .c = .{ .x = 255 } }; const pcf = &c.c; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { @@ -662,7 +662,7 @@ test "@fieldParentPtr unaligned packed struct" { var pcf: @TypeOf(&c.c) = undefined; pcf = &c.c; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { @@ -671,21 +671,21 @@ test "@fieldParentPtr unaligned packed struct" { var pcf: @TypeOf(&c.c) = undefined; pcf = &c.c; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { const c: C = .{ .d = -1111111111 }; const pcf = &c.d; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("d", pcf)); try expect(pc == &c); } { const c: C = .{ .d = -1111111111 }; const pcf = &c.d; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + pc = @alignCast(@fieldParentPtr("d", pcf)); try expect(pc == &c); } { @@ -693,7 +693,7 @@ test "@fieldParentPtr unaligned packed struct" { var pcf: @TypeOf(&c.d) = undefined; pcf = &c.d; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + pc = @alignCast(@fieldParentPtr("d", pcf)); try expect(pc == &c); } { @@ -702,7 +702,7 @@ test "@fieldParentPtr unaligned packed struct" { var pcf: @TypeOf(&c.d) = undefined; pcf = &c.d; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "d", pcf)); + pc = @alignCast(@fieldParentPtr("d", pcf)); try expect(pc == &c); } } @@ -722,14 +722,14 @@ test "@fieldParentPtr aligned packed struct" { { const c: C = .{ .a = 666.667 }; const pcf = &c.a; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { const c: C = .{ .a = 666.667 }; const pcf = &c.a; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { @@ -737,7 +737,7 @@ test "@fieldParentPtr aligned packed struct" { var pcf: @TypeOf(&c.a) = undefined; pcf = &c.a; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { @@ -746,21 +746,21 @@ test "@fieldParentPtr aligned packed struct" { var pcf: @TypeOf(&c.a) = undefined; pcf = &c.a; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { const c: C = .{ .b = -1111111111 }; const pcf = &c.b; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { const c: C = .{ .b = -1111111111 }; const pcf = &c.b; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { @@ -768,7 +768,7 @@ test "@fieldParentPtr aligned packed struct" { var pcf: @TypeOf(&c.b) = undefined; pcf = &c.b; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { @@ -777,21 +777,21 @@ test "@fieldParentPtr aligned packed struct" { var pcf: @TypeOf(&c.b) = undefined; pcf = &c.b; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { const c: C = .{ .c = .{ .x = 255 } }; const pcf = &c.c; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { const c: C = .{ .c = .{ .x = 255 } }; const pcf = &c.c; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { @@ -799,7 +799,7 @@ test "@fieldParentPtr aligned packed struct" { var pcf: @TypeOf(&c.c) = undefined; pcf = &c.c; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { @@ -808,21 +808,21 @@ test "@fieldParentPtr aligned packed struct" { var pcf: @TypeOf(&c.c) = undefined; pcf = &c.c; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { const c: C = .{ .d = false }; const pcf = &c.d; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("d", pcf)); try expect(pc == &c); } { const c: C = .{ .d = false }; const pcf = &c.d; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + pc = @alignCast(@fieldParentPtr("d", pcf)); try expect(pc == &c); } { @@ -830,7 +830,7 @@ test "@fieldParentPtr aligned packed struct" { var pcf: @TypeOf(&c.d) = undefined; pcf = &c.d; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + pc = @alignCast(@fieldParentPtr("d", pcf)); try expect(pc == &c); } { @@ -839,7 +839,7 @@ test "@fieldParentPtr aligned packed struct" { var pcf: @TypeOf(&c.d) = undefined; pcf = &c.d; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "d", pcf)); + pc = @alignCast(@fieldParentPtr("d", pcf)); try expect(pc == &c); } } @@ -862,11 +862,11 @@ test "@fieldParentPtr nested packed struct" { { const c: C = .{ .a = 0, .b = .{ .a = 0, .b = .{ .a = 0 } } }; const pcbba = &c.b.b.a; - const pcbb: @TypeOf(&c.b.b) = @alignCast(@fieldParentPtr(*align(1) const @TypeOf(c.b.b), "a", pcbba)); + const pcbb: @TypeOf(&c.b.b) = @alignCast(@fieldParentPtr("a", pcbba)); try expect(pcbb == &c.b.b); - const pcb: @TypeOf(&c.b) = @alignCast(@fieldParentPtr(*align(1) const @TypeOf(c.b), "b", pcbb)); + const pcb: @TypeOf(&c.b) = @alignCast(@fieldParentPtr("b", pcbb)); try expect(pcb == &c.b); - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcb)); + const pc: *const C = @alignCast(@fieldParentPtr("b", pcb)); try expect(pc == &c); } @@ -876,13 +876,13 @@ test "@fieldParentPtr nested packed struct" { var pcbba: @TypeOf(&c.b.b.a) = undefined; pcbba = &c.b.b.a; var pcbb: @TypeOf(&c.b.b) = undefined; - pcbb = @alignCast(@fieldParentPtr(*align(1) @TypeOf(c.b.b), "a", pcbba)); + pcbb = @alignCast(@fieldParentPtr("a", pcbba)); try expect(pcbb == &c.b.b); var pcb: @TypeOf(&c.b) = undefined; - pcb = @alignCast(@fieldParentPtr(*align(1) @TypeOf(c.b), "b", pcbb)); + pcb = @alignCast(@fieldParentPtr("b", pcbb)); try expect(pcb == &c.b); var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcb)); + pc = @alignCast(@fieldParentPtr("b", pcb)); try expect(pc == &c); } } @@ -901,11 +901,11 @@ test "@fieldParentPtr nested packed struct" { { const c: C = .{ .a = 0, .b = .{ .a = 0, .b = .{ .a = 0 } } }; const pcbba = &c.b.b.a; - const pcbb: @TypeOf(&c.b.b) = @alignCast(@fieldParentPtr(*align(1:17:4) const @TypeOf(c.b.b), "a", pcbba)); + const pcbb: @TypeOf(&c.b.b) = @alignCast(@fieldParentPtr("a", pcbba)); try expect(pcbb == &c.b.b); - const pcb: @TypeOf(&c.b) = @alignCast(@fieldParentPtr(*align(1:8:4) const @TypeOf(c.b), "b", pcbb)); + const pcb: @TypeOf(&c.b) = @alignCast(@fieldParentPtr("b", pcbb)); try expect(pcb == &c.b); - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcb)); + const pc: *const C = @alignCast(@fieldParentPtr("b", pcb)); try expect(pc == &c); } @@ -915,13 +915,13 @@ test "@fieldParentPtr nested packed struct" { var pcbba: @TypeOf(&c.b.b.a) = undefined; pcbba = &c.b.b.a; var pcbb: @TypeOf(&c.b.b) = undefined; - pcbb = @alignCast(@fieldParentPtr(*align(1:17:4) @TypeOf(c.b.b), "a", pcbba)); + pcbb = @alignCast(@fieldParentPtr("a", pcbba)); try expect(pcbb == &c.b.b); var pcb: @TypeOf(&c.b) = undefined; - pcb = @alignCast(@fieldParentPtr(*align(1:8:4) @TypeOf(c.b), "b", pcbb)); + pcb = @alignCast(@fieldParentPtr("b", pcbb)); try expect(pcb == &c.b); var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcb)); + pc = @alignCast(@fieldParentPtr("b", pcb)); try expect(pc == &c); } } @@ -940,11 +940,11 @@ test "@fieldParentPtr nested packed struct" { { const c: C = .{ .a = 0, .b = .{ .a = 0, .b = .{ .a = 0 } } }; const pcbba = &c.b.b.a; - const pcbb: @TypeOf(&c.b.b) = @alignCast(@fieldParentPtr(*align(1) const @TypeOf(c.b.b), "a", pcbba)); + const pcbb: @TypeOf(&c.b.b) = @alignCast(@fieldParentPtr("a", pcbba)); try expect(pcbb == &c.b.b); - const pcb: @TypeOf(&c.b) = @alignCast(@fieldParentPtr(*align(1:9:3) const @TypeOf(c.b), "b", pcbb)); + const pcb: @TypeOf(&c.b) = @alignCast(@fieldParentPtr("b", pcbb)); try expect(pcb == &c.b); - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcb)); + const pc: *const C = @alignCast(@fieldParentPtr("b", pcb)); try expect(pc == &c); } @@ -954,13 +954,13 @@ test "@fieldParentPtr nested packed struct" { var pcbba: @TypeOf(&c.b.b.a) = undefined; pcbba = &c.b.b.a; var pcbb: @TypeOf(&c.b.b) = undefined; - pcbb = @alignCast(@fieldParentPtr(*align(1) @TypeOf(c.b.b), "a", pcbba)); + pcbb = @alignCast(@fieldParentPtr("a", pcbba)); try expect(pcbb == &c.b.b); var pcb: @TypeOf(&c.b) = undefined; - pcb = @alignCast(@fieldParentPtr(*align(1:9:3) @TypeOf(c.b), "b", pcbb)); + pcb = @alignCast(@fieldParentPtr("b", pcbb)); try expect(pcb == &c.b); var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcb)); + pc = @alignCast(@fieldParentPtr("b", pcb)); try expect(pc == &c); } } @@ -979,11 +979,11 @@ test "@fieldParentPtr nested packed struct" { { const c: C = .{ .a = 0, .b = .{ .a = 0, .b = .{ .a = 0 } } }; const pcbba = &c.b.b.a; - const pcbb: @TypeOf(&c.b.b) = @alignCast(@fieldParentPtr(*align(1:17:4) const @TypeOf(c.b.b), "a", pcbba)); + const pcbb: @TypeOf(&c.b.b) = @alignCast(@fieldParentPtr("a", pcbba)); try expect(pcbb == &c.b.b); - const pcb: @TypeOf(&c.b) = @alignCast(@fieldParentPtr(*align(1:9:4) const @TypeOf(c.b), "b", pcbb)); + const pcb: @TypeOf(&c.b) = @alignCast(@fieldParentPtr("b", pcbb)); try expect(pcb == &c.b); - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcb)); + const pc: *const C = @alignCast(@fieldParentPtr("b", pcb)); try expect(pc == &c); } @@ -993,13 +993,13 @@ test "@fieldParentPtr nested packed struct" { var pcbba: @TypeOf(&c.b.b.a) = undefined; pcbba = &c.b.b.a; var pcbb: @TypeOf(&c.b.b) = undefined; - pcbb = @alignCast(@fieldParentPtr(*align(1:17:4) @TypeOf(c.b.b), "a", pcbba)); + pcbb = @alignCast(@fieldParentPtr("a", pcbba)); try expect(pcbb == &c.b.b); var pcb: @TypeOf(&c.b) = undefined; - pcb = @alignCast(@fieldParentPtr(*align(1:9:4) @TypeOf(c.b), "b", pcbb)); + pcb = @alignCast(@fieldParentPtr("b", pcbb)); try expect(pcb == &c.b); var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcb)); + pc = @alignCast(@fieldParentPtr("b", pcb)); try expect(pc == &c); } } @@ -1018,14 +1018,14 @@ test "@fieldParentPtr packed struct first zero-bit field" { { const c: C = .{ .a = 0 }; const pcf = &c.a; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { const c: C = .{ .a = 0 }; const pcf = &c.a; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { @@ -1033,7 +1033,7 @@ test "@fieldParentPtr packed struct first zero-bit field" { var pcf: @TypeOf(&c.a) = undefined; pcf = &c.a; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { @@ -1042,21 +1042,21 @@ test "@fieldParentPtr packed struct first zero-bit field" { var pcf: @TypeOf(&c.a) = undefined; pcf = &c.a; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { const c: C = .{ .b = 666.667 }; const pcf = &c.b; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { const c: C = .{ .b = 666.667 }; const pcf = &c.b; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { @@ -1064,7 +1064,7 @@ test "@fieldParentPtr packed struct first zero-bit field" { var pcf: @TypeOf(&c.b) = undefined; pcf = &c.b; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { @@ -1073,21 +1073,21 @@ test "@fieldParentPtr packed struct first zero-bit field" { var pcf: @TypeOf(&c.b) = undefined; pcf = &c.b; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { const c: C = .{ .c = -1111111111 }; const pcf = &c.c; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { const c: C = .{ .c = -1111111111 }; const pcf = &c.c; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { @@ -1095,7 +1095,7 @@ test "@fieldParentPtr packed struct first zero-bit field" { var pcf: @TypeOf(&c.c) = undefined; pcf = &c.c; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { @@ -1104,7 +1104,7 @@ test "@fieldParentPtr packed struct first zero-bit field" { var pcf: @TypeOf(&c.c) = undefined; pcf = &c.c; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } } @@ -1122,14 +1122,14 @@ test "@fieldParentPtr packed struct middle zero-bit field" { { const c: C = .{ .a = 666.667 }; const pcf = &c.a; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { const c: C = .{ .a = 666.667 }; const pcf = &c.a; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { @@ -1137,7 +1137,7 @@ test "@fieldParentPtr packed struct middle zero-bit field" { var pcf: @TypeOf(&c.a) = undefined; pcf = &c.a; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { @@ -1146,21 +1146,21 @@ test "@fieldParentPtr packed struct middle zero-bit field" { var pcf: @TypeOf(&c.a) = undefined; pcf = &c.a; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { const c: C = .{ .b = 0 }; const pcf = &c.b; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { const c: C = .{ .b = 0 }; const pcf = &c.b; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { @@ -1168,7 +1168,7 @@ test "@fieldParentPtr packed struct middle zero-bit field" { var pcf: @TypeOf(&c.b) = undefined; pcf = &c.b; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { @@ -1177,21 +1177,21 @@ test "@fieldParentPtr packed struct middle zero-bit field" { var pcf: @TypeOf(&c.b) = undefined; pcf = &c.b; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { const c: C = .{ .c = -1111111111 }; const pcf = &c.c; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { const c: C = .{ .c = -1111111111 }; const pcf = &c.c; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { @@ -1199,7 +1199,7 @@ test "@fieldParentPtr packed struct middle zero-bit field" { var pcf: @TypeOf(&c.c) = undefined; pcf = &c.c; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { @@ -1208,7 +1208,7 @@ test "@fieldParentPtr packed struct middle zero-bit field" { var pcf: @TypeOf(&c.c) = undefined; pcf = &c.c; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } } @@ -1226,14 +1226,14 @@ test "@fieldParentPtr packed struct last zero-bit field" { { const c: C = .{ .a = 666.667 }; const pcf = &c.a; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { const c: C = .{ .a = 666.667 }; const pcf = &c.a; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { @@ -1241,7 +1241,7 @@ test "@fieldParentPtr packed struct last zero-bit field" { var pcf: @TypeOf(&c.a) = undefined; pcf = &c.a; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { @@ -1250,21 +1250,21 @@ test "@fieldParentPtr packed struct last zero-bit field" { var pcf: @TypeOf(&c.a) = undefined; pcf = &c.a; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { const c: C = .{ .b = -1111111111 }; const pcf = &c.b; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { const c: C = .{ .b = -1111111111 }; const pcf = &c.b; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { @@ -1272,7 +1272,7 @@ test "@fieldParentPtr packed struct last zero-bit field" { var pcf: @TypeOf(&c.b) = undefined; pcf = &c.b; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { @@ -1281,21 +1281,21 @@ test "@fieldParentPtr packed struct last zero-bit field" { var pcf: @TypeOf(&c.b) = undefined; pcf = &c.b; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { const c: C = .{ .c = 0 }; const pcf = &c.c; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { const c: C = .{ .c = 0 }; const pcf = &c.c; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { @@ -1303,7 +1303,7 @@ test "@fieldParentPtr packed struct last zero-bit field" { var pcf: @TypeOf(&c.c) = undefined; pcf = &c.c; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { @@ -1312,7 +1312,7 @@ test "@fieldParentPtr packed struct last zero-bit field" { var pcf: @TypeOf(&c.c) = undefined; pcf = &c.c; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } } @@ -1328,14 +1328,14 @@ test "@fieldParentPtr tagged union" { { const c: C = .{ .a = false }; const pcf = &c.a; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { const c: C = .{ .a = false }; const pcf = &c.a; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { @@ -1343,7 +1343,7 @@ test "@fieldParentPtr tagged union" { var pcf: @TypeOf(&c.a) = undefined; pcf = &c.a; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { @@ -1352,21 +1352,21 @@ test "@fieldParentPtr tagged union" { var pcf: @TypeOf(&c.a) = undefined; pcf = &c.a; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { const c: C = .{ .b = 0 }; const pcf = &c.b; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { const c: C = .{ .b = 0 }; const pcf = &c.b; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { @@ -1374,7 +1374,7 @@ test "@fieldParentPtr tagged union" { var pcf: @TypeOf(&c.b) = undefined; pcf = &c.b; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { @@ -1383,21 +1383,21 @@ test "@fieldParentPtr tagged union" { var pcf: @TypeOf(&c.b) = undefined; pcf = &c.b; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { const c: C = .{ .c = .{255} }; const pcf = &c.c; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { const c: C = .{ .c = .{255} }; const pcf = &c.c; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { @@ -1405,7 +1405,7 @@ test "@fieldParentPtr tagged union" { var pcf: @TypeOf(&c.c) = undefined; pcf = &c.c; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { @@ -1414,21 +1414,21 @@ test "@fieldParentPtr tagged union" { var pcf: @TypeOf(&c.c) = undefined; pcf = &c.c; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { const c: C = .{ .d = -1111111111 }; const pcf = &c.d; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("d", pcf)); try expect(pc == &c); } { const c: C = .{ .d = -1111111111 }; const pcf = &c.d; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + pc = @alignCast(@fieldParentPtr("d", pcf)); try expect(pc == &c); } { @@ -1436,7 +1436,7 @@ test "@fieldParentPtr tagged union" { var pcf: @TypeOf(&c.d) = undefined; pcf = &c.d; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + pc = @alignCast(@fieldParentPtr("d", pcf)); try expect(pc == &c); } { @@ -1445,7 +1445,7 @@ test "@fieldParentPtr tagged union" { var pcf: @TypeOf(&c.d) = undefined; pcf = &c.d; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "d", pcf)); + pc = @alignCast(@fieldParentPtr("d", pcf)); try expect(pc == &c); } } @@ -1461,14 +1461,14 @@ test "@fieldParentPtr untagged union" { { const c: C = .{ .a = false }; const pcf = &c.a; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { const c: C = .{ .a = false }; const pcf = &c.a; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { @@ -1476,7 +1476,7 @@ test "@fieldParentPtr untagged union" { var pcf: @TypeOf(&c.a) = undefined; pcf = &c.a; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { @@ -1485,21 +1485,21 @@ test "@fieldParentPtr untagged union" { var pcf: @TypeOf(&c.a) = undefined; pcf = &c.a; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { const c: C = .{ .b = 0 }; const pcf = &c.b; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { const c: C = .{ .b = 0 }; const pcf = &c.b; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { @@ -1507,7 +1507,7 @@ test "@fieldParentPtr untagged union" { var pcf: @TypeOf(&c.b) = undefined; pcf = &c.b; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { @@ -1516,21 +1516,21 @@ test "@fieldParentPtr untagged union" { var pcf: @TypeOf(&c.b) = undefined; pcf = &c.b; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { const c: C = .{ .c = .{255} }; const pcf = &c.c; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { const c: C = .{ .c = .{255} }; const pcf = &c.c; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { @@ -1538,7 +1538,7 @@ test "@fieldParentPtr untagged union" { var pcf: @TypeOf(&c.c) = undefined; pcf = &c.c; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { @@ -1547,21 +1547,21 @@ test "@fieldParentPtr untagged union" { var pcf: @TypeOf(&c.c) = undefined; pcf = &c.c; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { const c: C = .{ .d = -1111111111 }; const pcf = &c.d; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("d", pcf)); try expect(pc == &c); } { const c: C = .{ .d = -1111111111 }; const pcf = &c.d; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + pc = @alignCast(@fieldParentPtr("d", pcf)); try expect(pc == &c); } { @@ -1569,7 +1569,7 @@ test "@fieldParentPtr untagged union" { var pcf: @TypeOf(&c.d) = undefined; pcf = &c.d; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + pc = @alignCast(@fieldParentPtr("d", pcf)); try expect(pc == &c); } { @@ -1578,7 +1578,7 @@ test "@fieldParentPtr untagged union" { var pcf: @TypeOf(&c.d) = undefined; pcf = &c.d; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "d", pcf)); + pc = @alignCast(@fieldParentPtr("d", pcf)); try expect(pc == &c); } } @@ -1594,14 +1594,14 @@ test "@fieldParentPtr extern union" { { const c: C = .{ .a = false }; const pcf = &c.a; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { const c: C = .{ .a = false }; const pcf = &c.a; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { @@ -1609,7 +1609,7 @@ test "@fieldParentPtr extern union" { var pcf: @TypeOf(&c.a) = undefined; pcf = &c.a; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { @@ -1618,21 +1618,21 @@ test "@fieldParentPtr extern union" { var pcf: @TypeOf(&c.a) = undefined; pcf = &c.a; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { const c: C = .{ .b = 0 }; const pcf = &c.b; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { const c: C = .{ .b = 0 }; const pcf = &c.b; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { @@ -1640,7 +1640,7 @@ test "@fieldParentPtr extern union" { var pcf: @TypeOf(&c.b) = undefined; pcf = &c.b; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { @@ -1649,21 +1649,21 @@ test "@fieldParentPtr extern union" { var pcf: @TypeOf(&c.b) = undefined; pcf = &c.b; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { const c: C = .{ .c = .{ .x = 255 } }; const pcf = &c.c; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { const c: C = .{ .c = .{ .x = 255 } }; const pcf = &c.c; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { @@ -1671,7 +1671,7 @@ test "@fieldParentPtr extern union" { var pcf: @TypeOf(&c.c) = undefined; pcf = &c.c; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { @@ -1680,21 +1680,21 @@ test "@fieldParentPtr extern union" { var pcf: @TypeOf(&c.c) = undefined; pcf = &c.c; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { const c: C = .{ .d = -1111111111 }; const pcf = &c.d; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("d", pcf)); try expect(pc == &c); } { const c: C = .{ .d = -1111111111 }; const pcf = &c.d; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + pc = @alignCast(@fieldParentPtr("d", pcf)); try expect(pc == &c); } { @@ -1702,7 +1702,7 @@ test "@fieldParentPtr extern union" { var pcf: @TypeOf(&c.d) = undefined; pcf = &c.d; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + pc = @alignCast(@fieldParentPtr("d", pcf)); try expect(pc == &c); } { @@ -1711,7 +1711,7 @@ test "@fieldParentPtr extern union" { var pcf: @TypeOf(&c.d) = undefined; pcf = &c.d; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "d", pcf)); + pc = @alignCast(@fieldParentPtr("d", pcf)); try expect(pc == &c); } } @@ -1729,14 +1729,14 @@ test "@fieldParentPtr packed union" { { const c: C = .{ .a = false }; const pcf = &c.a; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { const c: C = .{ .a = false }; const pcf = &c.a; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { @@ -1744,7 +1744,7 @@ test "@fieldParentPtr packed union" { var pcf: @TypeOf(&c.a) = undefined; pcf = &c.a; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { @@ -1753,21 +1753,21 @@ test "@fieldParentPtr packed union" { var pcf: @TypeOf(&c.a) = undefined; pcf = &c.a; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { const c: C = .{ .b = 0 }; const pcf = &c.b; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { const c: C = .{ .b = 0 }; const pcf = &c.b; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { @@ -1775,7 +1775,7 @@ test "@fieldParentPtr packed union" { var pcf: @TypeOf(&c.b) = undefined; pcf = &c.b; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { @@ -1784,21 +1784,21 @@ test "@fieldParentPtr packed union" { var pcf: @TypeOf(&c.b) = undefined; pcf = &c.b; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { const c: C = .{ .c = .{ .x = 255 } }; const pcf = &c.c; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { const c: C = .{ .c = .{ .x = 255 } }; const pcf = &c.c; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { @@ -1806,7 +1806,7 @@ test "@fieldParentPtr packed union" { var pcf: @TypeOf(&c.c) = undefined; pcf = &c.c; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { @@ -1815,21 +1815,21 @@ test "@fieldParentPtr packed union" { var pcf: @TypeOf(&c.c) = undefined; pcf = &c.c; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "c", pcf)); + pc = @alignCast(@fieldParentPtr("c", pcf)); try expect(pc == &c); } { const c: C = .{ .d = -1111111111 }; const pcf = &c.d; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("d", pcf)); try expect(pc == &c); } { const c: C = .{ .d = -1111111111 }; const pcf = &c.d; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + pc = @alignCast(@fieldParentPtr("d", pcf)); try expect(pc == &c); } { @@ -1837,7 +1837,7 @@ test "@fieldParentPtr packed union" { var pcf: @TypeOf(&c.d) = undefined; pcf = &c.d; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "d", pcf)); + pc = @alignCast(@fieldParentPtr("d", pcf)); try expect(pc == &c); } { @@ -1846,7 +1846,7 @@ test "@fieldParentPtr packed union" { var pcf: @TypeOf(&c.d) = undefined; pcf = &c.d; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "d", pcf)); + pc = @alignCast(@fieldParentPtr("d", pcf)); try expect(pc == &c); } } @@ -1863,14 +1863,14 @@ test "@fieldParentPtr tagged union all zero-bit fields" { { const c: C = .{ .a = 0 }; const pcf = &c.a; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { const c: C = .{ .a = 0 }; const pcf = &c.a; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { @@ -1878,7 +1878,7 @@ test "@fieldParentPtr tagged union all zero-bit fields" { var pcf: @TypeOf(&c.a) = undefined; pcf = &c.a; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { @@ -1887,21 +1887,21 @@ test "@fieldParentPtr tagged union all zero-bit fields" { var pcf: @TypeOf(&c.a) = undefined; pcf = &c.a; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "a", pcf)); + pc = @alignCast(@fieldParentPtr("a", pcf)); try expect(pc == &c); } { const c: C = .{ .b = 0 }; const pcf = &c.b; - const pc: *const C = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + const pc: *const C = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { const c: C = .{ .b = 0 }; const pcf = &c.b; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { @@ -1909,7 +1909,7 @@ test "@fieldParentPtr tagged union all zero-bit fields" { var pcf: @TypeOf(&c.b) = undefined; pcf = &c.b; var pc: *const C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) const C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } { @@ -1918,7 +1918,7 @@ test "@fieldParentPtr tagged union all zero-bit fields" { var pcf: @TypeOf(&c.b) = undefined; pcf = &c.b; var pc: *C = undefined; - pc = @alignCast(@fieldParentPtr(*align(1) C, "b", pcf)); + pc = @alignCast(@fieldParentPtr("b", pcf)); try expect(pc == &c); } } diff --git a/test/behavior/struct.zig b/test/behavior/struct.zig index cbf7493b868b..5ab3b0d38d54 100644 --- a/test/behavior/struct.zig +++ b/test/behavior/struct.zig @@ -1392,13 +1392,13 @@ test "fieldParentPtr of a zero-bit field" { { const a = A{ .u = 0 }; const b_ptr = &a.b; - const a_ptr = @fieldParentPtr(*const A, "b", b_ptr); + const a_ptr: *const A = @fieldParentPtr("b", b_ptr); try std.testing.expectEqual(&a, a_ptr); } { var a = A{ .u = 0 }; const b_ptr = &a.b; - const a_ptr = @fieldParentPtr(*const A, "b", b_ptr); + const a_ptr: *A = @fieldParentPtr("b", b_ptr); try std.testing.expectEqual(&a, a_ptr); } } @@ -1406,17 +1406,17 @@ test "fieldParentPtr of a zero-bit field" { { const a = A{ .u = 0 }; const c_ptr = &a.b.c; - const b_ptr = @fieldParentPtr(*const @TypeOf(a.b), "c", c_ptr); + const b_ptr: @TypeOf(&a.b) = @fieldParentPtr("c", c_ptr); try std.testing.expectEqual(&a.b, b_ptr); - const a_ptr = @fieldParentPtr(*const A, "b", b_ptr); + const a_ptr: *const A = @fieldParentPtr("b", b_ptr); try std.testing.expectEqual(&a, a_ptr); } { var a = A{ .u = 0 }; const c_ptr = &a.b.c; - const b_ptr = @fieldParentPtr(*const @TypeOf(a.b), "c", c_ptr); + const b_ptr: @TypeOf(&a.b) = @fieldParentPtr("c", c_ptr); try std.testing.expectEqual(&a.b, b_ptr); - const a_ptr = @fieldParentPtr(*const A, "b", b_ptr); + const a_ptr: *const A = @fieldParentPtr("b", b_ptr); try std.testing.expectEqual(&a, a_ptr); } } diff --git a/test/behavior/tuple.zig b/test/behavior/tuple.zig index 7cc157653a1a..2b52df45a1c1 100644 --- a/test/behavior/tuple.zig +++ b/test/behavior/tuple.zig @@ -222,7 +222,7 @@ test "fieldParentPtr of tuple" { var x: u32 = 0; _ = &x; const tuple = .{ x, x }; - try testing.expect(&tuple == @fieldParentPtr(*const @TypeOf(tuple), "1", &tuple[1])); + try testing.expect(&tuple == @as(@TypeOf(&tuple), @fieldParentPtr("1", &tuple[1]))); } test "fieldParentPtr of anon struct" { @@ -233,7 +233,7 @@ test "fieldParentPtr of anon struct" { var x: u32 = 0; _ = &x; const anon_st = .{ .foo = x, .bar = x }; - try testing.expect(&anon_st == @fieldParentPtr(*const @TypeOf(anon_st), "bar", &anon_st.bar)); + try testing.expect(&anon_st == @as(@TypeOf(&anon_st), @fieldParentPtr("bar", &anon_st.bar))); } test "offsetOf tuple" { diff --git a/test/cases/compile_errors/fieldParentPtr-bad_field_name.zig b/test/cases/compile_errors/fieldParentPtr-bad_field_name.zig index 10a2bf384d56..c897db4abb9e 100644 --- a/test/cases/compile_errors/fieldParentPtr-bad_field_name.zig +++ b/test/cases/compile_errors/fieldParentPtr-bad_field_name.zig @@ -2,12 +2,12 @@ const Foo = extern struct { derp: i32, }; export fn foo(a: *i32) *Foo { - return @fieldParentPtr(*Foo, "a", a); + return @fieldParentPtr("a", a); } // error // backend=stage2 // target=native // -// :5:34: error: no field named 'a' in struct 'tmp.Foo' +// :5:28: error: no field named 'a' in struct 'tmp.Foo' // :1:20: note: struct declared here diff --git a/test/cases/compile_errors/fieldParentPtr-comptime_field_ptr_not_based_on_struct.zig b/test/cases/compile_errors/fieldParentPtr-comptime_field_ptr_not_based_on_struct.zig index 751dc6681ecc..7eeb62b14631 100644 --- a/test/cases/compile_errors/fieldParentPtr-comptime_field_ptr_not_based_on_struct.zig +++ b/test/cases/compile_errors/fieldParentPtr-comptime_field_ptr_not_based_on_struct.zig @@ -9,7 +9,7 @@ const foo = Foo{ comptime { const field_ptr: *i32 = @ptrFromInt(0x1234); - const another_foo_ptr = @fieldParentPtr(*const Foo, "b", field_ptr); + const another_foo_ptr: *const Foo = @fieldParentPtr("b", field_ptr); _ = another_foo_ptr; } diff --git a/test/cases/compile_errors/fieldParentPtr-comptime_wrong_field_index.zig b/test/cases/compile_errors/fieldParentPtr-comptime_wrong_field_index.zig index 3f459c66eeea..4ee347494100 100644 --- a/test/cases/compile_errors/fieldParentPtr-comptime_wrong_field_index.zig +++ b/test/cases/compile_errors/fieldParentPtr-comptime_wrong_field_index.zig @@ -8,7 +8,7 @@ const foo = Foo{ }; comptime { - const another_foo_ptr = @fieldParentPtr(*const Foo, "b", &foo.a); + const another_foo_ptr: *const Foo = @fieldParentPtr("b", &foo.a); _ = another_foo_ptr; } @@ -16,5 +16,5 @@ comptime { // backend=stage2 // target=native // -// :11:29: error: field 'b' has index '1' but pointer value is index '0' of struct 'tmp.Foo' +// :11:41: error: field 'b' has index '1' but pointer value is index '0' of struct 'tmp.Foo' // :1:13: note: struct declared here diff --git a/test/cases/compile_errors/fieldParentPtr-field_pointer_is_not_pointer.zig b/test/cases/compile_errors/fieldParentPtr-field_pointer_is_not_pointer.zig index b2a7768611a3..832269268a51 100644 --- a/test/cases/compile_errors/fieldParentPtr-field_pointer_is_not_pointer.zig +++ b/test/cases/compile_errors/fieldParentPtr-field_pointer_is_not_pointer.zig @@ -1,12 +1,12 @@ const Foo = extern struct { a: i32, }; -export fn foo(a: i32) *Foo { - return @fieldParentPtr(*const Foo, "a", a); +export fn foo(a: i32) *const Foo { + return @fieldParentPtr("a", a); } // error // backend=stage2 // target=native // -// :5:45: error: expected pointer type, found 'i32' +// :5:33: error: expected pointer type, found 'i32' diff --git a/test/cases/compile_errors/fieldParentPtr-non_pointer.zig b/test/cases/compile_errors/fieldParentPtr-non_pointer.zig index 27d8ad9c2040..31f15783d8ea 100644 --- a/test/cases/compile_errors/fieldParentPtr-non_pointer.zig +++ b/test/cases/compile_errors/fieldParentPtr-non_pointer.zig @@ -1,10 +1,10 @@ const Foo = i32; -export fn foo(a: *i32) *Foo { - return @fieldParentPtr(Foo, "a", a); +export fn foo(a: *i32) Foo { + return @fieldParentPtr("a", a); } // error // backend=llvm // target=native // -// :3:28: error: expected pointer type, found 'i32' +// :3:12: error: expected pointer type, found 'i32' diff --git a/test/cases/compile_errors/fieldParentPtr_on_comptime_field.zig b/test/cases/compile_errors/fieldParentPtr_on_comptime_field.zig index 1b26bfcff9d8..ff18791c4972 100644 --- a/test/cases/compile_errors/fieldParentPtr_on_comptime_field.zig +++ b/test/cases/compile_errors/fieldParentPtr_on_comptime_field.zig @@ -5,7 +5,7 @@ pub export fn entry1() void { @offsetOf(T, "a"); } pub export fn entry2() void { - @fieldParentPtr(*T, "a", undefined); + @as(*T, @fieldParentPtr("a", undefined)); } // error @@ -13,4 +13,4 @@ pub export fn entry2() void { // target=native // // :5:5: error: no offset available for comptime field -// :8:25: error: cannot get @fieldParentPtr of a comptime field +// :8:29: error: cannot get @fieldParentPtr of a comptime field diff --git a/test/standalone/cmakedefine/build.zig b/test/standalone/cmakedefine/build.zig index ceb1ad847adc..967aa7ecbd96 100644 --- a/test/standalone/cmakedefine/build.zig +++ b/test/standalone/cmakedefine/build.zig @@ -86,7 +86,7 @@ fn compare_headers(step: *std.Build.Step, prog_node: *std.Progress.Node) !void { const expected_fmt = "expected_{s}"; for (step.dependencies.items) |config_header_step| { - const config_header = @fieldParentPtr(*ConfigHeader, "step", config_header_step); + const config_header: *ConfigHeader = @fieldParentPtr("step", config_header_step); const zig_header_path = config_header.output_file.path orelse @panic("Could not locate header file"); From 7580879e8bed9b0c670df110dbdaed76b2c3baf5 Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Thu, 28 Mar 2024 22:09:29 -0400 Subject: [PATCH 7/9] x86_64: cleanup comptime mutable memory change --- src/arch/x86_64/Encoding.zig | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/arch/x86_64/Encoding.zig b/src/arch/x86_64/Encoding.zig index b909f9794aab..e4c2a39d18c4 100644 --- a/src/arch/x86_64/Encoding.zig +++ b/src/arch/x86_64/Encoding.zig @@ -848,9 +848,8 @@ const mnemonic_to_encodings_map = init: { const final_storage = data_storage; var final_map: [mnemonic_count][]const Data = .{&.{}} ** mnemonic_count; storage_i = 0; - for (&final_map, mnemonic_map) |*value, wip_value| { - value.ptr = final_storage[storage_i..].ptr; - value.len = wip_value.len; + for (&final_map, mnemonic_map) |*final_value, value| { + final_value.* = final_storage[storage_i..][0..value.len]; storage_i += value.len; } break :init final_map; From fb192df4f2d12dda5019e14bf6cab2693432cb36 Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Fri, 29 Mar 2024 20:18:09 -0400 Subject: [PATCH 8/9] cbe: fix uncovered bugs --- lib/zig.h | 18 ++++------ src/Sema.zig | 7 ++-- src/codegen/c.zig | 79 ++++++++++++++++++++++-------------------- src/codegen/c/Type.zig | 77 ++++++++++++++++++++++++---------------- 4 files changed, 102 insertions(+), 79 deletions(-) diff --git a/lib/zig.h b/lib/zig.h index f2ae283bafb2..ec7508670d36 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -130,22 +130,18 @@ typedef char bool; #define zig_restrict #endif -#if __STDC_VERSION__ >= 201112L -#define zig_align(alignment) _Alignas(alignment) -#elif zig_has_attribute(aligned) -#define zig_align(alignment) __attribute__((aligned(alignment))) +#if zig_has_attribute(aligned) +#define zig_under_align(alignment) __attribute__((aligned(alignment))) #elif _MSC_VER -#define zig_align(alignment) __declspec(align(alignment)) +#define zig_under_align(alignment) __declspec(align(alignment)) #else -#define zig_align zig_align_unavailable +#define zig_under_align zig_align_unavailable #endif -#if zig_has_attribute(aligned) -#define zig_under_align(alignment) __attribute__((aligned(alignment))) -#elif _MSC_VER -#define zig_under_align(alignment) zig_align(alignment) +#if __STDC_VERSION__ >= 201112L +#define zig_align(alignment) _Alignas(alignment) #else -#define zig_align zig_align_unavailable +#define zig_align(alignment) zig_under_align(alignment) #endif #if zig_has_attribute(aligned) diff --git a/src/Sema.zig b/src/Sema.zig index 6061dbfea42c..3c999e507e8d 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -36125,7 +36125,7 @@ fn resolveUnionLayout(sema: *Sema, ty: Type) CompileError!void { // alignment is greater. var size: u64 = 0; var padding: u32 = 0; - if (tag_align.compare(.gte, max_align)) { + if (tag_align.order(max_align).compare(.gte)) { // {Tag, Payload} size += tag_size; size = max_align.forward(size); @@ -36136,7 +36136,10 @@ fn resolveUnionLayout(sema: *Sema, ty: Type) CompileError!void { } else { // {Payload, Tag} size += max_size; - size = tag_align.forward(size); + size = switch (mod.getTarget().ofmt) { + .c => max_align, + else => tag_align, + }.forward(size); size += tag_size; const prev_size = size; size = max_align.forward(size); diff --git a/src/codegen/c.zig b/src/codegen/c.zig index cec7cdcd991e..883f3f7c7765 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -2475,14 +2475,20 @@ pub fn genTypeDecl( .basic, .pointer, .array, .vector, .function => {}, .aligned => |aligned_info| { if (!found_existing) { - try writer.writeAll("typedef "); - try writer.print("{}", .{ - try renderTypePrefix(pass, global_ctype_pool, zcu, writer, aligned_info.ctype, .suffix, .{}), - }); - try renderAlignedTypeName(writer, global_ctype); - try renderTypeSuffix(pass, global_ctype_pool, zcu, writer, aligned_info.ctype, .suffix, .{}); std.debug.assert(aligned_info.alignas.abiOrder().compare(.lt)); - try writer.print(" zig_under_align({d});\n", .{aligned_info.alignas.toByteUnits()}); + try writer.print("typedef zig_under_align({d}) ", .{aligned_info.alignas.toByteUnits()}); + try writer.print("{}", .{try renderTypePrefix( + .flush, + global_ctype_pool, + zcu, + writer, + aligned_info.ctype, + .suffix, + .{}, + )}); + try renderAlignedTypeName(writer, global_ctype); + try renderTypeSuffix(.flush, global_ctype_pool, zcu, writer, aligned_info.ctype, .suffix, .{}); + try writer.writeAll(";\n"); } switch (pass) { .decl, .anon => { @@ -5032,15 +5038,18 @@ fn airAsm(f: *Function, inst: Air.Inst.Index) !CValue { const result = result: { const writer = f.object.writer(); const inst_ty = f.typeOfIndex(inst); - const local = if (inst_ty.hasRuntimeBitsIgnoreComptime(zcu)) local: { - const local = try f.allocLocal(inst, inst_ty); + const inst_local = if (inst_ty.hasRuntimeBitsIgnoreComptime(zcu)) local: { + const inst_local = try f.allocLocalValue(.{ + .ctype = try f.ctypeFromType(inst_ty, .complete), + .alignas = CType.AlignAs.fromAbiAlignment(inst_ty.abiAlignment(zcu)), + }); if (f.wantSafety()) { - try f.writeCValue(writer, local, .Other); + try f.writeCValue(writer, inst_local, .Other); try writer.writeAll(" = "); try f.writeCValue(writer, .{ .undef = inst_ty }, .Other); try writer.writeAll(";\n"); } - break :local local; + break :local inst_local; } else .none; const locals_begin = @as(LocalIndex, @intCast(f.locals.items.len)); @@ -5063,9 +5072,12 @@ fn airAsm(f: *Function, inst: Air.Inst.Index) !CValue { if (is_reg) { const output_ty = if (output == .none) inst_ty else f.typeOf(output).childType(zcu); try writer.writeAll("register "); - const local_value = try f.allocLocal(inst, output_ty); - try f.allocs.put(gpa, local_value.new_local, false); - try f.object.dg.renderTypeAndName(writer, output_ty, local_value, .{}, .none, .complete); + const output_local = try f.allocLocalValue(.{ + .ctype = try f.ctypeFromType(output_ty, .complete), + .alignas = CType.AlignAs.fromAbiAlignment(output_ty.abiAlignment(zcu)), + }); + try f.allocs.put(gpa, output_local.new_local, false); + try f.object.dg.renderTypeAndName(writer, output_ty, output_local, .{}, .none, .complete); try writer.writeAll(" __asm(\""); try writer.writeAll(constraint["={".len .. constraint.len - "}".len]); try writer.writeAll("\")"); @@ -5095,9 +5107,12 @@ fn airAsm(f: *Function, inst: Air.Inst.Index) !CValue { if (asmInputNeedsLocal(f, constraint, input_val)) { const input_ty = f.typeOf(input); if (is_reg) try writer.writeAll("register "); - const local_value = try f.allocLocal(inst, input_ty); - try f.allocs.put(gpa, local_value.new_local, false); - try f.object.dg.renderTypeAndName(writer, input_ty, local_value, Const, .none, .complete); + const input_local = try f.allocLocalValue(.{ + .ctype = try f.ctypeFromType(input_ty, .complete), + .alignas = CType.AlignAs.fromAbiAlignment(input_ty.abiAlignment(zcu)), + }); + try f.allocs.put(gpa, input_local.new_local, false); + try f.object.dg.renderTypeAndName(writer, input_ty, input_local, Const, .none, .complete); if (is_reg) { try writer.writeAll(" __asm(\""); try writer.writeAll(constraint["{".len .. constraint.len - "}".len]); @@ -5190,7 +5205,7 @@ fn airAsm(f: *Function, inst: Air.Inst.Index) !CValue { try f.writeCValue(writer, .{ .local = locals_index }, .Other); locals_index += 1; } else if (output == .none) { - try f.writeCValue(writer, local, .FunctionArgument); + try f.writeCValue(writer, inst_local, .FunctionArgument); } else { try f.writeCValueDeref(writer, try f.resolveInst(output)); } @@ -5246,7 +5261,7 @@ fn airAsm(f: *Function, inst: Air.Inst.Index) !CValue { const is_reg = constraint[1] == '{'; if (is_reg) { try f.writeCValueDeref(writer, if (output == .none) - .{ .local_ref = local.new_local } + .{ .local_ref = inst_local.new_local } else try f.resolveInst(output)); try writer.writeAll(" = "); @@ -5256,7 +5271,7 @@ fn airAsm(f: *Function, inst: Air.Inst.Index) !CValue { } } - break :result if (f.liveness.isUnused(inst)) .none else local; + break :result if (f.liveness.isUnused(inst)) .none else inst_local; }; var bt = iterateBigTomb(f, inst); @@ -6690,25 +6705,15 @@ fn airMemcpy(f: *Function, inst: Air.Inst.Index) !CValue { try writeSliceOrPtr(f, writer, src_ptr, src_ty); try writer.writeAll(", "); switch (dest_ty.ptrSize(zcu)) { - .Slice => { - const elem_ty = dest_ty.childType(zcu); - const elem_abi_size = elem_ty.abiSize(zcu); - try f.writeCValueMember(writer, dest_ptr, .{ .identifier = "len" }); - if (elem_abi_size > 1) { - try writer.print(" * {d});\n", .{elem_abi_size}); - } else { - try writer.writeAll(");\n"); - } - }, - .One => { - const array_ty = dest_ty.childType(zcu); - const elem_ty = array_ty.childType(zcu); - const elem_abi_size = elem_ty.abiSize(zcu); - const len = array_ty.arrayLen(zcu) * elem_abi_size; - try writer.print("{d});\n", .{len}); - }, + .One => try writer.print("{}", .{ + try f.fmtIntLiteral(try zcu.intValue(Type.usize, dest_ty.childType(zcu).arrayLen(zcu))), + }), .Many, .C => unreachable, + .Slice => try f.writeCValueMember(writer, dest_ptr, .{ .identifier = "len" }), } + try writer.writeAll(" * sizeof("); + try f.renderType(writer, dest_ty.elemType2(zcu)); + try writer.writeAll("));\n"); try reap(f, inst, &.{ bin_op.lhs, bin_op.rhs }); return .none; diff --git a/src/codegen/c/Type.zig b/src/codegen/c/Type.zig index 16fb7d708ad4..1c460acc6ba4 100644 --- a/src/codegen/c/Type.zig +++ b/src/codegen/c/Type.zig @@ -734,6 +734,8 @@ pub const Info = union(enum) { aggregate: Aggregate, function: Function, + const Tag = @typeInfo(Info).Union.tag_type.?; + pub const Pointer = struct { elem_ctype: CType, @"const": bool = false, @@ -761,7 +763,7 @@ pub const Info = union(enum) { len: u64, }; - pub const Tag = enum { @"enum", @"struct", @"union" }; + pub const AggregateTag = enum { @"enum", @"struct", @"union" }; pub const Field = struct { name: String, @@ -820,7 +822,7 @@ pub const Info = union(enum) { }; pub const FwdDecl = struct { - tag: Tag, + tag: AggregateTag, name: union(enum) { anon: Field.Slice, owner_decl: DeclIndex, @@ -828,7 +830,7 @@ pub const Info = union(enum) { }; pub const Aggregate = struct { - tag: Tag, + tag: AggregateTag, @"packed": bool = false, name: union(enum) { anon: struct { @@ -853,9 +855,8 @@ pub const Info = union(enum) { rhs_pool: *const Pool, pool_adapter: anytype, ) bool { - const InfoTag = @typeInfo(Info).Union.tag_type.?; const rhs_info = rhs_ctype.info(rhs_pool); - if (@as(InfoTag, lhs_info) != @as(InfoTag, rhs_info)) return false; + if (@as(Info.Tag, lhs_info) != @as(Info.Tag, rhs_info)) return false; return switch (lhs_info) { .basic => |lhs_basic_info| lhs_basic_info == rhs_info.basic, .pointer => |lhs_pointer_info| lhs_pointer_info.@"const" == rhs_info.pointer.@"const" and @@ -1012,7 +1013,7 @@ pub const Pool = struct { pool: *Pool, allocator: std.mem.Allocator, fwd_decl_info: struct { - tag: Info.Tag, + tag: Info.AggregateTag, name: union(enum) { anon: []const Info.Field, owner_decl: DeclIndex, @@ -1070,7 +1071,7 @@ pub const Pool = struct { pool: *Pool, allocator: std.mem.Allocator, aggregate_info: struct { - tag: Info.Tag, + tag: Info.AggregateTag, @"packed": bool = false, name: union(enum) { anon: struct { @@ -1175,7 +1176,7 @@ pub const Pool = struct { pub fn fromFields( pool: *Pool, allocator: std.mem.Allocator, - tag: Info.Tag, + tag: Info.AggregateTag, fields: []Info.Field, kind: Kind, ) !CType { @@ -1390,8 +1391,8 @@ pub const Pool = struct { else => |ip_index| switch (ip.indexToKey(ip_index)) { .int_type => |int_info| return pool.fromIntInfo(allocator, int_info, mod, kind), .ptr_type => |ptr_info| switch (ptr_info.flags.size) { - .One, .Many, .C => return pool.getPointer(allocator, .{ - .elem_ctype = elem_ctype: { + .One, .Many, .C => { + const elem_ctype = elem_ctype: { if (ptr_info.packed_offset.host_size > 0 and ptr_info.flags.vector_index == .none) break :elem_ctype try pool.fromIntInfo(allocator, .{ @@ -1412,13 +1413,31 @@ pub const Pool = struct { .abi = Type.fromInterned(ptr_info.child).abiAlignment(zcu), }), }; - if (elem.alignas.abiOrder().compare(.gte)) - break :elem_ctype elem.ctype; - break :elem_ctype try pool.getAligned(allocator, elem); - }, - .@"const" = ptr_info.flags.is_const, - .@"volatile" = ptr_info.flags.is_volatile, - }), + break :elem_ctype if (elem.alignas.abiOrder().compare(.gte)) + elem.ctype + else + try pool.getAligned(allocator, elem); + }; + const elem_tag: Info.Tag = switch (elem_ctype.info(pool)) { + .aligned => |aligned_info| aligned_info.ctype.info(pool), + else => |elem_tag| elem_tag, + }; + return pool.getPointer(allocator, .{ + .elem_ctype = elem_ctype, + .@"const" = switch (elem_tag) { + .basic, + .pointer, + .aligned, + .array, + .vector, + .fwd_decl, + .aggregate, + => ptr_info.flags.is_const, + .function => false, + }, + .@"volatile" = ptr_info.flags.is_volatile, + }); + }, .Slice => { const target = &mod.resolved_target.result; var fields = [_]Info.Field{ @@ -1589,7 +1608,7 @@ pub const Pool = struct { loaded_struct.field_types.len * @typeInfo(Field).Struct.fields.len, ); var hasher = Hasher.init; - var tag: Tag = .aggregate_struct; + var tag: Pool.Tag = .aggregate_struct; var field_it = loaded_struct.iterateRuntimeOrder(ip); while (field_it.next()) |field_index| { const field_type = Type.fromInterned( @@ -1729,7 +1748,7 @@ pub const Pool = struct { loaded_union.field_types.len * @typeInfo(Field).Struct.fields.len, ); var hasher = Hasher.init; - var tag: Tag = .aggregate_union; + var tag: Pool.Tag = .aggregate_union; var payload_align: Alignment = .@"1"; for (0..loaded_union.field_types.len) |field_index| { const field_type = Type.fromInterned( @@ -2093,7 +2112,7 @@ pub const Pool = struct { inline for (@typeInfo(Extra).Struct.fields) |field| { const value = @field(extra, field.name); hasher.update(switch (field.type) { - Tag, String, CType => unreachable, + Pool.Tag, String, CType => unreachable, CType.Index => (CType{ .index = value }).hash(pool), String.Index => (String{ .index = value }).slice(pool), else => value, @@ -2102,7 +2121,7 @@ pub const Pool = struct { } fn update(hasher: *Hasher, data: anytype) void { switch (@TypeOf(data)) { - Tag => @compileError("pass tag to final"), + Pool.Tag => @compileError("pass tag to final"), CType, CType.Index => @compileError("hash ctype.hash(pool) instead"), String, String.Index => @compileError("hash string.slice(pool) instead"), u32, DeclIndex, Aligned.Flags => hasher.impl.update(std.mem.asBytes(&data)), @@ -2111,7 +2130,7 @@ pub const Pool = struct { } } - fn final(hasher: Hasher, tag: Tag) Map.Hash { + fn final(hasher: Hasher, tag: Pool.Tag) Map.Hash { var impl = hasher.impl; impl.update(std.mem.asBytes(&tag)); return @truncate(impl.final()); @@ -2122,11 +2141,11 @@ pub const Pool = struct { pool: *Pool, allocator: std.mem.Allocator, hasher: Hasher, - tag: Tag, + tag: Pool.Tag, data: u32, ) !CType { try pool.ensureUnusedCapacity(allocator, 1); - const Key = struct { hash: Map.Hash, tag: Tag, data: u32 }; + const Key = struct { hash: Map.Hash, tag: Pool.Tag, data: u32 }; const CTypeAdapter = struct { pool: *const Pool, pub fn hash(_: @This(), key: Key) Map.Hash { @@ -2148,7 +2167,7 @@ pub const Pool = struct { fn tagExtra( pool: *Pool, allocator: std.mem.Allocator, - tag: Tag, + tag: Pool.Tag, comptime Extra: type, extra: Extra, ) !CType { @@ -2166,7 +2185,7 @@ pub const Pool = struct { pool: *Pool, allocator: std.mem.Allocator, hasher: Hasher, - tag: Tag, + tag: Pool.Tag, extra_index: ExtraIndex, ) !CType { try pool.ensureUnusedCapacity(allocator, 1); @@ -2176,10 +2195,10 @@ pub const Pool = struct { fn tagTrailingExtraAssumeCapacity( pool: *Pool, hasher: Hasher, - tag: Tag, + tag: Pool.Tag, extra_index: ExtraIndex, ) CType { - const Key = struct { hash: Map.Hash, tag: Tag, extra: []const u32 }; + const Key = struct { hash: Map.Hash, tag: Pool.Tag, extra: []const u32 }; const CTypeAdapter = struct { pool: *const Pool, pub fn hash(_: @This(), key: Key) Map.Hash { @@ -2239,7 +2258,7 @@ pub const Pool = struct { } const Item = struct { - tag: Tag, + tag: Pool.Tag, data: u32, }; From e5ba70bb5c176ba553a5458f89004b44da2b93d6 Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Tue, 19 Mar 2024 12:53:48 +0100 Subject: [PATCH 9/9] update zig1.wasm Removes the first argument of `@fieldParentPtr`. --- stage1/zig.h | 27 +++++++++++++-------------- stage1/zig1.wasm | Bin 2643730 -> 2780069 bytes 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/stage1/zig.h b/stage1/zig.h index 7a1c69575a24..ec7508670d36 100644 --- a/stage1/zig.h +++ b/stage1/zig.h @@ -130,22 +130,18 @@ typedef char bool; #define zig_restrict #endif -#if __STDC_VERSION__ >= 201112L -#define zig_align(alignment) _Alignas(alignment) -#elif zig_has_attribute(aligned) -#define zig_align(alignment) __attribute__((aligned(alignment))) +#if zig_has_attribute(aligned) +#define zig_under_align(alignment) __attribute__((aligned(alignment))) #elif _MSC_VER -#define zig_align(alignment) __declspec(align(alignment)) +#define zig_under_align(alignment) __declspec(align(alignment)) #else -#define zig_align zig_align_unavailable +#define zig_under_align zig_align_unavailable #endif -#if zig_has_attribute(aligned) -#define zig_under_align(alignment) __attribute__((aligned(alignment))) -#elif _MSC_VER -#define zig_under_align(alignment) zig_align(alignment) +#if __STDC_VERSION__ >= 201112L +#define zig_align(alignment) _Alignas(alignment) #else -#define zig_align zig_align_unavailable +#define zig_align(alignment) zig_under_align(alignment) #endif #if zig_has_attribute(aligned) @@ -165,11 +161,14 @@ typedef char bool; #endif #if zig_has_attribute(section) -#define zig_linksection(name, def, ...) def __attribute__((section(name))) +#define zig_linksection(name) __attribute__((section(name))) +#define zig_linksection_fn zig_linksection #elif _MSC_VER -#define zig_linksection(name, def, ...) __pragma(section(name, __VA_ARGS__)) __declspec(allocate(name)) def +#define zig_linksection(name) __pragma(section(name, read, write)) __declspec(allocate(name)) +#define zig_linksection_fn(name) __pragma(section(name, read, execute)) __declspec(code_seg(name)) #else -#define zig_linksection(name, def, ...) zig_linksection_unavailable +#define zig_linksection(name) zig_linksection_unavailable +#define zig_linksection_fn zig_linksection #endif #if zig_has_builtin(unreachable) || defined(zig_gnuc) diff --git a/stage1/zig1.wasm b/stage1/zig1.wasm index c249daa0674cd74250c9fc53b1a5acf6125e105e..5005c8c79abde1c7cee6617069fa6cdf233f6407 100644 GIT binary patch literal 2780069 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

J3dX!I|go5POsEJVG1`kkzIM9@{#KX%EKXR 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�e4fh_ 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≶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

VX>ABq#1E7feRn*`ant;s&#(GbH8U*v(nw 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%0Aqq^(64ot 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

muIYeh%;Dj$4^IS1_EWJ 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

@9f{HX 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

A;6#w9 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

c1X8#18czRp>UTb$XARVu$Lh(U-$lT~`|(0cu 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%0D$HoCLbXyc`y=4N(waxP8NbYyeR@C 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

    ~_Hl;(@6vwU^5@-;NUA~gcbeBV_ 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 VRbWu6u2o`y8~_V+7wEhwO#s^5T{r*$ literal 2643730 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%0AfRKMiUu{#DV9;i?xKS~(V@}#KJ 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Ν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

    2Xm#;uz!aB7et&kN1*# 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 )c0w9tl++TI#qE56`>7uhiHSr~~N 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

    Bt>|+e1a+PfKc?bP(1FI%8eKJw-RzN{0|`ab1i| z<2g+W7EF=im~`<(a^gE(llIQio>UX8SX2)JisZM(b>zG!|7IRhR{SBkovfc!We z<&j0?Z*+$#-~inc9k;^*Ex>7%c8sf5daSg#9p@!7zMh>R5ZS4lww6}co|obQ`X^vU zTc~S~$abSr6c0Wl$mJ7+ndDB%)xAa$02RfaypINYv^8-(Lk~&j_^lPy3Ns!klcqU* z>n!YnC-e>QZE1zb<#%X>PV+ggI@6A6i)}tLHkqYn(8=!5rdX6W#(}cO#b+QC?w8iuJ>S)*tTX4PE8cf?}I2#P-e8e*v4RHkgRTP42 zyU#~GaEyRdNgD8-G;qzby(U2MfXpGoEorfZxx4lvDI?lq(c0)y?sY6Io@h``Ek z5_e*yS)$ImG|P+n?ReROifZqgxa9(1MR{f*Gf{6z)467}G$$V%P&mrEnt3LN5PF4l zF;fS2^++2u2;Yu71P{gDPRnQ=JX@=WYn@94V^t>^wLhIiZO^*vW!BxIGvGfqo-uEF zOS26zJav-@N^Fzmi;Bzy-aDfV4i(i z^^(8LL}J22o9LWXmacGtMCORL|981) ztHHEP_x~A*tL36iAG0NczuK-bl#8}nA=+xhjXTk%q7rRteF)K}t3;cw0+99)scj8+ zspdsn&51VZzM*KNz3*4FQM4!8YS$5MH919IjA&!`$a2wEdQcK==qYTiaZ|7PJj80o z-$S^;(fbm1g)tJ+$D0r#?l5OH(`Y5sJ&p6YmHa7Yw|SFIM_cy$sCk!jYMiAy!#k~3fst%~QJq-5QfC)ft5&jYp>Xt`!(5kF*uf-!h}@{QMOle}gjZN5RbI%(j>)QjO^N@Ii#<8LL6ugpgA-&QX&l;Y2>^U~{QspHvPzeL_h3n*Sgatv00Iuk z3Tgt^3nbZ>NaO#CQ!A*@V$g7QQhO^qNz??=`~6IVEs~WOI1U=bykAYjTL2M4t+-K8 zE0Zr!KjOYx=J@u37QqBCLor#9P_@glUoP?OW22+mAf zjGjr0DRv|hjf%wQDSU#Bv9lwr;&QO=m@X1CVDL_HpbyB|Ws3N< zoL%0#O!Y1RMW%o`yR4Q8)D=@dF|$ymaCRv%Ag4h=s${ky)=y3$1R$YCRgnj(twLOg zFjAzF-J{yFNUDmY9$Jdtzw>fWS%yxA-G-BT@_1RRhgA586_!TZkg%g&bWsT(NaYxY zm-BelOCB%YU1h00}7!Z7X+BgN3|CYJ*HYD9wyaq24OQ_FOUR1xQ}=pPGr zYTj#ZCN>Q3cb+C4l##~m&-=*zdH9Z^z?_>&VL$j0igjC%zhT-t29X&paTnTxj^JG3OyAv0ojd}&%X4k5dtnp_-!7FpA= zKxiC}(QaA+-Vz(H2e_<8S`?+Vle`bntm+9{5^GX)glTn9G^SFi;DWhwPm6P+tJ!)6 zp_!%l7apUp8ke;oo7^<%xlx>QRB^5s)sNW>GCUKzxVJ-o4q;b@W12-vq30&kY?+2q z&Dd^3bsvcWN}c}_p$VU~AR_HXDnZErO(>r&WaAj}Zs5)3&;*s)N*@7?pvDdu7@p=y zkyLkRv0z+(@LD$H5dc(o^>&K8056H-U6dgk*i&5ib-yYbkM7WcZpf!QHP3WaKSir)7|yMh2qX^iY>5?He-e0nf&= z_9XNZd`AuOQV|PdODygOZvi5zk!{8SPpL-s8e5{zrse+x+KLS#AR!`45xB*2C(rrV zrPHy=nkJjUf^2#+8Sr<(KCC1xe)8ev2yc)>IT4ap5ExDJuYF_-Ey66Gq7y8QT5y2% z1Q&&!fr)A1yC5vZ?ZIw$7mmiF3hm%~V$80kBT>JL3oQa*i{_x=sJtWk*9ujUYN7xvKBO3Idq zviAyY8Tf>^&xE?B78`2AsE=#Hl!;kaexKwj33ftP$4A&wXTg1_!$bpNMkB45kE^8( z?lyg8>bpV}$SZKc_MrWE%rhH*+RU9GtB=n&d<6XAS-^DBTIn|R-A+O9aAdU$Y z#L3@SY}?&sR1xtM{TYvTi)XIFM7LvM1%4@NI?6tQai!#dg%5R$qo%+{ z`e&C#m50P}yN&B|3=0$TQf z?6i_0(*=p3&DGwtuqAe_W$eO8OOE!Z%P@vf}o3cO$QmgZU zXkJX7s9bHSj`!O`golh2@S-B66*Vzx|BsFsC(t>rNsKAwWq$5*iDF}Luqy>eEJczD z;0jG_`=?R@kB*R9s^F>zZD@d$homB6}` zfFc%91YZ07D8E^KY6Czqkn$jN26Fp~JshSZP(1lt<@F#{s7HSAFzcyncS`>eRdrR>y_vX5)0W%at{cD5^gch>IW;(c;+V}Huorkm*3hg z#P6)}WEwrrBYsu(XU!*>aIF#BZJ@R^SN7zd;K`;@vRU~ zSoL=e$qLMcoq_lt>Bxd?1dPa>1dpC%@?W!`4Saw^M+5HXf2DYfI5&k4ZD@BeG}PlT z`T2@b76th(aNp^mY4r^hBzuVXxyk|6Ht)NEb_l+P#&oD!#BplI=&2li&Gkslt5X|2 zTJ8+MXuXt=jEzz1HA@8dsmz8po1@?Xv}30y{vUO>nR|MrNtovLpcD!wM{0qgZcld| zE~`C)9E2vYN;(l;C#Qz?1|hS_O{s2c=D0uLoY>5n*Eu#*ZnI2=vkLaoWD0pFp|{(M zGUI7Lmt^co7$!e!iYa92%?{95r-$b@#|r&OW5B$S*`c***%dH!CBl&aexNKPjZsnj zZjla1QJ4)hUDy>XwKXEl-1~M*{1H1=;2l-aZ z-zuAfKn|+i6yKO*cZ)E ziBxvyMjW#JAv%i)Y$GO=oF_9}>TBYJqWkzk4LEU&>MunN=#C!zHPZ zXy$z$FsmBmpJ@MT=){xsxso1`%jazVFP=-JM&)AKsRYr!fks#f_^-kyZdeb9P39>D zoryt(BoKwY!j6o6!3NzsaV@>`QrU}GBEJ}k*Be}76#8kDLMNTV(tf7md?d5c3XOd= z2P>gMZhadMLyRHmY?GsBgeo`yBwCQ10-swq%u#Sa%YP_oF&c_ z7sauFqSM-(G4-Z0A{ergRphNOFtFhfZ67yc^G&UQ@iS0TXx~=Zpk+&vyh{HP=kZ zE=vpJi;`xh30^puFu!QZZCZ7HP*fY?2<+uI`$}Ek5^wi*p;%gc-KjR_f^HCH9~5}- z(DWu-mb1ogBK>rO&At{+xUfv9t79{H{w# zmIr4;P+Rcsb>xkZZw{V{+_vCsHY86A5-jTQ7tWX)gz(zqux`H-f~6g~en6`;l-8ov zJXfAvkUN3hXzrK%Rs=~Bd1U)kF$;~Lo5=@d8=AjVQA*u*FJ!~^MB__#zGX0vjZZAo?@a3x%FQF0C}iCl?6!S; zqOZGl#P`#flqaJf?lJ55i|gv6M2l|=A6^mt!{-m_^K$zS7VV2!duqTSs%2jf_HGLU zmkH~wMi}CTP~m@uyq8lU>1&PUIx`fHr}CDGwou>?YQ7cs;1ZWj3P9kqKo=?!lXPP& z=p#&QoB0vHw&IkrkAxzPT}*0hXITp1wk3@)<3a=hqJZByM%7xO9Q8K3A<(jts2`Pkd#$Pc;3+R z=Hy_@y?jI?L}|=ZD)92I;-yw;jkzpiuB#PzzJ_EDP_+^G?|p9fj_4^_8v>eJ6z825 zg_B>WDO(mVX@{US&TD7198y6ln=UH*7?mMut+vB@t2`#U9)@eV>Sj1sUPNJs+pEJ? z-BF~Y*4mA?MA>HUNZpYT<3$fx*Qnoz3^VtL(j2UrL@+iS4cIG z7s$f=P*V-qJ}FSX{D_+^mnTl|i%>kT>Bn>XYQU6bIX`hmO1f0(oJAU7jP8h29>OPL z@f7dJBcX-&3veLu%6jBF2itKy zqHFX>%HjRu+w${?_F>;jcIcV4PtIBR`53PE^Hm)0F2{NILJE)v;@yZr`S~hs8gRZm zki@&~;=*k=3X_8$gxO#JELmC31lcFKCSMtAe>yY^f<@&t*W|@Jl*1_&PqPV&vYCI6 z$~r082gF8uTAXE5!L8QULFe2W3}dkx>cZz}QEa_I!|`~~e`gT#0IfsPYus}73%Aki z&1Z2N#iHyq$shMn(@zAqbt~`MBSYpj&mLoeYYYvN!r%xDX?;GJ4}9qtlB|<`>x&!^ z&R7Q20u+yUr*G_yV2#jJOKSEZ6RM3C@YJQ-v!Dt9FMXn zHc~gj98br4w<&y%F4%@Ii-LLH?GUUVqyANd$80~ZZ99zvRoh{?w4U=qfu1+)Y_4CK zeOdVond@H?XDZfa++q`5yvCve1JoJ!TAX#;%>w+6kWsCD#}n-0RbGVVX5GbZlH2oqT8_& zZK;5@2?2~Qq&R=o9IdJg%*Ea4%+HWzY&_b{OmMji5=Ur@kBDiy4Jg8DHr%34w{_#Pnz8DL~=y(`9r1?(R%mWE(^CA}|cjY1v2^X;A+I3v(DIpZZIO0Cq#Oh9^TB|pj zt#)7kz+kdwXzlR2^`jeZ8QZw&R`9JVlX4dqaQLp&5hX;6IS`kckK)G)4viO6VjC7D0je{lB&LKKpdHThTAS;iBRg#TXYr~xQ3K9JNi9ly@r#YV7Y3{|*H(}sPKMUhVH?6jZbKNwvo{B92 z51DpUn^KOztB4dB4iT2~q#YTe>~+aWqM7*-MtxM(GmUmu9tVk9<8;EhL>Flu%Z;_E zc;yyshuy+>H8d#knoNJ#NeHj<9Ev50=m9S)vwFg!TJi<)*_o>6QT9L%6sm{Cm6;S> zJLnI)6MI<>mqKbKzSwKX#-=#Qu=D~x#bBbrYlJi?M0az6>)z#`Sa^j=uVM-mUhhFC zpH3Ncmbe~;cxF&yKz1;?!RcORixJ0nbb+7HLM@ zl0G!EbSy@tSWS#*x9cj@))fSJEf;W6dioC?@E8C9{NtAi@Q*+H0dEkT6665v9$f*Q zj3dj39oqvgifFN&0=v&I2|FD^yIi8B>_rgm=Pw0ztXG$N$s7$!ruKFSW>~%rma^;ix^#(KeW zE6dj9Cc@_gB0OraGry4$A^s#I!kJzeo{tD6@RvlN&T@%x#)$9>i--_}ST+$78dV0~ zGKo-aUJ?<)!VG|yQFa{;L^vmaA-l-o=T0EzU<%}KfBNfK7RPXfV{2l|nf-uACj8(| z>(*o=T~38cPU0alQzWBvCz0I$HbuqFab-KkFEQ+nu6%V?U%{}?l)pM-UllPegM(}6 z=<=83D=Az;rsZ*i^ovV!fz_IsWy;T#EhEx$xB#sNG-4humfn#&pia9(|R1^kXc~Q!6 zdzuxPJoOhrb6;AL=B^U%ER*IaTZY@RXzojwLUXGxKh3SWAa1z8EVN8+_;*V}M%2Ar z$WZozA@g^a0-38WKV+`B7}B{o0Dbwg0O-rlegItnQzH@LMKHCwB_X4OJeEs3l)Yfm znY$Fou!>)9L1JZ)MR%Fx@S0edxddQZH(TNFqeppeFR%XkG;N~ zW-A_QkFak?iBulqx|!2{vJoBo#H??O-uv$Y{`VUApSVomf8yB>euLE`7X&K?ec?=& zZyqsNeRWA#!MK-As+7G5QvK?szzQ+pa+50dH)26e$d~%PPuvz|ZSTJe=-4CxmpyTr zKzHKV4>~iM90)Mme?c%?agpT4Rt8}9X!Rw#H6U!-6waDvViYo)v z@{kRp9-f(y4F-f{Qg0EJsd*&$EK0x5kQ6gOY}y0%pjl0CPRI()*lk-inRT8XqD2hO z5QR&ou;nT3d^2lQdU8oBh4OnKE3lj^5QnlCL8T{i$X<*wlNIT5Qz>VB7*&!i+>F#G zb%jb#=nCBDdSQ5OQ>Jn-_W-cdwPl{4EXjleS$>0w>?KPOV%fG#oGE4CEt4$O=8|N& z++ZAdoB{AMIyAKL!n_Is7+!`mx&lB_sv7`Fxn3s1^8pYPE>mD!D#scYcAUil zR{JWs6VXj^+YPXq6qKReJ-Wg)ck9Y}ze`tWdneZ)KIl2_5YV5xOrSsY><7KU@Q`2z zXb%L~?Y|({5glrBN+2_y_E*N!zh`c4j4f;!uNz0qg!o^=hsEWIZe4Z^Ff8Zdhy=41 zf#pxTTVa`Tz#Ot}n`ff*9~hf9?-=LPgV^1Mo0DnHAGc#SCo>l`h2o?aBTr5n`hR;# z^oN@+oAXijA~@f-F9rRX&5Hx-GY3#M)Edj0)n*_0RJGNYXzjly99^kpE`WatfQr2i zG?31BvEO{pmw^2jJyFjr_V;VQ4#Qj@eU^NM(ER%7b2d*R|79=nM0)qk(?53SiFz)H zOR$bz96~*_^F-DWTMv(m7qA{46C>d0T%vNw?W6H?cCI}L;mpcs8K!FPRI$`*Jw2)K zrQC#i=2Xwc&NH8qz%u=(AIsTxI_-m*f?zdqoc7_BiZF5W7c_D3?~CHZ93g@r^3O|h zVu{Afl|du@^@;&m1QvX{&Ziv5Pgb%to8ZFpCss0Ae|A7|QJd;+%SPj_o#-Edy~$4PQZa z>X+Z{qhnW2=Ro9hi#3xzr0q6OZ+IhrC(%l*X9ma%GQ2Sd&y3-X0ogeRHMtDsMyx-k z4cc{W&c3-aLC@@mz6bctet{&uAKj-vDzNiXAiQiq8~3m{Z!0wqFSHW+ss7{9Y5 z7_B4A3{Ru%MS$@;mjXsu9j#v04ULxnLr{|rPGSU(m z$ROVC_j}}fAlVTyEyZ$KpnF*EUSqjW6_6~mT#|UDg#Sk(s58da9SS4rDqEGlo_T8SS9!f=m9>9whmLa44>sNOj;G8T;$e8 zyg%T?Wu-GxeM)8OlVqa+Ugd05B10(b*7)_pZZd#x7g8@3$_$}VoGion-o?a6J2bI2>beTowEHYmU8GCAiosm0aoz+Mx zkkFS6q{Lp>CQzv;(~57#GLEn?SniMXqof8RDQlA#Vo*_$8MoY)z9$hM*?Mf=*1C6o z)~DgI$DeUeywj%v`3LfRJ*bosW0ENor%bsnUeRPkiCeb?GYv9ZY^l(G_CB3xflo_W ze`Ks6CpkY!2?|58p|0KPk~TzI)!W?F|INkQ+|fRHSlMC6bNsGlJ-A?L(cSKpCd*EZOYh`;>z& zOPI|2n##5$B2X5eAH)wSebbZ7U7#4UvHDX0q8x)&Y2?onA+3aAy50!atI8&SEg9jG z3dF-((!%l+$Wl`-$tceQP4Ib3!P9psGv zl`&8!QM^tGdQ!{QXN6v7x%};nTzaHbAxeWv${lj~#_EMm?X|Se_RhbOAs3l#@AP=B+aRAEJnKKUH_7oq1~+il(VlCD^qI%e=Y5 zw%e*>w-&QpRa&^vqq99dk_f{x8GBrz=KMS*=F+;#4j~dekzTi>YC4Ifw6|Xf`n5rj z!JByCs={-dKD!ZM24mrJ{ILnN&QDst)g9qjqSRpQrpZ|84s-sMQdceiUzQBtK77vq zR@i^5AgwfHgBkJvtz5aXd4>HqIFw$w(z<2+BvI)Zrjsl*nVn1y!A~<2Zdw$>5Xg^w zMbph#KL=Mf-4TB`(sZ-_E^WG_{tg~;%-;<+-En_6)O2(HZm{W2_`7D)o%DADO?S%Q zVP>88cYRHF+TW2x`i#G;H(lrVHB+Fj+wSk6`U!sr;qUNw(EeHf1$4gC-ifnA_dsm7USc=Yr2i^?bzQ2pp`k{U3=Q?^%s#W)DgK@&QfP3M&vT=dmi0pi3*N50G?F%1 zd$F_e);v`hYKNoE+n>!wVRlfTc&%Hy+bOzOM6SPyG% zlD~PboBfq`eTcHxC3`D*uAA*D3L`LA8M$t(19Zf?MaSs^2Y}G7WX?ksGz8VwPcbJtW41{e+Eb}N7(>(~VYBb`_h z3I_3ILV>au3I$rdG#KEM|B-=#e2!8H$wVOXSkr}wjDr^p5x(J&h5q!7O9BQUFPl6l zd!c}VJl=STpaCU+WI%(z$zZaMNgczg$Yq^a9>*oXsL0{y4|62NU(N{gnPN5cu5)&Lqf3*PbWQqIH zLJxS2YkKYnSMB9~lr4jI>Kxq9`hx|VAdo7pE}}c*(C6iU6TSQod^Z4ZFY`ZGIF^o# zSve>FljGo-=6~iMhUk>yi!(GVi5khc04MwI;pviHrIHP_>VxL>qwHOj)#(|UFKI`1 ztm1;Q-tDZ+pf^|Uq1FfJ2DcJkt zoN&jDEy#(O6i;#;qZ~tW=~`4sF(#N;OR~0G4;lrVnn6 zCC3<)m)GX_#htQNsZ&`8(s{+EZ|493WCAzGi+6&Z99NytRqobDuTNOXxOVJ%4!p(4 z7#45gt;ZdYx6O11W52Fa###EAH6)H#E)`p8*RYj9XRvj^+Om}zRJWB{OC0h9>$P94 zm6@(*sSc>x$OhnK8wN|L3U-F28dRl$EYtRla&og%%J)qJsN{YH2kib<$3nBzZ^(*V zXCyf58U%}cX!-hVsm;uAYgx~?;*qZs492ZzHg1&IUYbK_+938qk!{u2s4Rjbn z{32y1E%c@DA26wgr6reY7C@-O;DOoGsCMbE6%b-@MgCHT-Xqm$de5cPQML@B<>+*@ z8mP4kp$pRJu<00degrf+*|G5=6Yf}1#^t)Vyx!I@8{@QW z%TrDIj2!zCrpU1``w{79bXel5@nCC_^kTX;E4X$cbjhONr}HP8uFK6ikTf}PZ+@Ko)ZiACSojp_IAY z<%We|W%|uHPrnX)uqx3pz$&&~1GF)-)yCLqVIz!Az+%kxI~gMu*>+`Pw1RO~)9-3i ztk8xO>Pi|N>xStaW5@<7yipoX4djJ{qu&7wM;g%8x2ET zEcdLpn3L}OjRF|+5MhpQ$C%FLZK2y7CGW0qoT0QnN*L{^?CCDm+bi8wy>BzUUG1>v zl*>*>di@;7k@LlCcOCLy>^kvF@gzLgT~qogOPcpAIIB&kFvOtV>-*>*^!#d2hs&#M zFk1|dB2=QYP4hj0CwxGj;?fb5{eaJ>)1H5Oc z?44>L3x{O+3IGc{mOW6#Fm>>?7-IUd0ikEbABqNkzCJLN+@RuSF^kswYf7IP=Na zpDwhCrUhTgcHt<7F>zcDOU=(=7~@XIr*h0iC4FZKggG}tCyFyd3^J%c1b_X2vNN3%*x-e_3k@qig}mDjfCV$rDxx-7MX~;`C=|Q>>Q`R@@)v z9V~ubx`W-HX_EHeQ*9To^7?eF41GSRDiiu#6rf5No%$@S_kB*9cNVL@k-DIzvq*}r z;SKPMLH@?C7!@tB_z}|?wP)+VpY-Kt7tQ1Oun9;wIJ4)UFn*Jrhzyr{o>o+?KdpxQ zm#F2JNRA$EY-UkQ@!3j|y-w#kR@{JG8+O8wkj9pX3gC0^{N}EdlLyyxfTPUL<;uXP z1`hhGvnmM8GOByj9fvfz&3*r4XMWHie7xqad8vhuLvz?~*2yE-;us%3pnDt^41&O{ zn%nUFcRsfF@#H=h8os&-;ed%c+nIf|hHu|}gZ|rL*0MsGEpwtG&TKz`(4T79!i!%? zBNcZynV`23H^kcRR%`Y78l`+s-_V(F+=rWod81Ev(z=(iI6byIWzXB{s&@_T8)$S>A24e1rK z;J`_7DcNZ|EEkdCxtNHg6FWs*6QdVuQRkWQ6KyT;yd4T7(7De>V59B162OMys{uA> z)C}N#X$h_`DdV1y3SI(Z5454Lv@%!aoUb?RU=B?cWcSH|+bgdpVA<%Y>V~xj*KPR` z{)y>%{A2O#ClG_BPv@~4a`yZ<;D5v$n%T1HrXyP>0V`L~wG(r-Rc}$nP5YMq5P>o7EIlX*4YsTH&7bvx+TPpuKP8uWT$TRCIQ)`Qogk&lPp!Qld;x>wnASJr6 z;sx-?zEiY3z#T?i*6bG+N==vv3Gj(qfui7-t2n)ZXH#6>RZlpeSgPCP4W_%P8KBq0 zcsHHziJls>({~7O2-;hRUobR;s#lS(*$#sl8Xg`RTCpNcM@EK+SFYq-nC8ksg%4bD zg)(!&i+iyyPNz5|LU>`0e@g7aT+IaKBadL)r6Njt;r7%Q6seVqkbbM`rur8YX_Sj7 z$%5OrurEouh_>;&11lEPQY{xDZ!n=?D;E^0my5t9tM2fX3ySoWi)d@II|AH$2HjsS zA|~OEjxH!NP%fg~Ywq|p3yL($MYM6tooJPd+)juCP!)w5qC?JG*mG8Or`DB=S&k$dX*6%=j5Ki*;^SV>TQYrXBMeIE=0;t|*b%4@HB*b}L{YrrnT!rqUJB zSU`}K-`Xz;Ef{8!=1U5pvdk65Q~3UU>StH9wSGdyaMvdQQ%N>emOp3;&sv z3)ovF{d530>=c*}7WIm4z_8zhXh)fR%*`F4b3o0+NGaQWLBY2*21A!Wm|W7cq`@Hc zelgN?>gZSeHkwQ^;Y#|M(z0XU>p)&R*t{a4QnIjA6)jipORB=F!v^7M^KoJe{Ta`* zk&oz+tkSA8W%O&U(VkrP0HHsJqXp@E9B?29{W_!wR7jNU5q zE4(E-Kk|rsJ80$pM=MD-Re-(J%EbM_Z%r_YL~bsy0W~d)?^K?`NHz)CeVA&+Cq{^b z2sHn@S1i4{!}MYEi?k3>k|hoz6?q~It7_J*&vU}%$AHw0@nAdBoJoiFzuIq~fCWg1 z(5ePy4GLqU^aEGBXiM|2t8qjSii>;(GV8261z z8keTQ?`Byv4b)Sl@K3}qTC-2rUoAAJSDf|b3<577wW@XI9@a|+veH6j(`|r2i+UqH zIpAPR>!WMb9LMpFw(9QTU*%M3BG*TCnzjCkx>lL}BDa=Uccg$zA(oURYRTx%I(O^K^HBJDD||hLH}I1%jd`r4-x#=BI*1k4?E0E@=Al%2)B1Hds}*+f1C;mm zEA){1IVv%H@?!f0S=|S2&cFmTu|e_*#a~qve}xq{x%-t=B{x%O19?Tw*sNL`cNZVM z+CDOk;x0atu%3^?_ewe#y?RaY#Xa@~V(5#Kd-?5D-m9x^HBs5u7G<|tSt0{;R1q

    1xGnGqHS4goITzCpp$BU5~zbZbze!H9&^FR2xhuRG#MCH70uRJ~k3yE3wUkhK< z#N$xjE|o0U#Lv4h9+I-KU}0p?FqD~ro`vyc1sW`|yncM?S~!sK*cVx~qVzBNdn$Wt zf(^um&)TKoCmd}niz|49&ASx~7c@l1-y$rt)elc&rs_6R*jgG{jV~bP$8L|%@Uz;_ zyK8@;UE7-Oxf+Z_E~-Q}Tb<5y^eZa0;q|Z0U;NK@=kiVSe-v#XFbKsA;gAawC`TV9p_#f_-);Hw)Dt4%@s!KjEDxI6 zDR;^*b}C&ggChNWrD}dZiTkuP%^@8GaYf4>A`xyl;4SVOKfuA4S{QM2=*u7rN^Dsr z!vj66y4tl5kwzpDfg#!gtM5J`5`+N?1adCE zk7P3H)%%Q3&Eo&Car)c5MdT(KR%G%~cc{4n+)`iS4iJi;UgoSnuV`0Ckr0z@?E&?N z1B~6Hk3ahOf6uC;SzowKMzaAKzF0*m)88%7=oYB?0{MV2UWoX{Z_K*rU5Laf3yGQGIQ>;vmbz>RW=3hyJbjB8Imk__ zEv_D4|Fxb}{4R=lc2U%5L$ZY|_sA+#AXLHDod;Zt!TNs)S2R`4F>UK`C5hsS&YQ5P z(FPsRa*=+NNU8PFYnUF3U8CAY?jOO@Ze7$7Lv9wkUCkZgFR_7qb7M@*8eg$CAuqpe z1n9vZt^AzI`;%?v^74^Og`kP=i14kbOI#38)!!?^&_KZX|=<3Eu#2|rH zBZW(KL$^GbW}8=M70suH?@llR-$R~{7Y|mvpz7;DtBO!%UUWY~=1~3-cNWZ3g`_&TK5e?;G zqb{fer)(hNX%LKoid9~#gR}@>;|3j!d(;DnL%EGW2(MzTxRTDo;3q!F;$3kMaY=WN zHZ=sWFu6U}E~k$)l189UuM9vCh!wVxNkTv9B#+v2HhbaQTn?Tu##|(0yaQp8AW#fO?i__7)?NS0M_DMtwyCP)#5`M} zghs4_^vdogCCDBSRk}(1lW(n4olWU9E19PDa6D>)0V7mkshCuT=YsG))9{hz?KmDjxHnE_`SwD_d z20Wng;V_ETIu8ObyUy-ZU+9KMM)l2$$JQ8h1s75m;~#bxX}>)nZ@>Ap)C-=(Mx^iG z$zyLPiG7e9BhGOlofPoL`D&>N>?=>8CQs@sh+ZQ;gwFLdw{-47rC;G5lMmYp7xYSD z1m($M!A%r13QAm8+0;VdULU5cI&ziNynJL4|X*IhICXoljvN?I#kLUf)Rpb_54~ zK0$FdwOU&ry{RvJ;-RYUfTAFqr<{bpYy-H>TDXmONCXnw zq>-hQ6-7;%IxWGa`I!d7sbhyA0_y(Uc9L^LU6}}P{b1$`#^wEW;vv{QOoOY)%4*oQ zHXI!;mw^d^tinxSBMj?#TZgZT`7cSLp8u*<+zJ|+8LN>m_uy^CENt(jRzRaBQ-GHF ztrgzpx z{Wg7F?S9?R*VgXc#fOWnF^d{iw6OndSGU0(zCq58W(%Jhg!#BX`sH6Ur+nUB!$^k7 z#@oE3Q~tXteYaQNv3T}?rs^$OSbN;gC#7m9B}|j=2giEXViMEXi!sNmB^L}jrg|uY0J~|ez8yJ zxd~T>7pzH-k2dFGZxh9SfR-YplN=;t5p2cOB?VWCJK1lNCZvJB6mbfXete86>-_TT zw*R6;#4u7hYDA5yhgCrYR11;QG7zMFpNst z4{-|!6!cyqp#=Nggape7jOSm&$tw!1&~pPbtNmM27-#%y@gQR-*fqMZO`wm3>FwD6 zCRwk%9waP;!grm8jHfoEt&!Wg6<;5{oc z`3WlcM3Gln#4(NuMYWt0Zr6$LSAeOW>JPYSJy~pD>@aL8N!R`gqQCnBP8nF9g^HBF zR16tru?O6oeVNx&RIK5Z%OmLcmhuus1^El#7tCrjzVZQVte^MGvhTK$U6H+!WoUkN4*j zWTa-&wy_m6{N*!6|3x&#MDHwmx^M=8Sf_IqL`)xGD$Rd{?XY8zX};^ZY?x1eNxq$$ z8PMpGP{=(VrIY=d>~sB7;SLQ42;=O%1iI#YWCV z3=r}kJ`549<2q(s6SHdiXg_^m2_T~}{sUp5ty0j^#^@&h;RZe+AWDWV1h{vO_z!Lg zA5-RrKo;;T&|yj755!z4{5_1=wNk4+^{AlR5wzNwK0LFlg~5hKxl-Z ziNxed>9*a*P```Drg|FV1F&vmbU^j8)@neL=HRjB_UiS)&>WIV(cD36j`i9%*XU_( z+M4?Sh;{%I0`D(8}0?`GAzxzM}W zQt#%hcLa3+2W#ZvfLtf-2ey}$XJ@C@dY7i(9uNWTBD7Sxt0Pq)llFVqfl0*@UXGEb z5P_)TCheP%@Xb{IjiuvCf7?cWD1Uj_D)QtxQ&e;q>$X&M8R9BRheu5wByJ)}#euAgI3Leg)dyE(Fx3RlPVOhW z;z#W_ZN8U z{t-MqAYx>1Ihi>tk_GMn8*=M9SvvuN*a24vRRrp1MRdx}LrB>%Y5^n}7;R?Q|Q#Rfcd2L}im{$40 zwpiGXYv%RSNqz!(j>(0_qI`z& zO%#->%1P*Hb?)N=o zw*F3)-F$0IDhd+~NJRlc`Sf;JIW|UL(~F^7W6qbe>73K^969dN`8*<1)&Ul8GXa61 zNv#W16gQAK0zY@VVRKPL>W}59s?OK z0C%qTs|gbD;*b2L!UCeW5{p zQVKevx#&Al|4yZgV~vz9o_HNxvD{)8R=Mfm3URl(+m*bd z?xzL0M0WjBS6-o>P+C3lLSce_Ui5^WQZ}=OxfDyJr_+fInnp|`2-h#BGtBC3zE8LC z7MYFu64d>oQ+KEtq@41AO*c>Xj%dX9lt)ZCnz$PR=WgG?goyX8nY?iTyYQ-gP+XxP}XNzFzE#vxOHQ{zM&uZ z43eOFCvG3#vfeT+hk81q(U~3{Ix<5?j;JEWe2|VD);)MJt;*1lZB(e|MMq|>BM1~_ zFnCqVgMlPXB}$?oHFv~mxt=Ahv96>5HBg*p8yxMJS{3kihYv2r&Msj1&nLvi3usJg z{6J$*m=HY@i#Q2+~Lr<=Y9JLMTP7vsu&Xkz<>H%*w() zty4&9x@T}KLy45KP!9`IsOQuYgUg3mlg)1tW4K<70d^%*SmMq~mPmi!CaP2G8DGGh zoKNVaKjKBS!V>qr*Cx-5n%aUZSX88Xv=xfs*(OX|z80Rd>Q?tVU%}K}PahvZ!>Osf zq1mAO*tg!InAYo9B#~TWORP8cof(SFMYV zW{s37Kf6_mnX~22=L9qr3?(wN<=eXFX?I`E z_Lu@{W7b+-SS)Pz@+E+vo=*{y&~QVzy}~R^)jWAm)=izZ@N?mCbcR za)h%Q+yK{Z%-mtmeNR8?PaU?*PEBcYkLYGrJ?1)11NmAwThqD& z+9KD5s^+>?f$+yeRmW7rCj}?noD5YRD^+zeugdtsS$#)W$OUZt{IovnXp!f7T0=Dc zy}e#W88Jk+lR|zdtdp31nQYBxhst*7o^eeG0J}qF6ZP(JcAMM)=GC!0%h$+yV}gZ; z(^MS;qRpuBU+4j`%C&>|BNRgqr~@|>jev2{6>+M4q4m9L{V-iSpqqoC8+%LLIB4CV zzF7M#!~uQ<#%};M`momR=S{?XTT}q>mf%N!#*h>YDa3DBDg4is@H3#ML6+@M(l|&y zUweJ-oUW$P{H&W@Y5cG;4Npc#7yS(1m2%JI z9g($w>x>fiay?uzS~2Z1EP?2i4XfQe6KY<%rO^tnVZ8wjrFM2P8coyCXpXC4G%6@- zgSy2vsGNZNy2^Y-7|rB%Frb-qR-o`N?jdBpsYm1%d>9I-z^|G^fgB z$FM2(`nI29n-{be!UQO?6DXi;Aq0rt#BO%!HP1UV)uLBD?+(D4D9!M00ZUUfSC^U< zl28!HVBz~(Dhb_MqqQ+`NxY`K;l276;t=DlZh)ORsM}~-rm(!E`Mo%3)LsY=2)~gbjn1n@L(p zBmDz}gB#;@xniD)g%DK=5vVz00^5Ct+&sa}d&AzxsA&voCaa~t&*((EObH%K3**mw ztF4Ikn^mbm4FU~)WGNxVmL5QUL$uRs^F3)Y=p$o0M6P>vklhTi`|=XzXap0Tkpb)n z@jWQD90k80rBB%!yQa*Z{ld12!6h1dF4-u!hzBz$LI9I7262`$vrG?i4QB3scl06K zaMY@}eNR}ZPODFlsnEJ30*Im`xu_JIcBni*ijzh8~E7%;utOG$q-aUMwlO6+FexI``MEx5uD zxqARz-`oS|`06uku!b^9HGAm?rwX0cGIU+#OibE6d^~xSQ6D*jL7mu-6J$p$QMgZq zje?;ETk{^Q-Euz#Ly9qG7v#nE9>SIC3u-9lB@E8yf}|x|hpTlW^NM~-a%5_2ZbVvn z&0QsZJt9;OklY~Wldqqp6Hy@_93S~E%8>%|kZkjZG1swMV`*(Vkq@m+Z%kk7){>|( z0ejyFaxGEEaytmWeVnO;XxZiaMc^RIL4rM$P{hOcWm!LK<}l$mbl)14s;DpxX?Ns$<& z{Bma1+3Z=@VW@r(S=G|x-3MDFDs7O#DcV$|TTGyeHqtW#8I~qVbvB4~!VRo@^k>XC zMN!5iKb28V8ak|PJ8_DwkD?pSS@imrrsgIU#qvkdTh3YZrq&=uZC2dpJbRF?azyS! z*h-)8ppl$WcmlC<9Cbcx%q)#~Z311~rc%1L!~jY024*j=ALnNI0jOtToyEK~TSgRVK-z@IaW}{%r7mg4>(-n_y81d_1x3sjN-F zUMuJ;xC|*mB5~gXhh9a;vGR!1!M@Vpmg&fraCoii)fy^JeV70G)s$mPJdG#XDlZc= zz4tboqC=(?+2V^KMav>hyR$TgsYL_2TLFvKi+j7RpIWMQO(K$I3wv-F&HyiJk}`eZ zns{c8W_hzQmZ`Q`b5SgSmTo4D>Y5JuYV3hT?$ zPXpa42C~E?mS<^+pUbnf#Lvr{rSCIK#P=d|c4rAzE907GiO`q=b$6gfFGO8&hK_Br z`Jb^ETUoF|AKhfTlcaf%1ZRbG=t}zj5g`J(YT~UKTgl88&9hk?Oj41a(7Z#jcL-dh z44^h`{0Eb?g!+vF@m8w6TJd*Q-#9Q5?njWTApxxXIwOLSAdJd<7c{qyF_ zWc^Pz>7O`MQ1IC&K=0jCz5pViu^3^ov1+6dK?b%>OtTleMJ_L9s-a^2P}>-ZlbI!(>n0{Y7{AS&4HL3J8|3b84X`)Zm}+*sF8@ zY@A@h&!|d7w;RAp6$R$UE_<_+Gd}S^JI`1n+Z{$YQ8I~Hber%FV>)Wn79%|n6H{PkT&?dn=*`rO0%98tKXaFE~1A4<`E^pyPR$lw~as5|vue)dvJI0%M!TB;Cc z59SE&)9LrjvC1(8)~8^dNnkV@xW*L1&iXWU-i_$ZNajaGUImZWN2}9E(I(w3TQmOjSGf$WrZ^7OP#;;yH-};a%li5Z{aoH>fZ; zVpiBWjOErn{HC{&QqKc*;a}*0U~o3ttt70UL}yX{UtgntfZn?)`xrN%d(_`yjNR|= zI7;k;{*L5%hx{GeMn2*1$ghw5?`Hf{;-5b4p9n|OZ=ba%%?utY`HDdscm&R0UR9A# za%%*t-g^1qd2L?d)dC!|<-VtFvWfeSw#n`oZT_s^2+zb8s((a9Oogquu!xBIC7>&X zP@c=9$Rqdv6f?-@$tH1>$h<)=Y8hMQMYR&@boeN1l(5g^a=k2?AYe$9`{ecPETL+ zPjo~jpRy+rrG@1(as!-)&xpZ?5tH1{txAuKDlzPWF~dT=#fi=XcUhGHN}PURr0o;7 z8hKfqw^l5Q%iyF!>49?>S*3&r2p-ymT1dF0Tvr8zz1TbKNMUb-kAV=@d1htL1(sdo zvFsl|*1;F$=H6kKzj`~DYPxeY&rmow9F~mqt$dlq2zI}rn<#y!YML7s%|9I0m&_+R zsSCA;Oejol*p!sp#Pw;xW)YD8gYhTM&U=#!45m#tO}Siacj(c2VPaM!RTh?u8LL7; z79v~P8?I(Tegj6#J1~iM5R@6Mf6(S81nBNF{KppM{C8HtAPm^Yg1}(b#NP(IZ9;{h zs!LnSHQ$+4%vvD1Rw{$_k6a*6Ul1b0w5fTibqjllg<8G3W*t&F0&{3aHio+U9y0YB zEQzeDq^QEMC&5#c!_=`PF>e??Z;e+`gskja*y~Lnqb-W&fsL@TjNb23u6(+Z+sxly z!R>V9?^li9FQ)pxDuq>J+x@N+%3R5Nz8cZ{e!UOXT*bGY{NvT5_um>{1#l#l)0K2Q z{UFI4>i`R0-Os5AC?vqM542q+@Dh=vd@tP9eAW;~9M@%O*X|Q=X-U*&df> zF9nlG7BY#(Bkf#r1wjn6^{j?$=$j3A(kL}}ZGJZcQtSa|;<)BPj65T)6=H}6ZxxwZ z%uK;MoBuVo{BA)ih-33cqVh9mSbxSjAQ)kHwY{R(a4Wrf+#~fwGDbtV* zPAR+SsKnr~uQ6;xi<-|@z20ffTAt*p>{Mv3-!uPdqnS>GL^tbHNC)+RwSU zG6rC{Z14kZrQy0NTnY3NM%O)>(fhhs6eNfVo%UL&#Pxvf_FG?znrYcS&)(G$UZ>1TdYP>PB~}W6G~c%5c{2Er zSvam#`Hz``lSErxO{o;fVHa;1!dE_|*&DJ0+O$o{_SGAS`NV>D8+pDOc^esWvH!?g zO|uo*U}%-9+I1nj8P(ZNnZyy!1rDh)b+ev+*mj2AWdga9BA%-`6V-`!A%f!7@H#s) zj=yA49Pppmp=7UW_oaVgHTqa6ojV3^@Ey0?pcnX>?g8Q0%6hL!(F82o!E%&mi*6wN>hmyuzg z0G;$N=?Av$q`lhsK&VEB*>I#{Bi+F5GA3QUB!p;*aTFcj8^%PNYLzghH8<0?VT5(d z{j0`vWicKYWFLF%ERjFw57FNn!bth0mhtsT4T!iN_tvK*_LjfAf?2n zLWFT)doRDAmS-N;g4$xdCb)&q7XO^B{#ih76WKGtnCfhTnP^RL5QX7wQrlM$1_8F@m?VC$%-@8E&s0y){xVE;6Lf(kj0PNqVsZ*2epi@=Zs5_Z@( z6bNHiskS~52Z1TN1j0}y#PZlt!0V%(<_sk=7|4qv8sq76saBQ>Lm`SXXE1tCCX;@9 z()m!z=!8bPbh1ambkwmszGzB$oA6^*fghKPQVamk1f@LMJDv-ml#l;7Q;N-RK`A`> zMW=VU!4QFUBmA;(DQa|=B5gogf}a^**7^b*jqU?qHs%Ub#j>^Q>+eY2RRy*oy4J-7 z7jovDaZpi-alq5WIN)lK-DfzvT)GcdCwSCn$wk9Dd>-nty@NW3T0^X7@*M=g00!=mD)c5`#l8r#nZ;Yn8rZJZP>ld-S zsw=R_!^`Z9eJU5|l{5u&99GY!%N40k05yA2FdRS^CZ>r8PkKFo?qia|>_ z#D}chf1X_qcy@WhMk^mFU#`)gwVq#|DmC{sb2wbc6(<9~JaO^-@(FQ?)ddD$E`DhU z3waP>yaXkRrc5N7>6I*yXG}K8<)rqod+SG_$d$!-dif<1(IUyBpysRGBl`A7O13Z- zF`Qimdk8Tq#v&k*Ee<3c_24S_Ago|{;#`@6Dw`yj<^OCoZYwWVNJCbS;#w`Kip#jQ z*l>il1O6;-gklOlH~mw%fEdN;z$oT*mDYK4az-?O=Me(s%fa-pF$@CgwQc7-B<`~u zNCFa#bg-~Z0D5B>^F~4wfb!2q&?vi=BwZ@CTa-n4r6ggLdoH$$ErOn3Q}leN&pHqyAOJfN)eN<2HB9x3~N&1laF zdQ#0T^^zs+moY5l)Rch8uuvH>fpCChbE=vQ_$(gNgq~r7cQZ#gK(Y!>g#?U}z1Of_ z`i!wWjJ0c{Sz=4@yU;=_QH&V?WgX8ht|XQw%lu}}2lW!m;%^~un*-7Z#Yhpy=0{aZ z|H0EBT$m>xs8%8Ciq^S-&|-~aHo!k^w>D{0;jy?9DYLdc*exT*ioL;awIJ4lXU543 z!vnnAvRdke8ob_c#P+s12Asr8t&(<518rQFyrxa2YZaioS*U=H>fi?6>Ocn~ zHe#j2wm$8r%M!Xc_))}VZs9qP=dt@~rcAlQBK>kJ#{S~rPc@YMiDp&kg-o(}mEFgO ztU8x&q*x>q%su9HtK7xYw`5px&mVWs6E(Ti>~S`^9S(Rc4O`QD29njQFzEU47)Iev zhUaCCMi!lhAIluKb$_d{f|}hjC($bwjp6GS2EYu61C<8wm%R5Qh(P(jhRnerxfb5i zmkfpMK~?XGh!A>PxCev)sFLg)PR8L26*pZOZ|M|NwiwB6oq%j$8b7@ubMteXX#93e8IBD2Go6*-9JuG_HzjkHn_Hhn~Lvnpb(0I6|%&#E$T-34@VjRK$}4%I(H9wz=;51=ps0Bu_I`v}C8%S4F>!#^4Z)M1 zGC|C;`UErN`vhkaHCSvyyHWfS)?bp{lTA_{%^H3UZ#M@YBs_)(9EGCOa;1`AtY#E$ zJRO6K6|_(Xl!TPYW(KHZD-Ze_f`E(J;Y_xOa^&$y^NqXX4# z1W(BM&_t`H;kFJ>@`ECp-UKj#q6w$u*Vcg4(>1uw$J;9qH`=7Tlv5z7@gEXiBXTj4(hL%XF+B=*J)_kA#rQ^*IwFhv>QX}OB+UDVi9vIIpY;0qvf@C-e<`cu?uotG3yuCyDtwgFrl-DmE zDiz-C)V0&;q%Vr!s&=SyRz)7XIXMxE9_8wGHi4WwG^D>fhsWJ<tT zd!B}1=D7G)4vsVh4~>a;miC#>U=0|eiy67R)itY*)XUBEs4Ohr9K2ngW&PxS3LN+} zXDTxfH^vi$RVjYQS4bmUhDHWC7!P%rx!R?=@Mx=7(8h z3n>JLcIewU!;k6XBQ3M5&JMAV6nWyhZTKOn4yKz)tkQ5V%5X}np$;N<9}J4E6^1=S zIVLD&Qqy_=Ek8>tx5MiY#2Z?PsW#9}yKkrpgBT(&-}z9f%5q(Elf%8JG&Kw=DO`rG zP7b&G7oyS!0Hsjr)Sw6TNnH(<*xEF&2cc4XnEg)FB4iq%m3;*UxlVDbd6?sifIJ@* zl7LSK)B+;@X?_x(P4O&bn$VT!GeMo`PM9a#Vs;=NW~ZPW9>$EIY(k6I`E0?3+kJ)D zFQ-`&Lzd`zz}1-g-eINHGeX)Y1eXDCSV{0?MFMyFg7t3<9>=U*kB#KfkJ&Mp+Dfd& zh9aLAf(!_;38T>Ps>(3fkp3}^H4YnMHk?}t#ii@40PPpp@?Ohcfd5I1yH0~xN_BI+ zVTY7+v>xFucSjYGu~Yqm)}WZzeQvj%)d@l6K_51QdsLiJ>{d}k3HuyfluzqEe&4p7 zC$fp4GZITBPrRxi=f8${deFP!fe`7BaJXwYWGt)^cdr?#roXP02U$7eBK3v~!c|Sd z)ex6)Y6(|0M=W(%>rAVu$uph5z)q07*0Uh$*b@($3s>e$HHCObL%*YezmB!G=H71` ziWH1hbKmF3n){>Dn}4-8f82coONicw{i0(Qi5sIo;2!mn`fiLq%)JaN>@JU6qZ;K@ z+_KT`Gee*(tVmq^&Yp~xuKVNGY6HSyMo1u7^v_n+SoCowXFkrv`f7WCaGZo5sgbDcd9GK<4(4FjX#3Hvu~>uK_#Ypz$4HomN%e=>eiGyq^{VXgX3qcJ{^C~DD_j#v9@P~RJs6(%suEf_Vb@#Z zuZ8E6T-D-K6aJ)y4CO&fB1eBoR_V(ILdc~#u)i5?hKb2Xu2Esy@l&XjqJPIv@@IaD z>lIYGJ|f-2l@Qhn@heL2=?1lfDZUltB}96qsCz2f5)6C0?I+)Sm*`H40wKC1B6m-8 zGs6psZaY)M5N3uUx{juaRT-lD&f^f>80OIhM7Kl5;gJ(63I*8b;0B-OM0XO|=G;U# zB~t-wmTmLGE!dB&uc7Wr+QY%KKiQwJq6-S2(%OsHufLrN1z=m6BTAE)%MM?gZyKK( zPX8t>WIYu$ST&K<(_;&M6x3LuujE_m$JaTfSJt}`3kJ#vd36b^ zpu9K$&VKwiQ}_H{0199`0i2Ls05sE+t{#A)xe9o5VX&+zZc>5}DzrJcH3&;A@gRG| zY?{uR*d*a;C=ZdEvKi}Gl(xJELC}DEwi0*wu1w-@*tKxt{To>WR?B8C&AIa@Y`NJ!!NdMj6R~4DKciQY z20i4FZTs_aNha(aSKj2L&T>w_XrrI6FD&IL7&)@p#-paw9B@Vs7HbI$gemJx#u+9< z%;8Bzxo?d2iU0EWHUBsj9#8tmGl3BI*n&LQ^fJjY1u-)9N1L8q?9_>QJnw0uRC3+b zY^|jIL#7*$wI&D|HFwzFpsqsz5=_iZv75THm2hiaSweT{$`ZO$S0;5ASFL#a^vvXL z*Olnk8C~J>N4Sb<%<7pHkEleRH%7EwzUIxzn;;y2R24u2v1Xe?f#9?--f3S zTLius?$0#ZgBXDFCvfLWgGRihBogtaBA`Jg5J{z9mwrIY#WJDcS2oys-RKy58)l?` zr9uBXcn%P|GXug1z7o6DJRTS>AbysV*haL>uABp!{Xq|nBZD3qGur*m`<;Ux3KN5Z z0&B&fptGLQNUU1Vc!eG7nT62ZoQ7~zOPMzOQCwzMeQ=YeN@91+0q1tx8_aG6aD`(+ zJ8*1PSOln~a@hQ^E0UjVjzBrxYVv@Q3c?JefCyIm$)>QAQ3xMS=pFcAYEP~Pfe+Gr zawVluVu1U8z7rno)A!)TUR}WxQ)*0^;hAyo>lY4~a>dg`zi>bbk$&rN|DkZtkrv>< z!SFN-c6@lq)E`csk^{FF57K}DHe5|30yrVOrswka02=cCUoK(6ZjRpTCG@~Hm5s%| z%CUef9XZ_}g6{poFdvX$|By$5y+a-eriMHcoC-*AA|SzBK!SrqUY7pAkd(#s47>?8 z7|5B{lKH`%H2|NebwPgG-W;#>fP5#_2;>I@R6s71MF9D3ehMI;)GZmG0QrP&aVN=e zA&?&>>CP$L19Fsp1GyPZ0J#}a0J-cY0=bMF0=euUBJ~|w$^rR=o&ouGT>-i5B_=GZ zK1MkSz|Anj{ci5fc*6Zo?teqya6iHQu5f<ysFUdI72f<5f~-v|u7JvOb}cLp&qjMJ)4zr9S8P`Dz+uGdY2@0GREBoKU!S zpzYV_&ob{IOQMakP?q}mrxk|3n# zItAyVvrgc}aqDExG<|=4G#!JYNYH)lkzk8?FdHdZ8$k4dm!Qp4C7~nqZ7ewvdzLpB zx1OWt<8f=P;aJ>yfu3jM7GZuCfB~SJ5JHRf|`^7AY!PIHN0-VG^eZuImYb5Tck?K^i`wD^frOkdk57x=Y4g z6Ua!kYmq7Y^*mejO7+d~O7$PpPiK36I*mJaee~<>l|=St5`GpD5-?X*$lWq!e zg~@1*QDl34yhUi2J5?KRtpn6pUfg#2eqD=wJFNll<#F%>jmDBl{Vp}bW^3(LW&ySY zb`?+AGDQf;*lHIgA!f(=rGxuwl%y5yW_XFj>1mW{)tnyXXTM?KH@OnVpDVd@9jIx+kiGM;mc-mbx>pY% z;X!+87E)x?da#hfi1-HC7c$V|iRPC6T{#%XugUrr^2N7o2x^8O#5}Y5umyy-UMa@f z6Re`knXAQ?Q_mUv_&_?AjxoZWYzDe)};IG z6?i0GVB0GS#1gq(5N3I#6&5X=6+a>6X<)g$UV2KHjTbJMjZbS#FD#Gge6zvV#cX^} zUn&l=J6qz57d{&=d`4!&Xem%oKnsmri#YRSFbTLZ12%Yw(Dgq)imCHjMiEX*z(}YB zW~5g1u1_pbB&B1&NcVS1AmlPIexK=KEyi%%y*f{j&-0&srq}Mz*$eXHM;Nf*nQpT6 zk`w0X)-wp3^V}vUt4-q>BVRu``-He+May77;#4A|1q|q%kU#H0JXv@T&2mWK+`LFC z0Z=tA>yEH4*d`md#;wl!Mvb2v^Ua<&nts_VJ+qgzS{xzqtLdU+$sDq*^ng{_Ix&GL zTZen!-@zTwheiG9aeoxdL+`2B8uFp=_+J0`!SJ}(Ke9`)maRfXhis*)lWLWJ$lct} z=^m6m!Bz4k=~VgW%`v#ujPcSN-t4M)>3mW-G}m}v6)8fIRfMQ(EDXVs_cK@;kVdXc zEI%ndrpTl^K|@ozvN-MLsuAtgGt2vju-?2c+<%b!N5lOGxPO1RKfpc7QLX$RasL?i z?ucpPc=|9_*pAs%LDicr%x@=II|{Lsk$SOoIXJ@j%L^3E9nG6V@rN8&wKGUp^F%(> zRY6}o_Csh{3*&;tu61>0rapJv`ZSAvWG+v4mAg`i`aH@vYT4D99XJl4dd#wE_NT}f0b9q8oALPPHD$nwmJg^NBR?3r+H>wJy+3Ski7Aqk!ebA)b zatW-U<%MLqTI!ex{kGB57uD6^tvVx^jU}h*NGRZucR*n=uH+7=v)Xm1#>@eAf%9RF zRG4{HU{0zFtU$H__aLhM5K`82wFjO6CyNS@o?(p2Vi`1flZ~83iI4+J`l_5kJO-BZ zM0gA=X-KZbVTieGqbwFnGUN?>OQJxYCX}oIoWUb>!Yu79Ny#M{t50s zAMU@x{ojQ9Iqr{z`!93<1&E+E1QMxw7#3r`D2A1r zsLnKGY_tqp-X&W}cbJxPukTL>`%%UH6u#i05Er!F>|I8-&qz;lw+E|Rfizvex#s%K zFbu)*O(t6wNc3yrF(A=f!ec<99eUJ~!e|62xe#&(yd3UABJ=bIB(f+E0F9x`);c-o z7a`58c^4=9x=1r)Z*~{K<%TrJRX=sj=?c=w;je+5&@;8}WFyM7-LH>+4Wl&C14a&S z;a<*vk;a?3|9ZIJ!Mz0o@cvEQe?tPub3A~i%rxl{#*CTI2?(Ro%npHKxyS5}L7CiN_7U!LZ`p^r&%I>_xzBxNAL8D8 zWh-%4!JbxnU&w3;)65UDGGN-#0@HR|q*E~QG0Xzfez@?>QE;};oR*6AHz!r5hcTw;%^?fPaEP3q!>64(DaPzAH`vPu$Jv;{7{91SnxOqa4;O1%JN5D*Q+fwJl|6HdaMQaG&y;Y}yAbDlaWnVc$(twKl=n`!X`zbrikM}k1b1&YL+~;1r6Wr%MysvWaeR$bbaJOsB^KxE|G8n;n)p9z7nS}VG z?@kj`@zaG;ZvNRt8YVVb`y6zZrNuWV^F&!y&O?!yP#^FY$bcCw$l%`-$Ih?8y1$Ir zzvmvzt{Kg)7;V{B90UNOq)gsL`Zyua*j0hVw-=#OKN4eOj&sc`r~OX9yrPzDltqZZ zJI#$>~@gfpfwDh*%rvDB3Y@wsT6y6aY156`KzMcEr*ZVf^b6@W+?sH%7Z*XtE-hGC@ zct&$||G7ck-(TP_!SP*Th=CQf`J;x|IS%aWS6F~$y)+jz*;00xD}y6mJ!&6d)D4r- zD*?3+c2WCTHeQQ!^cJGgUO%CET_9%^^9t7e|72ck*|nVWEi}}Au7n7k;3`>dPS01eTyfQ$PU{)RjKVfCZz?Rcqb7`fV&T?n zlM!$s`Fo3*IqL6;jsYD0o)~pdoqIQ7?894873%p_;~zWVA3~958^fT(69X1wORV95 z_DWg0PB@_QYT14WKW}UlS0wuzY%9cVgnYndZ}EXTM-v6;xZOElWy!TYYQtg4-Q(v5 zuX%~J*0UAnlc3&b)1;Y@8E4lKR(v9N(*yS(o3UX|vUL>M;#UFe@6+xen*jHZk^6LnReP9yw&~YAk+auAg4T}>v|)d6;rYOIPwEQS zJ)tXHcTQKh?r~k=y2o^d>mJn=t~;wM+}1V(5X@$q0j|oPv(@hh5aZpeBKZ=!G5UKR z6+ZtDdhPkjDcuIq?TEj(c*YrjZ}E(W{k`$#X@76L`H;Ui-fX)QY`c!_!NXt7_5#nF z=lvF$A0MclZzQLh%^>=BcLx1v3t+JST!r_V4smPHU5Jh)j@}37*y8$PA0699M35+t z*4P;&O_~BOY`+hI^u)O08sD0YD$MmKvgh*?i?v(0+n6jU7GnkTeimtgKk{9rgPVsS zOS%3`qqg{8dx9Mh<>_Z#al(DQal-6Z^!tOf>(@uub@v738)tD0cQ?+G9$#4kcr!iR zswjA|{7?D6OPRu|)k>WhLrx0Zs@RD&S%qLSoVrNdvKFz)mOaHGVHh>8ZDS6Yw;%%L zhk`4f(gQC|m*SZiu$t}iKwwfD2MhE`zitbKHh6exFz+~n>vmkB(|SGwGX;+sFkk!q zd0=sRGHf=>zqKI-Fv$QL=5N-?T4JE$7RVeXSSrB}2BXo2Cw4PjDL$%1F9(&b{V*V|&bJ6(nH% zDE(F*ODTCm(Ojab7DH-7;9l!B{ zlZ7n!3kgGkUHVdXEmi@x!O#^&;+wq@iqg&ovqQ3PMEgm^@y#B{$C&I2H}S+0NjJ<4 zMAU@)SyMYK)*W+^^i74Kn_ehWXE1|GUz8~_-QH4?} ziI1K#+~!>M1?-3gv-b;mhO}R6w^ZC7{8lKd@EbGIGVq(Py=u%h>-6t)95<_!CiH1h z&Zs~WwG6Z~%`xYTF_usfmnq=gcp{(lq|uY~WM;UW^h8Ip`yD-t6`aXDVDA|P4)OJ& zMXzHt!JR_KIKzesuVY+7n+s-!*7kIr-1xgi?GbMe@Rl$c-Oli~(_xL~L6E{{Ya35? z>I(Il`7-qU3h2`h1_RvbJy)u^rMCLOsHjI}_*k>K(gu`HM);UxfJ}p6|=I zh&-bM#x&#GA^^`8pS{%}7f*W+0IdJwDQ@uula!;_(S<@niY8DI$%5EF$*ldBpNSY& zy*Xh=ZIsgCFeN1c_53{}mVa52s~w%&C2}?~o=(mjG&rB_hXZ({5cS{SKq zwo*bRQ6G8Wl~PH0D5*ZqkN+|Qf`bF=Tq`~k%X^|7hDFPY;dGbdK0UaPmffX z{w&i(P-BoU3Y3r^(wMHvBZGN@q!SAgB$2BiBErfyv`}R^_r^Sf9qXY)Y}=<;q)RFb z+@$;}Z_JZ3WXW<-Z#giBKC$Pg8A(u>v$K=lUMU}F&WwhDW?ZGIxQ|>@{t))-rQy+wk1D$#-&-0*z4+LO@-b+i4SpYM#PXqW zI;H|(5khn@2^S>@L_M$r#JQynWCrDbt0Ax|z`4SX#`N7JC)APaw!4(=9pThTJWRTy zWrn&2DYmjc${40~io~_oYi=o#@d-o)`&C&m#fx-mE9Q_DBZ3T-GYI8J%ShzUE7JHPpC?PV>8O4Wdt|6V$24&v_O;pk^2%g|Kj&xOpSuXu z9_(hzWgZwZbySf<$qLsFM;%u;QI45L6>9fONOwurPa{n6$erloY**-i`KVI3B{k07 zqQ4wW%=t#YVMuTf1(=|F+XJJ3n!CHv0Jz*0`aCe&CZ$pZ4wLms-XS?51Cmn)L1|-j z6IkIB_zsL_b@C4L`lj(gb|aGfkt}>jeS><7vtiuw9!A3D-Y(=#SvOXUvLg;8+(tM0 zRfWOtZUPIE^moaqPPjxr9oXg`{DsyC-I5YFav$d?#^lr-zA=t8E%AMACE8Rk4Z*5B zYFBSHL!8tGMmqrj0i8$|Wm5zUH?a|n5FgGNx9rfIgYF;Oy~EZ1u>sfjfDm2n+_|`k zp1OT|0|4d7^ys@!f+62u`(5cIm*_9b6&YzCfDECk z_`a8eec`)4|Aq9nhEItI1%V1ou1;c=_g0rWsBeH-Fk4|}YHsk}5}b7olY~{9EDvvO z$H@PAOsoY=M45~joX5mQfr&}QFi{KyLNgAgrOWfO%qrziHXg9_mVjiS$cx*JQ4UKa zi>AZJLrZ??DA)lQzx|y_GJV}KU_rra^pv%b*r^{h-wRADL{R<}-Y|aoanO`zX zDxsyit4+&N`+)cV$KAWf*O^}Rz5AxEt-U4d)m^qcGwv`VG*1q_f_O$kl-~I0WT-UR1&sytQ&s+GUCQ{JCNQ~5C zU`kBc>WX)9rd@~)7Wu2X^l`FLni7Jm6}`uq!1XO{ao|-6(7G_N9Wbya&Nb*}!_Fw> zTqFvHWs7&AuvWt0MYxvcG$1$k@M)V?D`#OpE8!##L}5utWenZMyr8R&%!}WK?f4yh zIm5X?KVyzf4G(C0uIRLc-HLOO@{Ga^8J6XSY^E57Ec+uv26EXk3j9sO)a8rfecZ>U zY*G3hUg}0weLI}XH-N&SdU?pa8gnkss|xTc=|imDpyvxaY|TvcunX_9I=3la{34lv z5s8rDBPRg^QFuyeT_srllX)j%s1jD5gpO`^m8wzTMU2R=wGYXdq;c2b_LXvozfHzy z4i(M8sWqC277c0PhHR@N#i`AZSuHdWFJ%~(7c;5|VXDf_#Y|@DVwxLFmk#u_Rc-yL z1~0AEm43O(Aj~;h(k?P5ZH%!8JfP@)9-trgZATpFK0-!I(~OGtABy>kZknCvMgqGL z*QNA!nZZ#6Emw5UOW4E;%EJp6u#39uy&%4>1}rEuJW`5N`m$SFs!e1~G@}D%C};5( zm~@m{S+|qx@qXuW*lT36PeJ83A01 z!(mH2zIm!qoHElD9OfwGiq|+G)s3CpE^N{o=Q ze7>Ybd?dcrSW0m!(7{5#AHrBq-W7fk!)LIe)>Rip*xSRJ4SN^(OV0G~6m{b37V=Z# zKtdmXMFsC#Zd3P%bNnKJj71m!?e_%1=ca03XBS_FOjWcO{HtMNo5d-#v7)p#T+Zx z{!dyUtea!Xd{82q$-)uCv*Ox8}$nU2qQeJyzI5zW^b0 zZyGkE*RDue3^a#Hvx6gbO9uL|C%GSX5t7Of>gjMKUznhx9})>Y{{#XojI3&N=*zPYcvO zD&i50^dD?)eZKrDxYxXY zWkvOC!M}dMy%wjAB`7j!_%m7iv$;~?4KAno{DkE+cVt$t`=^=e`n5DwkY3|ucZ=%d zvP|0{&^Whrl~Q$*i=eDPY`*@KdumtD@00Z@>RNvD8k@g4-=wn6>yNIa)t?>yPr0l`%Jq}Rxt1Fk7#q3&fdg8wT;suAj~sl%t6u-Q`+{I_ zaA$Ak59KGutJS`~Ay#vVHE3uDX8Q09Wh84_DY)D`5^{_7GWg4->wQ(!Y4*V1K zI?6`h61e^o>8G|!h6=WZ8@hmrPdA1e1M!{2q0;w0Xq$^hkl4f^8|4HV3HOlZ&hZ{k zQHRvPo3d%j<-F6KB++#e0!rq?9DAc{$&2$+W8pce+x!;BNJlFsWGPG+`AQiVPUwk_ zIIkibgSur^>eD=h2mP^|YlGXS`fZu1mioV~7N$`6HtMdLKJpOomSNt3>tfL8mlnV< z0A(e5ohGx&T?QbNw`HFkR!(X4AN+BGJn(wCGK4XF{}W|)mI5=-bl63c2Jznh7i4Z` zEBt~AaAaPZOGPL7NA**@HqQ)9Yxf$zDya|SPhX1;(`QBgAkgt>z2>yNmVv)lxOb98sS0pBEqA(+ z&rT;6Vu>yO9}`49D11mzk5&eSR)RX5cn~R0qA%%8haN9(kA=;-J!;ilWw7bu=TY?(`|@ zMMri-O&PnPUN^+IewH*6%HwN{iIp($o(+dpHIb5!?lFwB( z73V7B1KjugXp|49UJ3_}ky@S2{Z4#FmaB~M#*kpHBt-O(AUG+HGN3MJgGLDius&xT zmyzn`Qj#$jY`nm1us-faczrOQ09ss?gLmX5bN3>socAB?bK6h2A`7&WLM~$JM$7VS z8t5IW>xO$>(<@kTLWm8H39;4LNdiv| z*$H5o=Q}x~m+UuA)sGR%!DnLI1Edb24VT91#=6(XpujwNxI|M@bXf6aehGy@_!=Ha?lb{ViqYU((^Lk>7eS_8q1Hhp%P*#u>8 zf2JfZ7>9DeNVyJ5ZYVA2?AJsjuV5`%QE zOV4?4h&@AK9R&3IzCM?C4I=ctr}t zBhA1Q`p$av6&eee88nU+h&#pIWn*^IY7=I6in$-mpG}xu44_uTpC3s?$wKl`0~XyW zm97S^cSp9w1P?0W)d-hcW&W*7p?Rasp#RXd~K;2cXlB~BLgeV?5g zJExyklkpob@Zn3`P`hn)TL&+QIT`!@G7GF{L>7m*135!5Y_N)E>SWNi_xfihe^XWRVQKjHV#B%2c zr|Tn9jC3Pw`Dml68}k}?fchJQ+MPt1D-eJhG#xSf58*#mcN5AJXsnB+;l`f4+~W z2a39Q2ajE@o{xuOBPH&mKN`d*dvr$yBSKHU&{Je1GV;_fg0s1PEM++Kr$M*RWau-=!n^J`M8+s}{T}p2={N+P1z#Nss|WKB zH}U{t#08I7Ymca}@3om=`c!umd$gq(+u%NMgZVx}DNw@(g$k6@HC$C~#|JS5{*_gK zbGEvE#xt(O-r=BzR#+|TqwRAp==h(LwyeJPIal;!HM&qn+FmA7h|ibHvN(htg{KFGsN5Qt>%4aP+5uwB20U`dEk)|rTT*)5Y7$uec-?)=! zlXZ;>ox(V1QoJ6l5H(Mr$N#<1W@dMGh$!c6yhJVt>p=xJp5TcXn-`6ByA= zXhA=-oYYLA{0{w0ynlkf9GR%v1;Y3)z{ihL^I-m^EYK-kjkpe&z7}k4zdc#o54Mz( z!^ki02QuBxm$NGYGCe-jDqVvoJOUd)0WjJe7XZ z5nszU@**OSjsUHy>&&bSjla)NY@T8%(y9~*!SnDMp6_)n5KjWTW}@0woYIqYk9eu< z{j8qn;&$ySsi4NsfhMb}d;$4)K_76#HS&y4bJF+tB>qgMH^6_% zCR5lI&&DEiHr136mUEUuo)=%|kU>PrJRG?RMR|#mDN`2Hm7P_3Btg3-$7y zXg44I-hYI4)3nE8##P(-XUU74I!0cQU1##jcO)+v*5#p#W@rHHjC7ZMH9DbV5PBu( z7)mbcG2|o;;Ydj)}!9w zyOlysHq{h083Bk<;V?80ZhkYD-o=MnYH%fqLO1xF zBNwf$@ii9iDfvyS+&7Y}bAkN%qp|?@nm>(tN4W$Dy0N%sq+M2Ep)^WbxxCJX?3W}2 zyr^1pq6!HRU6G&~MNnah_5N1j7s*B`&PGtOM97~-_K5RVAc)b6QgwrGD`oU6l&ZKH zUCqjE9g-y6*e4sNSYUJ&_#HYOe18r3XWij;qnyQ^4hg_p6c~gD{D2|Rjgt8%vjx-w zkliY!jTk=0O$fB$F3?mlL62OmrQio+0>F-z@Cnox(|HKm%;-7!N~KupDffztL~}w4 zF6vb?Gn}hP*wb;aBP9fs6KkUM3>S%j&>oc(t)@%&zH?l(b8>qXsKyGKrowHIDI;Cv zMjEfHETwG)n2}7AS+buI(V}2k3y3lEM2tArZOu>HIF?=AXkOR;7&WtXi5G(%jA3{R z4-@Ju&Hahyo5pR0&Z|)LM+V~+ya5dT({|q6hIihEXHtFD3UcK}0=SD!ty!TpEA)c~ zWbP)wE9+&zrPi{S)8T2V0h#aV7fY+*>W|!W4}2v?IdKDuq%!q%`U&f;XK|JkUtnT|x)6F1c<3Q878y zu zMjz{0`q;45HXUq}B7=xHr_5h(YQw2tn>}}}&i_|&$vyuQtMg866Eq{}ETzU9P4Kc( zGr~1+Aj7Jp(#!mQ5tiz?k3%Boykd7y zCccACz0a6UI9vAlL3Qw6?YB9-0WtJMmukex=c}E%srj@(ab=;(oU+ z#-WQ5cgHl;hpX#I_rGS}+R+$rZW;NX*jTWgHXefcd~QU)*eNZXv+h#q`2G&Iv7^vx zY(4gVSa+~0*@d74xwd8b&WFJlgX`upl$m?L%5IL@h-IYCvmzKcW=Eu*V11GS+7+6? zF`}RFE9+`{tUsi|yGVWAz_iNKT(Wr-Z#&Z&81tZo6KcV(=bIm^_nF66HO-yN#$-!w zUHF3Bz1palCs@`(8;P}9(Z+<9WGd8HRDDfPMsrO`C$oc)9W9>>fsKeap>dNv#g~T| z0t<%E%*qu2wVSBSYy-G9PzQ@aH8jvfW3 z6hKK6{G7$j2>xQVirBC8fz$oocOd}CPa^=B--a3Dqe1u5;R;4_b%!1BkT14Tdz#z6 zotxUhNFEY})XSn82h^hm42v=5YO;^G78C$gLPnIr08=TnQh$PPdSzb0iH47HQAT|> z^e6RX<_p8R^gM^S!fRp3W8DUSZga=w+-oCY(Ce}W(u@4daxQJ3khvSv(H1q-n)tj6 zFP4wwU>-NV8!<|(xk(HM_(}7}`r8M*^1&9J?<>xXH=anWYW2h66VBA;?hD7a+NNsG zsye`AdSG%0++pOlYMO@zCEWowXWf;xfWSNq*}V- z&7J!RC9O$aax+TRr7qJ#{&4~gE@yTd;J{}Qv;5Oie10mntPXJSjAAmKk%?g2w~aoT zo%*u5XZBhx5lOK)uGpZD7ZfiWPCQ_gcsOoZ2dN{H@fx1zrSt$Tv*fg z_4C0_&TQDUer#|u>qpqR*$fnZ&iY9gWWfbZ|DyGSZGn8zzleDW&^BIzq0FtH!>@Gx zxP8&BALy2>Ua$5L>FQ}i;a88$iaCkc-C-SV4CQk$I`i^dO!+jHvkvQ#@@Yt82FPvf z2tF(R8W9m;IN&I7!26=EjsR{&yclDu>rofa;XVsfKs^_XepF(hf&%(f4lb&N5-*&p zKVeswiFBF~%$S6yQ&!Vc{jD+{R3T1T?gJuj>q~ByJiA-*OcM;A#R$RX2mp~KfV-=X z5+{M}1O9G|UJ8}?3l!s6df|xsi^S-+*e=~q$@#;)B7h`Cz$b+Th?AR0!mMpzWld+s zUEmfMGuTh=E5vF=CL;i%#|$p!gvAp{#BdX-5JSj;!lVH}Oe7YP(TL}oi6W{hSo8s>B0uk+qZV*iX-99Ed^8{^;OXZOXPhmFR?qLY+ z4E11hY^WC%+8ABLjs(g2h~k)L@W*I$qtnrMNW1ULYWEs9sMsh3znzcSCg3BAqG)p# z5%)!(P`xyq2^~WxEn8}s+%-NJEvrU8+tW6;0L-whTc7~4E6&@tdWw2(b_=xr>`7iG z94Rm&KI7bI5r!?Sp2p>1r%5@t0M=q}v&=dK&_(i6Qas8kG9ia#|0;h5UkNh~v%|C7 z+-3jB3?l(t))cM^Fqg{Jc(uGrMe)j>=$Fyzi;+c~Dd4Rq`ZfDvMA&a%gsp(k^{vO{An)L%_QC_t_rLD{M*^hI>pg@O_kjY(t9 zOG7@uG!CEk;m`Gl{r3-sliF###yQ{^^lMyD^lQA=?ZNOh&aG2_xW>mgw3<>1tybxW z5q%FszHz*%R#5kai0*xyx-;VB>QztwbjewT;4`}K&fs+3{IQp8`{MZdihXl&N9;}m z)%P(wOusrdo^TQab~)xDME7;6Ccl1kxuvJIPE}SRO&<^>PcvLV&O4}eW2jLx`ezZ& z@r{_`y8PC5qTL1&T_Z1}t$tmyb zpV1-xW2gbWTq=u%gBC$eivoW9nQ+gs`W^<1jvXj~kWk&hMt~$3k)5O$GLeUQ^MP01 zfpy1m!^!Z8)4|N}Q|S37qsD=h@hRG1+r$n`S3KFiE%@JtiSab8cxz}nI#0Bf0gA0< z{zXn1rLI(C;xpPH^cqMBvzQF4O7BB1L&ARvJkyVSJS3rCQc4uQh~~XebXrgqi5rjW z#4zKst>yf1y+J}mTy%|BQDupRo{Vnf40wCB1YaI%3={87)Inp{bmI--{^`b};lAm{ z8v}GMg4z|$Esni~@=8!OT+*VX5jRpf@m2dcOX3*L46{p0NC&R<1gAW4<+Y#IE zDlt!_UMf~;NMaHu9(+U#!uEmfv~Z`_P(k~C3hd8GGIG)e{Cd!#DrNlc{}DC&X!GvB z6k|y`cDIE$#^hpbC*eA}zEfz?Hr9(sizH}703L`w@@d4(Bx1&czRxYGgn;PKdLKN;2&V}K|VYBS}wt!!#(Y3?^`ytBZAcYy>Z1BUsHKQ2OzUcqm8E9HjOU%AKh=mI65Wyy6 z=U7p4yLMe>We1+#4Q`_RSF zWf2}y;iLJNqfc=Qx40A{;g?J#Tp5A>Ob}ci;V`Phv!c=XHE7&eg2IM$203L2r^doP zGy{#BY+?)3)bkV8GwR}`le?Iv?E=TiXofqagYS$PhtlXzMzic04q(D&Us-<))1{u` z1gpc-TntXs_b3tDQGEOK<9u^tgxGDKSI2PbInfe65{nWYSdb`rBo-yR5heIF%_?{~ z@K?YG4P?Pv2l5D~J`ue32~&!3%^CCf!`w5@_~mzquva|gRmDPin#(hCP8p73;D81` zXz*xo>MSaR`=-J-9u40Z?meo+3DeWs=VxlM&*zA%7**3g-`aup8qy>Di}s28qtZ*^ zKG^uN2yq&6_AC@%7X>~;`^Q9m&oEazlC}>-?M#CEXu4)2?OF_ZM=>3T*VN+E%agizbRuw*g>KaO=a@vFoMB|EW zlvdf*LC(o=?_;bITMY|46NxCsED1cTX_wfm7#den6Ol-n1S<+hZH^60lOCrKdtW8; zUXqg8hgh1^GosAKT%9uBh?CkB;)A08xCpjM%z4h#js&_IC_@9vRUq>riRS`csE$)U zs1GragP=N^)#*`e>_xXxeTc6E{(o&aP)ETM3{b73d^i!-6GaFmsm7)Cr$s7zMHIDg zVwx++KWp}K7KyI*5;Vu-VNf@Y#DTCKOI^Z@IT?ojM8KI*;}ny!7vl~aZ9Ei)Scg~@ z-81g-8%`2FM6jf`fNW=E>WoP8@|SuK{YebCoE_MB{BZ6D-;4XX0~<16+xD>+m)5AQ zEK{_pYMNn9uB(s<0=-n(Ga7y^FaVn-!--%{%7C$@P;(B!ESs}N9X5cg@|jk$vt`9n z=Dw~S82k54JsoquCic}F(XAiJv}zIEl3rjO1i2#SzAcVe)0?GNO@D@`1f7N1!rTcJ zcY+Re9a~l$#_e&nX}4GF$M`s8>ypT!yBX?#)=+gRhciGXa_C+S6>YHzd(H}b;F(e+ zaV?BCUdu{yy>V2`U=NyQ_*zWqAguI+86hr7KEGe@fbY1Tk0B%V1ba^M6nN+L?nUh^ zXB6rO`F~G12+BNGtA`@d57uqJ_<=gRU4LR(CLfH0yT$n{j(>#@iub;Xwxmu!2%2Sd zk4tJt^jnw;!a6`J}D}BUK#UWi2INnc% z$Ppq&=YbpAxV!n_VL=EEH~};Co}CMVq!I1;QPb*HvlS><@&zyYf&%y|zJ^Nz6TF*) zF!2=0v5Bpv5D)<137AYM8aWEZPMP$G|J9ah#IY)i6U#MfUPL-(yOQm`=KDUUzRPJp zc)>>%P2_tihr89wZUCxYtka_i+?)=uR>J$jH?)N@c9;~#+L2t&_ATM4^Gz~)Q(N60MO2pVoyhGQJme<%C;`u9X-nwBd7{=IC}K?wli^1ZvQ|I|X!&?z_*L z%7hu)z`1J*BCsXd4WnmZlZ>lsWWkOXW%B@fKd}}_!0TfS&`C=bk5o4#uU8*pdp?f)h>HCiWsu` z+35b4Tp|Ib3OMNU1TZP!b^!J9W9(`7=e9=aXi~(%HF2ZCFANDMG#6$fzcR|OFFD6d za&ghwF%`8pjsBAcL6EGN9O?qeV4K<%vuQsyRznAd03I=jIiVsR=ACQ*5%_8uRR*Eoqu#&ZqE?p(%r8v_tPahE1&kE;^`?h zO=Fi9#>c0yv&dlC`^B)9#`Zt4-BkGxnPYS!iR?d)K358UOZ)ki9n`mY^4+9>Z)>ZQES5%xER{NDK6LvA&%p!qv%Ag9rJO%B=?^y~9%Iao(B zF(WAaU$k-T3ND%et&fn%|0gHjmydoor(>&m+=$}c1N(C&*n0FK^f0U9_7Xax`TMzN zrt0?z`c}xqK#7D=9m|%a!l8Ei$7CNJpLrgVilw z>%4(5Mg@S@2A;PD$GLfL%DLBIWWND8PUPK)xiv|PelJG+d5u`%(_f1bbA&c;2kPBe zGdS7+hrrSps>;6ycHR)^J$7zA1S2u*ihk_Nn4%tQ9;1+PW|u=!A*W=hAtz=UL+oXQ z$`B2J;IfUC_Z62Xz3b0UReJ^yR#*xHY8s*+ovdR3x|MKjXd)f5C<=i0Cxe5}4arV6 z#H0D_i0f6q3k}n=BfK=79qIUUcu00KQethJIqqVcIb^Dt8(MhU*Vz$Ap>}qpErklT z_7)a9EL77nDYbnJ=T;{2=fBtl3F9Fx%M=gR@sJLKwe3#F!A9%M$}R_6$on0uX7IfJ zAqmO9vpm0u82MpJFkzBc>Zeo8aG=215sV~=9YR$Q%3<{wwk`kb)99se)ZILqupwcp zF}ik#!__YVhu0?<@il?Nc7)Xs6=jv7DL=>#H1(fFQ^8FJ2}WfYJ{gaHrSiUt3`m8XB zgegs2`CgL}8@Z}1wfOp_6dU3zo-~h_r1EEbFGmqQ0N&zhEz!*EQSNP~ohyiOa&0ulm=qh;{KP_EO zvI9=HmT%Osw`r*v5l6>}FymMhPZhf2pVxUtU%)1hn#3iV2(HG`vsh@o@CObky^H(i_VS@Pb)H z+`%1@;hoP`@Sj7PC`e`2KWFp=TsH)CEJ#~=f=1T`{P`k#ir~{|{tiH50+&r@=L0SP zqR8IDyY$a{g3p*BlO#TzBOcc3^6#JHJtuv!)&PI9KXwO3;mIpU$A{UxfXvb2sIbOV ze|PNe#3%iBuTco+N4a-KRTkKU59`=n0xpBCCPqJZ z4!P($ipIF%o_0S%)$OJ`$C zfVGc_K+EZO+J9XH$jbtphwUW|V@NNClJGVq?(E zdVJobCpVKVn~6}Mpwp0yVve*^jAG)Rz>x@(QT$xMb5_}g>>y=TG@#@_SWPf}#;5BF z_omCjwlkQ8>>13q9m_d%w>VR^2&S-V>TXOjvVqX>g3eBcd3%dCuwxkxN3X{c=hDIn zfdRVo5Q^V}wdWu~IXY)Ov9db6T4b1ST4$IRah(fJ8vb3ya(7QaQIy8SQP?Jp36U&)P8w6&EdnFL zq!azB^rexTsGzY*<9BnnvO&PH-*$<80xEt(5Ig48Q4rgno%0rX*(0StT+~Wq#vao- zQ<-4NMXaNvZF{;Mk#7(rpv!gP4#T?k?**HRTepzn0gZM|Y3+Dk#4zobO`$s|iK$I0 zvw*@m)}X^4@5VWna2HGH^0-?Tpl zK@*ZpcgrBiqV6m{Qd9r|eudz3T4E*8FwTS@LfYfr!gCE{1#fE%;u1iFLmFm*tXK8x zjWPHJPbIsvVT}>v#=CqG%-0OeyUiB4zPBKv-!03K8BU_Ad<&lOgG!XmAtiQWGlEB% zQZN$rn4aUn8tz7y@<#>o?giv`M?d0sa=W0SVSe?$bDflFF!4L#FQjHClrV=2&(fDl z%e`B0npOK}+40lN9Lj7kr)<&dA>@ot3r?83z#t20$QpobXyU zLYz8aOAp%y*_@k3NT4mCp>n@%J~_R{g7pinUuJFX71WLLmRMay2~!}w>a)=UE-;OK zC0!B2Q4B{VJfJJN%*xRTn;=&kBBu`K7w**roxS@+Dqu6lt|n8L7p}$$5^FbH+$b6? zenq<{##W1+tRqUx%GsB;_LX8NuglpjmtWh zwCvx{=y_IJnKO#;T;y$3N5ojnm3y_AF}Au(VnD95399OLhFP>tuOx;j+#Ex*IFcrP z_%^Nk-=lm(2a;89Z{3egoOkHuAToDCs_g{gB{S;ixHyzI`OS|Tv-BoEY1Pro28pkZF2gsgjn)7kqR-%BL|jH{~5 z$DmPVZ>5*2HeR3}iEf$lg!WGG3LxXX%dx-NTl-E;7@Q=n;VM-jEk0>i!=$IP?b((B zC^{3HNWaO%W;||jqJfQLP?1KC>X@n$My$s32RP9%G4ngk)vOh^m3 z+1O39lL<09J1)O_s@3ZDuE&dPBL`BA)}m!RDBECnhFhb+nJ1 zhOA1wpWB~XpD^2#?Hjf^B${}%-@!KXXa?-U8h%E!s!&EZtb0JK!0vV+xIG#I!oJ-W zv{_LQg}|0-*9JqUT}w7d;~fbVJk+_IwgQ~ABf(Ru@kUUi!7i2{rtxx1OaF`P3W?c% z)+@6EQfAo;Wt7>a31#%ixh>C`3A3G`lg8F*=6Mc!(R{%k?RFBH84QUdzd8EFBw3C& z*qHTuo%4NobF(_9QRWNMIc-nctaCao64R3%P|#*p^H+w+QBxd8!9rsXcD7wRE!YSL z4l+7t3z2LjMLbj;-y?IW%Mi(Zhi0I+XPG}tkn&>K8?UQcjkhG)v<&+w)u zX8rS|N{uCso-a-k)tWkZKCJKp1nfDLDo1A~&B3#xH^;5d`j1@r@L1veq>Q^I89$>N z$w;HM7W&gg)Qx2Y4y7Ug7kEnOry`Z1wcTO`je!@&JK^mh^IrAgB z#fhDcDWYiV)}+incYbGmmk;qRiB!O8yjx-aF&VjaCk0g1Z$`00iYA+dQl!BXTeYZB zFxs;R`ARDxqs)?C`0=EDX@OS@2MOY8i zY5`s0yb59-Ij47Kx}xS>49AjHUpZ(uL}9zhau$RG%N@_Qq=P;EW*S!Z|ayo--yA@IoKg#{0RGa8y8a0~MmfFd{Wg_e11o~snl{55Zx zE;94>ofLsx3<3wiTLD2q@pCUT832V-#elE{VU1bd(p?xxb{%c(4CW0U*IM9VXO}Ps zS-p*&X~@}m`(}M-5?~gs*f*EcZ{+e=+lj?a@RAhjlOwDQb~ucJJ#w@{|2%9iofr#Y zwTE-Rwb$hLZ|!y7FDI`;#!c87>xWm!s)wq+$NSD$3*1|XV%Q{|IOFZ{f-yWsKvOed z5{h7S&3?YF&_BH{>=*Me*NyX@9pBHltjY#$>6dxl`Nm=e=j`*o;@p0cS*qOpe(XAO zncZioEG>lKeI^aNmx`qiF-CfL&hFIx8s+HZB&nCfe7%rH06MLPE6Qjlx&+QVhP#p}h4L;RpK z8%7T2#}fym+ZzX*h1^Q{8+il+j?a`rZlIP6=C}zc+zGh#!qlxde-Ir;1)32q)1kw# zXzhS{0$Sc#cjbU{)?Gf3an_kA!00}P7KOq&mN@G!9Y~#ZMTFzcoOL2HvAP4WI`6Do z=d&c+5%!@6ba)NdQmeD>I>Q{Z-IaINZLy}^C%8kY!J337n{jCha={67v0|}JU5GxX zsBC3>b*r6hUz)@wm5o&pjA3j-@>YtGqX!v23iVO)ML}$1=uFFsD2@l_vqecYwFV84mju5%t7benmy=tdUFR;GeE=40HAWinE@7n zw>h>v@GQ}-4k$Ea2JlCltKP3A%Rb*VfT#CU`4{=M%#RhndXm?rgL4`iMMOF z_ix<-k8ztEL?!o@IPX;j#2m}mr_7Q-g7N8woP+Q{ZyPX*Z?+_eBM6FP9233I*h1oh zl1+p-O<_qDbDBLMINLV= zQxd+EI;Yg;+6sNrf3bp+W?y{5e{mLd%f2}7zd#d9R4#26P(@Hze%RRq>?kj|ijLy; zweu2a7WF_TOur*OakDw}C}BOY@3Ks3fJHTm(O+qEawyrHFevdQkuDqq zOlB*#?Fd3gJ;7ZG)A45~%go->RUsiM#%Xg6>PnpS6QZDqabjl8UeFkk$Mj=&0}7faGZ@SafMxIpl43 z-;x<+fE$N(c6yfV-%>h?&mPlGi4)Xo19h??gniy#yQPe3*lX=B+&<&QWa;WlcyXEq zt2H^(^-qFHuL6_WC1=9s-X=LypGnd#$(fX#yC1&C z86_uy+Or9>EpM*xR=z}^Gr{ubvi~7-22kA^x6=r!z8Uv?z$LjbDo!zxlLgMqOeIlTUHuvr4R;ZG2|b22Lt@THkW5_kt?) zSJzUIJ<7ghf8#Fp1rpI2jknj2SE;pW5+H00*6WnAE3o5IamU<&?K&n0kwI*g)KWBW zFmgMlru@)QWhOr~iYJRGeYudy51o6;e~%0*05D`vnj$)nMO!*Fu~qUE^=39(IJi(b za-`O`%~r2%wk-c|LFs{aPiwPP3j1vHH12%l)<|Eb5e8_DfSvIM$R&azWxJhrSFbmz z04lPP;iB$atpHKkmZmqX-+HCG=6WmR*M=!NPd-mA`=8-wTF?dAP!1e{{6z4P2DGAd znIX^b)|Y~gc0N)^*%Rrlhnkt>iA2XZ=Jj6@6DBo&kG`}a9i;K zE_YG9#lyIMT{cu1X{7qFyHNl<(TM?xDw7KrLlRZ&E3OWRZU23td|a<$9;2lJn~$;Q zXgSjdX>|thYPM->Ic`hoVCdY{U1_PCZ&P6I$yR zYQ0CmI#qKT!D(t^cd6BP>3P0}`HJVc8YjGYo{_B!?O>^fy_ok?wfcwz!2aBFt+7*^ zja@#Q$?tIw&sX!L?|v&^PJy|*pmvk2Y1UBC+b;R5hP!>9&@(=L;1XiNQc_eg3G|9U zz#WybTC0nfJWAOhzA@Gd9m~x)2?prj?T%fz?_b9I2zo4Zvb!cRK>3K_$zh0=taOYnhDAy5>O0y-LPr8=4z? zhm6geamMBwH3Q+yFk`~kLiBq%GWLWG zF5Ff=vc{`v#@#|eurm3pjC|vEfI-?0mgezW7(R;j*K+v3lZ&q2>F}X^z?K1Iv~d-k zH-;lR`ZhRjpFhwbN&l;j!@z(?Yqo>Ykx^?j`Z{oS9%jsy9xZEPfQ{Egw4sD_I24!%s$Fgs4Qqk?S$dM+ zr)WZLfa_^x8sNl+HvZYvpLaS#ZCWkiBhDX7_(-}?OZZsz2_M;nDB+{RAC%}ZP6X`I zKWYX_SWXbQej`;dqxzW~1LRiYG#?+sW*RpIQwz@fYIs&@Edl#Lm-x`89)0xX=sWKm;aWy#2q(l?2b5e7 zdi%Jxy-B5V7Gl}=>!Ua*@t7cMGHGLP5qGw?%x=x&4(s0*cfhUN#~p63%;JvVeG9l_ zSHZ?nq#VbSU}j0!w!DgGHxqZ;w?_Ng)L!{a5)^U_0~L&H^uO6ElNjr1QdLX zJb*8vvm*I9!cmM~M|Q~ygLVlXua6}O9&fh~TI9?XfJn3ra%SQZjx&l&HDI&N7CZOs zi(Hq-7((RIcM;cTN;JHf0TrU_+(i+5+9b@4bTs5YOj+vUSjtjwcbJKuhi^5}R@PC* zY~vn%;^pYLC$m^-xXK+7UTL`VQ9vE3nt|udB{iRt8;c*-$8nWHi)g65Y(@xUl06NX z=Md=5yCu11+O5nZ^fjbpoaQ17{l>=P5idn5TpJU3Rw}4sddjXE>GS@>K#Y90UA-!s6CH(1kHRQ-bmSJ4fpl z0e3gR+a`y?`{hQ#R5HjW+jiQ|8bP{?M~!IUGmd8Nu-kN%Ax*D%lPz)xgX)a^X}t`< z@!;Eo7)NxBo1)Rvqk<+uvbe`uc+-rxe@Fac4l7EP=d4UL!70PE<2Ca2;tlhEUk)jLdED+*FNGPbl785Q}X{6(Y`n`RK+e}BF+R>v!q{faSqRmcE&l;&aId7sp(o2T!w5OYV`-XIiXU7 zH9}7hYL&zuq>lll*!m+jszr)#c#&EyH>z^)b7hr1=d>r_eb)8{m=gN9;oG*!9QSpK zEjEO{tSEa%SB;T#)G1}cH+p7Q;RMs`h2gR(P~WjhTzNOI&vwb`E8?*yoG?2PH|1$m zvJsh8cqUH>8EwyUPat8C@}W6kbsyaXt&HLYB(XNj`+?9MN%&w`Gq)M-!3nsx*f^6- z3s((95$D=|P_e`hLJfG|E2y-*?PQ-Pw>)9Yqh<`o5*L;J8S50C`m5uCQ4OiQ8P+JJ z>^@k(s^n_QxaOcAbIpm4(3}|^4#G+}MRRzu@K4#@Fa8Jl`piSdE!ibC>}F%AtdE+I z68^iMD5K4&`nRK<305`tuVdEmuG{KA9uL8I7U;=%2!^}qc;LDdVU0B5wWsVXT~G8z z-L`Cor|40A)XHO7w96%v+in+N2%gTwI+1`1L5!WZMYIwVAFgThUj?ncw7xKv2DSPj z*!7{XFUe0n8$Pk^D#gDooZhNBllrZ=(Y~j}*uG_Vw!d5VmL^vba{Zn2fUTuXJ4TNG zr?rW-xCtH4i!U4pIj;y1>uD3bT~Xw7nO9tp-k<4_0b1&(Q@TzV|Y)_3#SSHtobKb(frDf{mMTl zaFb-dvi9FEPMvqM4PwcA(PO@VNfq-F2o{s~{G3u$BJ)e(NctBK8fiyL1b<2jerIxp z>u|JZy0Hu0$;&-U>o|NczqgS`uIzx0X?Ym=K%x8D=qPAZ#2ftUp^##u=4v(W4Lpznj5+K@flPYdhG2&bjv) z%J@sWhe780F1{_H$q>gP5j-57DNY+Ta-KKGoeqv98{^V2p|$0r9r?~sBSyR;CXV6g ztX1Uv_p~SAb8X6=E!GFcIS@wUh*ZxrbeF>$)cr1Z|N1UTTZ^az}IbwJA-oIc4Sd z-)@V(R#d@!eZU>sVtoeO_hp9+O0t(CL*S9&Qn|rxC0c_)@n(!NqsWl`xtv`d zrh~*9(^?rVdN{glO$8}>tW%p#d}TofD|y*a=_+Ltv5^52k#B%$qq$-aU{Xj`0)(sO z1WbyYV*WsbtMwc-2Bb+2U(2p#NVnAggbjbNeB1YrygjOXnl5{F!O zD;$=NgJ$E+XqE^EjBR%;9PoKD{9Y~CfTzIgy_SrXz%#861xf<)HP{~a)-ySRKAq4O z0S+l_yhw;EoHqd(VR+bg*mQ$JMewR%GTw?mOOnWh0kSh14o#~Vx6Q+x0vmW2V?aFO zkG43y5x1)(%ON{Awi88#>1Dn|0Y?uA`?!kmg|MIt3AN2g3eccVL|H$U9i?bdAdP^6 zniJUd5~fro_(+d6`FBxGRfXbrC??dqu|c9p9UBA&EzNWPq%~j6HqRwD7U>W-NAn}} zvF%$r8G$zaw;82t`wJV#%LqH zadFs=K$#}6lcYq_2xLgsGtbs3?9&CBRU-SKt7oIZmpIDw0~J=?ZQjXN2G~)S0wVVq z1Su~p-31KEMedRN0;7V2j}#59(H4l^AIdwboDLQhy*nJ{-pO7?)tI(7A|!_y!mMWQ zRtGx03YF^kXg6VScRG;Bb-AL*?f&M-?Nw9yztwbX+kG_@d1JeHwC{JwnIp@HtdZQ& z6tG3Z;*II2mY9BY#kSpz?c%k2O?@Rgv)8My3I&1*G+(9*!8#j8CHf^Pun#eNm-`Uy zrdJ0zdU-V8U!4A~kf8LqA1_V!7gMwS&+c%d-AkxoYB55EgDZiPjgIY-g01~c-UX7Jd0mV$Z-zA(Unvd!!DA<6X6mVZjE@=n7!?&;8STLOVdfL1iHnZ^mydIwp0Ory zgfC|K!gw;K^618I`Vhz4t0gJ>XZQ;h)(c0j~MzI)FFU5#g~VR5wkIGbYOWuGz;2iO;U_&aYjZVFXF zKe_OCr%Is4vNUF12>ZCom{{-By!7U+O7fJ)Eat&`hkoXkHd%>oD1j`*!cR z0<~lJ1dLum+MRp~B9wHI3=93L--2`CZwalNEaftJ$v9GQn{6fIbc`=CW1CS4Fkw;` z-#nPdsNO5|k3*nk2+JG=R`G-F9xt9#G}3zKPKv851>f6VHZ1X6ZQGKYwkWZYDZ^T%xm)NDr3$YbHAFO0#<@I!*OA3^w5Wsn~o5e+%dr zMcEE+9cv4w*#b zU@SA^(BnY#`yT^y9>`)&zu0*{6LCrx>3}W8e4=#mQ&y|urAg`P__MnV&ur0cl^Rc& zZuBr-Mj+8xft|NixZu7S=5ZHG@g3qGO3;*o@Rqp8yA?5;qN81mn%BbUh#fP1YoMYq)vJ- z?BN3-xfhC=tB)lujf|q#!zh0-=i_PM#PQ9?s8Q`&bG6tAZi`j!RNVFrb+R9zYdBTG zT8&i&r;y}uOJ#1(-R741n_j*eXX+?lQ|J$9#$r*u((1Cjz_=7*FvF$%o+QJi$TzYz zY?9fajuqsm#Hn;coF@;d8{0V*Y{vMC-m3GeBg;c+za_}s#gfVU;)h9_7ZrK>fo2yaT3hz z$3Uo#wQm}>=O8xGqT*C~okfxFrRv%7bf>M^;A^A?*NQW&5}JpcI-_8I&g9pXU4p5I1X&;4>1U& zn0bV?_NjMeZ80MrIE|IAQYVW%kz{OYxBxx4F$B+JCW_4)$iZwm6cnum)1oc_fqAEh zY8TKL24hZ;i36ZeqS%PpV45CRDmtMY?cmmqt<8vlf>5szJ+AndLiDpaA8geVDVj~k z%v~5S_GA-7cDx)nI~Q1;v0K00&MaP8`vt2beG;rT5d5FE04H78Xa%9?E3v5@1KBWO zEVvuU9KaN~WJ%5e6N$X1gZp?FlF+`+z3nZ0yZ(78_~(Mgq8E+LW5PQ^k(0xU9ZCYW zI3LDjWc~~;*pSFt;O3(%>N^W(NcV zgVYX49S{&Ms#@YPqe6@goOJvGoku5Hgbt&KR(}A|4~YTZ1F0x*$RssEig6|SN!2Z6 zg@vMBK@5O)mgTFL9llrC&w3))ZeF99m zW&1=8Z=YCyuSU`9(xd>#*4-ZL(VH>)zuC#62DuTMrIGQP#9$$loU)ihmI=q;*p80% z>@B=N{3bx(TX|S4KBmHRVuXk@ zx+azo0vKIQI%1aPhdH|#z*Ypx120J%?5(o0+nyn26F%Tp>=Z9%#Kj0(_>kjA&N2=4 z0@9v0*i2r>1fB{$G8v>nVVK1lriDaP>u&UpU-gMjax_#zHT`2@!|ZlW_Vi%g(P(1TXj4FJuiqf zU45>zGNa^K`N3fjnLz%3TN`hi0$S6%%~ZLyj}!f!J!X=S1M1Tc(;17R@qcniCCKih9FX=}=zZaTFCo$6qg#>BoV8>BZoHZAVq)@Z%Ao1-dTYSU;3wl6iOT`cx2v(%Yn z{wy$xf*iW6T8${TSo@J?N7OB`em(hop;#j5 z1oFro6=A;3n6Se~qByb+N?3`hI&x5EY-8FFH|>URW@SAkTiIR|i$uxZwhN6Fi}d$9 zwUt@+)SFvb-3AnFaJDkHnKAtW%YCnO3O5uvC{dXK)5B)hD7_qQp-ah+U!ce)!;;v6ngN`HbDm zFEeOBcW%4&!^6y#xSsAyoi&D9J-4G53j{!C*23~Qwyp($P!4bl ziF4NKL#Hv&l7IeNGiaQT-ryq-VtY9Jpr*4O6nv)}74S8tz$j9t04QJxcFGd5@jC`I z8MiXWLZa7mDzq>~`-%B$c3fI%R(*QvOSx^c!#|z^Hg<>l!H~ zXwWb>bfQdOkoEyLU)A$M-*jCk@DkOEqafBqOUkQ?_qsHiQ(mp1vXYV7YpUO(eF8yT zw5%JGtJ`#0`|&xIc-w8Hy8<}P>8|XHZRxIP+R|O=S+sOfYxdElyYe5E?#lBhQbk?1 zI+o|?3Ob8Rcg1(nx?hf-=pvs=>(I-09+pv1i3Za&Ky>waqmhDWRkzUS1W+BwrR$;Z4RV!*}eU`Kh zbZJY@cB`^t9oe>fSyk9}Cyhd8=;bRms%JE+1=l`3#BHDK(6$v{Oxs>)-}a)l{j}Pi z_l46Lvv8Mk!H=}i-Mm$LvntK`N+}gl>67_3mFBF{H@1YfZDRo&1jHgYws{V)G%H%8 z1?V=0HD9Ia4C^JTAZFXvAmqGaKK9E59?KkWMtpjezrZ=qJ5`O=)fw3u#A&p=+tzBm zBF4fj!GMj5`7kzbs}og?wycwn;3r7d`9_ENSoxWBowrn_6^CXF`cJ9x6$h@E?6gUC zJJ@p_y0BX3ZAc%6tCGVj9oB_zbylq>L+$hJhqY?pifqor?-mLAW<1WKwP|0ZS<1we za1U(A);2@S&^9HscrIt#9410rwhCds>ALi*^}U4|91%LZtv%1I(<6@Cl)gvIK&R$D z-4pz-so(P*8v4ds)Po?1E}|+SBWew@P+ny;A>DKCh2U z1`1hjPVgxqF@=XoM?TX5j0PEEfSHbgkrP(!R(ILJctl`4Z!q!n)6&lc7w_Lf6;^ds zRijVa5})ry8pb^4V&_`hsCUhp_&J$Y;>wpgRJN&Iw$a+u)_f%2HiEir;oFQ4XOY&G zriC6!ss3-MSrS!->u1{_B;A?*h=x^|Vy}y@$BokK;_uxFBdOwrBS>z_=Nfieon6Jx zn_;*&x+wn0PQpVom8$y3_a0b z;Iy!?czg(EB1)neu_H69HffR3`*pZNQ-*e=duh&$2n8DKvtjxEkQufVO=*!63S^>E zQerwqBW}jNs?72h%8?@Vs$pWT6%(OmqgpZfOGX)nhz^~ucv3NBjL~Vm1AU04?JZm> zC+MUzVpe&8YvqWx?ZP_e`QWIq-u=BD zKFH~-3?JmmyjDJ#Woii@v_;RiF1m?=3q9TW;A&4trjzo)3q4JI@KR4(K6sg?+VVk% zGxK7mu#gn}NIslJJ-eg@UUaG}>MfR~aYRemnlTqU(*f<=0G493V+h^RPUY_r7jyP; zmyN<1&)Rb_x>USr%*9ANV_eMVs8HON=UUwQs~2%G<67}MT+DN=t(a>mC_&End(5?# z4fNf()^b_ux>47~W?X5&g&YadN4dTt~F{x@Tx~_<61ESZ1i;HJ3Yp= zoG7Eg?nprImJMY~c6LB}T~9#1si%04o+kl1BS(VA~(&OkRg(Ip!7KXGGhkTvw07lo+a*t=whwdKLEm&Mqjio{=hq>H3&J#K;Zh6`O#{2D340d6NQW> z44I`q4f(dsh&$kY8ruKG9L|)>j039}{onr==H(FcvNJq%H!p(#7R_qi$>}g)f%neb z-uW~kO5Qs%z8U;Hsc!~Plc zACse&T>DegLa=|r$Df#awU&7dxT$x=hp~wcTu6YjtG09gIiRu~|8mZ`Y@8)gem~Gr zt~quI&d$7)mk)s9BnkJm*~ENIq#)o-q?8A<5 z5)Ci~pG^)+cA7UXJv>Yk7KtL){f|Q2`*Xh#q*GlYHa9&SNq-s(A()b3e)?*_*g*8h zI&EJGe#^#ZlPgMqSjbZJC)pqI9oYyJo@I^_22XGbzEpFUFc#{`<&&JtWTV^KbsRe* zz{Vy#xRZ5VkPrZl?=_GVA#!2FyXC2pwg268AjYeJNi05=kxkKk`1XXrlg>1#T3#5YCT&g>An*XWu*KU^0EWg zVx9S6{2GbMGHt{dh_S{%NlAxe=6z;LI)3Oq9~QprmRt0`KlexD>4L|e!(?&W4XEg1 zWYf;g9~rfDZeDXHZ4627c7_e#al=*+9mpY{RBKH|Mhd$X?dW2T?I1FNfr{1fbF(wZ zHn;T=Q}W#zyVa#jP9^;wT%>rBwOVKk) z-PvbDnV#qsW;U-)P_n<-Rkom>cnlRcKkih*Lo>!+0*UT*2UPZ(x; z1-XQ<&j(-3)`gp*n3{TgNJX`*GQcs=AGhG(gZYK{r1xJ+oM_)maPRyWrz{lXDe@9@ z1hGFixd>(T0v<0Gog;wInpkzthG^btnBe2KJ>(WH>A?l32eWzghdP=9tu>)+pf#C< z#4!GUIjzV1vlDBlc+#;oWh^ub%!X>O5#Hl&?Y5;8~JZ2s}&A@B6c)(*Z1RqH5b~AzV8kuI8<;r z(&oUef|42e;C=!b$V_Fp<0FcK9|9@&!)$Hz;;`Pc#HpJYp*Y~yZd)ZCf>aN0p*gio zYN$WWJ&SJt``jNekfXoRsOW#pM~^&fz1|9V5bs&=h<+A0;{Q0?8-ZWSAe)Qh|AEcL zWU@`tAn4GaG7&@%fVX5ku)7rO$dZVO39{=rt-2%Gx=0)pM@n=I>)Hl!LRH!wZSF;H zj`DSGEv(mzU<(80@QXxWe>iASAdei?y=Uw#``${FQr(7#^^wRDs+iV|HMaUfqaFqC zXPUa58#W++kyFY4OUxtcPokv)Dg(IgPZTcc{=|>y+k~?j4*_JXYnF$gKKCjP)A1w6 zLqMl^$>+z~FS!M0x56HJlf zo-H{_seu*{>xgCvRi2cCU5ywLWt|NXG!#dXyisj$Ve0X1J8wnm$0aZ+_}^RP%~naG z>CxDnA#Uf-ZVJ&{WW7I3Asw#bjTwBhqZ7(7RKY@+>|EWsh*$DX;f}ckYBYg7NV~36 z)%Xqlya6b_xYaN)$FC+4qrc*#KWLI{JDik@yW{7Z8;GO=q)AUYgSh_<0_%=4h>Bj$6g}9c=w&N6DSl%`t@$_(;|yj4 z7+{N&S*>$bWJykDwoE14e=S?p=5PgNGmA~dXS+0pyI1jIcqe@$W??t$u#Q6?%%8)h zX(Lf~!xT~aH4>s&%y)i|tiFoDl>oe%516jAKHzQM6XydSh+Yo+?I0d`ySKSe+?88y9_5o1*8fXhTI; zGDU~m6kV~R+KNWYnWBSjiY{AGBnak$Owpfj$7+_W>;o#hm?_)WrrAX+dcTS;WQtbW z6kV{Q_o?W7rf6@QqVraCw~EeXik90HowK4-Dms%X+S8`!j1?s*HyB$;*Pzs<=vF}( zyHiCsGerw+if&rbNfq756m5qu8&-5eMb|S$+bzMm6&+X6%W2UhTEKE^@=pn!`D}|= zxonj!)8AUx%0ZjTYgTzwQd>uL`+}c}_d)IWH03~k>qKW?oVJ>k_b4K(*5XLqVx@bF zl!HdPw|L%KQ;nkrF)Aj)*=_fx)uxFThs-z(Q@||m#sytWUfU*mAb*v ztZ7T#TU@dh2jdoV-CLv_^18}~N4x42;~_Qox~s(Xu+gYk85aot+v z9FZI2Nbu9$sD^Uz$L=j&wibJ^wy=fr#>nL48A8Jy3pX7zvnj&_<+ot53CeA~6uFuU z{=_-M{Lyi{UMF^Ukb5KbWyEL4EhUXiSn&a73vi>UI7lKs!z`s&XTr^3g(umJQMOl$ zumsS6%qT9=OuSihd$euG$ZdlbeMQM3Y&YlYU=>z+A8mEF1wP7(5Uq8GuZmMl0D~zkitXbuwP~5%xFl2y9D#zI%J;)t+WDKS56B+HVXM242p8 zh+9?Gi$@!!JvrHb(0v0o&DeGnDIVrnbQCBaCAxR%PkHHYRHtw*@@Y4lARd$W-gEm% zriv-m{x%)GL{utox#ABRWfjjgcKF7scKW^16Mfy$9VO0LGeFk@!`#QwYyQ;oneToh zcXUUwRN^ZNd@Apvg}*}n17ZThvK-e3^U6VPpo)rb<@vS3OK09FM}zMtK3X~2>v&9k$f3G9pJN$_B2sYDZXQFA6Lwot@^zLBxRVlc5h#!*P^;S?B}=MtPmkn3eT& zL-pxrQ&0N2rYHSu=t)0U^`xJ5J?UqQr)QgSKYjEA>|m(rgjqmq{v2AHnqStF=FjL! z^GkZt{3$(Yeo;@FU%|`d(W305@MU9nnuC_I7%yenuSGdCOQ8WMaz%{^c6thSdJ1-W z3U+!5c6thSJiU^~oUmIa;A2_Q&8jSwd{C$JxtG* zLM+?>2-j=v>7-hqr+Gc;>A0TsG^Zy$&FV={GkVg~0?)`P2m%*)06wyLhL!tn#0tTX z9-}oTh%3*pBt;C>i_@$p#}!UzJv9)XeiP(L z&|#$?6@9@JzWUYP7s=9{Qepx4ixL$;ReFED%$*tKcm(IvG9y^llM$TJlMyWG$p}vA z$p{wpWCSZb{g%->jWMT*mfH=Y2zc^GAy>~8uv0S*Z-eiVTf?E5`e8h4dNQ7idNQ6> zJsHmhJsHn=JsHnso_@d0coJSv1{BluXc5v;o&<&&95>Dwk1>nt9F*1=K^X9rRm^ew z2#1x*tbMX%Z=zqu_XrP$_b?Aex0eTl+rxvgg*+JAAx0KT1N2MPm0Obifi*HtLVvx6 zM<9&ry^{3)9-5~2ckrP1xACC&=XlWjn|aW?P>bH*Mej$B-cj#;&Ao?7?;oUTdjEDF z^!@@5dVe1edVenudVih=y?=n-*I9u(nS8Ce`7(n;K=k!_Osm8a^P8;M z%&Jg(*k+=+LV1&1AV+=|66U^@EXi@~0-_h9}_ z=1)`v`lFQZaq1JWrogmQqLkppUUYV-q*X%wp9B#2838k+wi&pWTv)mR_Yu&)7|-N% z13U{gQBBk4yMqrqT+KRLZLV=WS|8?7IZEb6HOUQ z7Y@ib-52hdei%=6?m1fInjJSq6(u}4v{aIHxwESpUM={8-p0gfn3Lz<<>+OxE+s-k zid`d_f5xWl@uVLvd~5! zYVv84rtWa=kff;>9#T6)we3>Z`GJs<;$`cct`)Q2C{x1s+9=tyzR9`xsjc4}p}FzF zAdZo9$FHi5Vp@dFbv7CY6f>q5+^a`%nm|g^jjFAIC6GgFov!OFzLv_Cr&rto!=~k` zMOg;V>JuT1a9?qfy^GfZ5WU%VERo@fU#C*^GSwzdYq1i9V`8B4#OW8Mpcv}d*`%ZO zs$W2ezg{T390PQR7P9Nhx!=+E7GRplEky1>G6KQmQFt11ZW(qCD*zIf$Sk}nBjTn(?RJFQ> z388UpSdy1sdtbeuRi!JbBvnbWecwa2OJGGZ7^KKb&~@9g(l{BfS)R1ljAt$X!CJ#e{=;@y zy}V`|T*LwdQG!SW2vDF%1QL#%h#93v0e4d*0@N7~C_$YFP-rD_gF118=$J$#4$SAf z_qq4IS5=apLkPrLuKVu2=bj(??6ZHLeR@186iF$9_fBkr*T$gMb*qdH&Xh3>E^C2! z!Jz73S>QBvXHZ33)6_A|G7sE}MAF8s7!ZLSLaBsPEa61e_LET*1^zlBh6_?u(=Vew z%54c(qX~*B^vo1I1`vT?7UYNd5B4n{8d)g|P*W-KXC0@rLyzxZ@A=G(R=sKf=}Kst z=|l{%{ZJIoLh(mGu%bLDq zeWFe21@~?5AB|T8a|!IUwypvz6%%zv3T(wlZI(vpKRV6;BgI)#D;a6c8EGv{-~GH2 z)Y*1YaMGzoIH?R2;-pn^QgK1)QfQd@+J^!wt!<1p`3bWCNM^P5$+UQ=;HBfd zZCMDM*-Ax6+Z&eYif}W?vo+bqv&Bq;3{Z2PT?;(BA|a85Bc46Q`k_7J*+P4tckzgd zc($-W^JNICX`6DMjkT+$-bLv@kl)l6sIa8&Jlh3k@$6Xqc`76AEBF&R&-Q2VY(vOG zH#VL!YtpKVA{2g*`Fe@r~PepeRtcs3StNnh|j=hhUZNUZPfN5i9V5i3Jj`W`bOC%l{(~bZtgDaS} z#6rXYqU2uJjry3j#;>IoQbpLlPXAJMYKjmwwpOME{VZC8^5Fdv|5J`~(V~K9Q-|?v zbxINri73RgM+CicafoLl2iW4M7?=Xjwj@+{iv{+0cDXnJk(MxvBh|VU&xZAq?@ddk z9|$AmQfUO9ZC@!D2BXwyZM#3bxfqAh7GLw=4*5=8gF|lt>7z?>QV^FnH5(czK=KSiaRTDv)*&0H% zY8Ev82ccRuucTTLiTVRktuzNlrXdnqN}?U}R4Z0vNv2mp7Zz8oj7&@K6`8)0Y892L zl~!R-wNfuiGF_-v{bYL8JTm={SFM~(ixhSX)vAw7Ut6^@LJf_O3e%@rNiVpnY8437 zBC6FqDlMr2)e3^XIF+8KS{a2e=yacI6`5*<(x>X>H?a;DWV%qToJLp^a@$%X|B{hz~Z&=gC|}S>j((6As(`s!gBdvUVE>PO(ZQjc<-c3DloL5L}vIwRZjj4l$ss-xGK>tu#E>HB5Be=WN+ z*9j7r1p|DWXv%nr4FaWRB?L#afkm=SjjME1jIW?CiNAEOU8uUEF1-O~xn7;6B@JPJ zRE*(VG*4q=g6J5aW-Mo=paC=a;!w>#l3?{P=dz5CRVE8zgA)Lv%}Ir6BD?mCv_Ja4 zwKB@(rmYp+qq>_AgN9{mhk%$h7t)CWNq&n#ryo)-pmL0M?l&Ss*_Viw%M2s2Ft0N+ zk1?~RLR#fFP{oZBe(WwQnj$^@_4>WF(&5c5IwMv7hx8Mqew9w8tiZilh;jvf&>LmA zPSQ_~A$yel83|J*4?_OTH|^NjE+z>8Kz1u8&wd6#V>ii9PzI*oCHn+kkBrNm4EH&q z0SHlLH0iPSf)S$=NBMcW5#>T3*|DBpbnZ*IBt38d)?ki!!nOF!tPy}6_{*5UY^?RW zNvba9jh}It7?LAvVy1jzXg%kclyYKZ#$t6YG7-|`EtWX}yr9W!8rPnP6@zdltZA6X z-bg22^#0LX^J7R^)imTI>8HRA)v?50&yr)IqvFg&9epRzL$X+~ zf2}=I?aj$SEuC2&6O6*b!R1Fk4@Y#=Y#+0c2u03vJ4Hd60UqW%l8j0+pVJ_Wc9?se zI6tcglz;omoa57D$lLnl;qIs(g>*kqwl-}gpRlq=`8#?f{^%KG?(j|AAfk+va>r`3!0=At*&Gw&qb2^|x8Gb;IZw(d+*6lH+x z=}0C*sgy=Gf)p*kIS=+mg;)&)j1sUWP(@yYKd^R(LQ6=7JKg)40a=XvYh61Kab7Fm zjFZ4H8Gybn&{L6C3yASYb*3vUMrKMgl%Dgs%oGmsHwmgU)=0yaZCn`m7LlV-w+8ml zH1!V5G$`-QU1O$wV`_xq?Iq6imR;#PzTcUS7nx~|_xqY@OfNOM7UtS8nYo5G&!6jf z{#*ltVy?kI&2`+H>+)x&HKe)5L?}iKkzlUAorJlxjDHbozs(+AE^Lun_B%9ZHk0>o zalXDYOlIYubn(&*8@~S$i zsAg0%T-jBCs1*nwi{?O^i}z@jmkp~yRCGeO)hhg9F4kdr_4WVXbHo` z(doX@St`q&M9)H^+kGTjW&0QBF%_Lphv|X!r)6z7X*JMWTZ_z%ByNNM~Gj~nkHAX8q1cL^H1XZvl;>@ zdRl!yUDHWr=6u7dNMw$zifSyJUWNd|$5Qq+uM(5d%=N znFL4HF|h(_!c3OJ6`=eEV5OLuk?h9J$x$FDe5sfq#?B65!8@#si!S>xepe4GcZjR)iGcky&p&wSakpU!l8CNCu z)ow@AW;(W3?&N|^ew|Q`=@fXS@^uK6E)NdTc)MfcF{ce7dd{C4p|)kz7kxlC`7`>v zF}km}L9n5T7N|h-oop^&n*P#CEp#@&36RMf1;b4t?lxk0JYB=?axTIizKoy9_kWpW z89Y)h)i+^*TWxr)b-$AvS_Z{zl|VO&<5GM z`jkvmymEO`M_*}Z;TwiAnaBS&=)!MY@DV+c_KZqPd=V$`1hULyQ)NZbES#y(YWE0m z5N*scCbn)tq>S{z#2Xrcq*4HF=N=kA zIL>?*v{sOpT1J;n2yIp0Sh~Mx4&>@@?Go+SN@JcJaWC2vAv+kyVgi{(>W|jCti=l~ zHq>n#EH@qLvR9fcvT!!7e3mv8j|dlpjlk@B(2Mf%+$SaVUyCrSIixzLK=HCL7P6;hN?Lzh+6) zJ8Sc!;n#Kf$?)s?{B-zrLw+v&$`W7t$}zM|W83XOr6)?|FY3TRog&({4GaG8`4Yi2 zme_5H8in}+GXp8p{3q$JLf#)4D^qkisR2QgY_%v99-+O&iLIzbQKim*k^Ps%x>WHz zarBDD&f1qusRR9p@m&SznR#<-@wmu8UMDgg>&)OM8B1}0oa3-l?Df2N*V#J+6$LP_ z>U-N?eX)TmG?V@no1-D4v7IlD9a0NOJ8wj1*-Moim5QaEW-I~zM(Hezabt9H!3TNO zMguM%=V&O|1nT)Km9A=DFKXWL|V>`cPVi}AyEu3pa_*Tb)F@l7QpvnwP(a^Xh(s8 zkIVqc48N2-2%aI?i5FN!vA>L@U#(hVI^IiM+oy5|D2G~ae`okRp6;P7l|O(@>yV0g z+SHN!5c!ClJslhAC);Y94fMnoXc;nxvm=|6*-3JrhOQ1+^ z3^PUxF4?DhNv~XvLFx{^HNu{V#ehzZ!CNH|7~7FdEoQP$?BW1b^wqeJ+iLnjTRO9S zIdmIl0;8nn7`EgR#ezkUU9ZJK{kgW&N{DfyrG2jp$kklz&{a3i+QOaVZzKQte~rjF za8RI08I1)@Lc#{H8a&%gXmu`@OobsjHWS-&QtvvKOJ4wUa;!;{G2|2j?ZDW z_V)sR>kzefA&zmZ?LakJJj{^CvN3gWyVDTKMp-hV#f)=wy2L%tFXUROuml2c0-j_! z>F5&lq_tQOD$XdgnYM&Q5+Nlfw&W!5@>!uXwx~@!)#H;|!5^<+qIUOXkAUm0H?D)} z5Q<}ZUAm{`*ryR09_E&Z^_NfYXy70Ch6r?oOqqc=`ScTh8?(1FHk z%=JbNxRYg>f(YA(^&we3D&Q+&X)P&@^io0}=3*q(mKv%fu(_Mh(VyqC14#U@WMqc2 zun$B?J=4|^>ONDGhv175Y6<> z4PDIlFcK`%7;((jqGn{oLi$$66LTU;Ii!Ina;A4<#2Kto+)(MJF`6RbY3oZOz2<&C zOO*6iyI}Ma{p&UHef*F~@KOFTuZgWlK%{K6fXw27eny~_r6KPua+6Y27tViBCI^sQ|YxGE?*hv@?mwQ3{ z5Uw*>_!Sf_NPWHV9R>O*hLe&s!nUJAf5QJ){A9X?_S(e>7j7oYHzIy{h0Nnvm9lIm_<#w&hR-W#|+l`Zg+b6QdpgFGF+)I1_SDHxeb{1z-b5 zg|2c5QxF?0X!x(o7~VSd5!|J(Ll`gHGWy0~daEF!0TALQ$*-0kgDG&brK);wJsxq4 zzEt{q6?-fDVpX(~Ibgv$Qje7GH(PhWokc2h0kO`(6Eo6ps|8Km6QcxPglriUh4*X= z*_<%1T5(l5+XLRSQnxwYvplyTNRk-Lwsi^bALO&DnV4w!KD%LdrSd(*bFdF8CR8GK z^hb(Czyf}-+bXQPAe0)`m;`a#EY{L0pxt}buHsO4B8M?%c6S+`SA~Mwg2p*!YLvFs z5e!}r83+Fev8~hbeIOr~2f%KN=B~1$kvfFKw&F#PihDI;5tg=uSdj%v6UANp%$P32 zZqQEHorpj+k5HK}&}RPvb<79WOs)VR2TaI5r-#LI5MQv_QuMCq+yq=S%&2Wu@Hy1# z==Y|*ggF!(HGd%ERi>|R^2(`8Kf2hA$y0jO88f=II9P17{jhqeK*Z>w6 zF5r2K8xmk_P1KN>0v31JL+QNEPzZs!K%J5H-XMAr9U{>y@}#q9HW5pn=`M4BnBB-N z8o@$62+_v<9rutapK%% zKV~yAD-+M4usB>GKDO}$jzty+mO2#|@lrxcP0yRKr|9{hq_&XbiC>DnbsLL)g6b=F zXQNQo|KGvZV@rspC-`K}4l+>eIsKvO?5Z-2g%C0O)!$uaX0ZQN8h3W-LZhuO14{^4f&E&*3KkFxV`$L}`81##CNv_e zZ%*#zq3rIqKS|*#^zVVL5QYBV59cJo-)rK>Gu!)#K+FL0J&FT)%zp0G&po0Jm!Wq@ zixovsDa$-~Lq&b9tp_P)9$HCL?gOQ@H+E$YLI>}0rB;tCiC@*%#}9SXdzk4ywZ&qa zQCA2U@ord;LhtBE=n|cyOB%>yh`wBASnp1Q>tfsmBbD4!M=&q$)u6<6iqg`R8EYWI z^lH*kLPXf-N%#l0h#%~x?Y^Z0R+Q_eYR0~AS9Vya?!5Wcz;#T+dSEY0`I5~^MmN#8 zhz>`CiwOLCIS)2DJ{n?bZtI8$>2DjNp{|w7401m3q-)|9Iylr>o)DvrC8Q( zxufi!o*A*w!grc|5J48$*C;4a`o5mUq9`Us0Uh6@x}Z9mo#uW?W7ubS(X<-O{)ue< zp!Va7PK`*^WFHDYre!A}I_HaHu){LcPf3CVOAp$VkS+`|&m*YE<4wH>hwMR#W2R~o zu^=$LfeX%;$q);+KAy%h3suuY(9nW0rDyX{VZR?rB47~sD zR=bF8TBAA2a`-Ep9N5RBo%&{525)=2-oVI(2~PfnMO z;0*!m1S6Cm)h<_I?xlgy{)6cCZ**JHiH8 z8P)p19l&=^U4}e!gc(>NStk8U6ctzr)WcLYcSe?PL_jVY_-wD=r3i|OiRL-28VOP+ zEjvkdk)a8jZC1sc}rq@TpHpJ;P3t7eZ`Y2~IY z;!H5*B?XZ!bn|&c7Gyh?7@VMIWDYT(ygnPA6!=Zs1kgUOvgW>xvyBtI8dlK;_ zv)D`gA49<%qzqPZCDKr^Nnh5k%rXjr60KF*ioXW24x?k*`6?^r-BN zSNry;eLEMvr8Ot+ss$vv`nMmmZ_k8pOU59rC+&m4UsTdh)&&OTZ!{MVOUKx30wMe?{fklh%|u)hDyZiqn1wOzC~XvG^N`?I=@M(M z(uq`%IH;a0cOaR@a?auh{Av}c2TQujn0;bZMNrA3{3Cz!-ZbBo|Mj=uo2Fk})86dW zZwJ6qmnfnN(1t4MFLJOQ6;>aW7PAduZ4FO(U>3YDCP<{7JPmsX{4(B-P09GQ6`}v7NN!0u``jkWh*<9|> zh@T2dTS=-L8>1ADg)49Jwq$miH0cRm6K|te9C5}jsMwXWmWVQDPeLIy@r0yc?J(r% zTiD8J;u0U}V1oy&}N$>VW-KNYP#MkUq z2r>}`mMf`o2UGu;dh2T(5bL)oK=<+Ekk!S;jNg@B)&zkY>yyX&w+~pe2#pPC0sKA6 zU)w%Fs|RV-WQN7J54b(Q!MQ)$KtOyBS|Yk^lbTn|f9w3XkG4J$|uw)7hctt=iemiR#l4a2Q{bhXK>)~0SB6#I95CYd|i=?w^f zYE1mw@;Lx27|mML2}=Ugr?N?-V+-nrN~PP(uO}I0U(QOtY63$&Y>9_8^AD4TBIbJA z?wq6^L{*Q4m?AlIX@UI?-oiwo6e=@P2*Z(eL;}E-iip7vRR`2&ejVOOkxR#M#muc_ z#*o$(A^~k;@JsiF0s?Of1!Sdft-Rh>z=O;r_)N|OrU#*PhW`{J%YiNJBe_oSN%DH9 zszJ~1NHJc>hg|yNl)C_caT&A7| zTpH@yOh1MWEwtLM)qE!tWb4_IgEVa0Px0B9$3Qkq0iw@T#Ck_~=zAcywe{idF>{DF z@>lH2f6@DAPIt`3sijp%gGm$6s%I|UH^ zF|8p`00fJHHIBBqaDmea>kMZKybZ8ICSOFok>5UVq6sY9;uF0Is8a403Y8Q66ZhdJ`jbDbiT>mdXrg78`XNqq!JU25+>2GLPNX17;>C;^sp;d! zeG|r7>|2>&X>VmdqY0~;)Ue3Pw5XY`3zS!0nbo0ICY|W5%x3z`l_m@^q<>|~LE67E zE!qPmWRaC=4({HB0gG~FvPxNNXkcMw0=BR+%_)gD(pP5Eb7+)5m5EAc;_C1_F@=&PT#dG~s0V1fK6QEWDQ#i4ohJ&?K*gh=guLpT!g8+U z{jwdpqbY5&bJ25&_M}3W0mWi7OoEruN`f71NRb((+9uf;$e|%gq?5j6Hmoj$>rT7D z%qdU0WNG%Q5^sbqAS4QwpnJQ`o^RS3ltv(9zm&IT*lo1k8^o%J7(@yt$vDi53tvw^F_TqrXMHzajrP z7peE<^Ka?-n*8ki=f8TH=hx?d9iCtBW`bMtkL!7o|E4Yz`MbHKht{x2&*=Cr3HMnI|{KOm!c3Hq%}kP zT1}eeGRQHs-{N-}@0fMKnqPd2!d@+0gV_m|*4uhIT&M{|p){XK-^NGKU6KCAs8F;| zgS4U&!`bnK4QxA|q3D)Q4P=H`DB(bjuo5LcQuG(-ccT-JJy%)~}f@C?$+zk3Giuwn=8(-j?8N`LrLcC|9 zT@vr~6N`KJsf!Hq`SX&aj6Trg(-GTe$<|;1ZW~dMs)cfh2(1ccxnYs1yaed$yjpEN zT*cED{OR@n6k}i(ekyb}lvS{;u*dqQ<@bD~YHTMA*WD@)^-I}eHed;d$Rc-Xx z7=0}S)1C{#wCAG^!IkRhg{Zq0Z=p(0u>C{TEVuOMW`%e`&5#yEk+3pHJg+Ns@1m}l zn~&)|Fg>dKWw%FfRXqS}7Ry`)j6S3*-P%ti7Wu~Q_dEIhmhgKYzxVPxKZlLHoE}*= zNxBvX?2-L^RdJ`O+mBsiPG7x{l<<8%DS`T2`BRWPuciRVA-a;EC_m6Ei~9wbhg1aM z9@G_>9Z=mzY1QXJC^V~A07_A{0@OZT0hEQ?BD?HS?Eq><&jFML{{pDX`VK(Jiy=U{ zqhJF7;wWayZU96wN(y-I(YNSD@79$!hbUuVy?zGY9x#~Dbh;&S!T}ScjXhJz|B#T_ zHR;E-`0!|`E?MYBBsWG!{cJsnCI4AFTkR5dlj#Z4bV)6bS-7Y-Fp{gW)|xJRGy7=J zaW*}Oj9t09o}b}_S4UiLwL1oRf(n)d>O>U^)m_3UWR?ww`?Z`T;g$#_iT-oE-!Kgt zVVk4D7TZt2>62hVX zp2>tiRXfOH;47a+fr&5vdEo4PuX5t-S19M~9%j4vdr5Qn(Vvt^cbzsj2o2d)gb{v; z82Vf#f7{<7bDdq&{?4)@R(d9Ov#v3uinv%K-tPYp+9fiXIVD(h*j-nXjl7+cNiO2D zOh#Ogsv!cVl#fU|W*Kg3Z#c;XCo$>B)FRari?Fnph5%cbh^Rnsd9jWc>y!r*K-hz6 z9-z%PWTtPX?+QjIBz(n>G!VxS*?ZO4>@?F~vfT1kr<6@UU5aomm+t;qg#$?qh?Ad9}pU4Dt*vILViq?LY3ii*TUblusg zJJ!=w8tMXG`$qm8;!?w0=wnh==m7Ey9gxQO9LH1h6384zoiJk(5MX(WqweQZOoCmQgwAk8@=nnxJ8x>^)F($K_R6pqkE$sWp!hJWp0-^C6EO;S<+d zMtfRIUQtY~96!=BO{NqAO2Nz=SqCPooEpiQ8!8p>WB~306;GHcS-=9^i8~P7PYa9& z_jE1*+(Ay(u8=V3X9Z8XDZ`(e7tZJ-hy5A4RG9u3gZ+6Goey_X1y_xS2@=ujvm0;; z2_%EU3|bh%1iFJ}7!yMu0ys_RM-drgA@^n_kdD-6Vvt$)&T>iqh%Cq+VgPq7&vHR( zE?~*c^wU511xYV#K{`P|)~3;b5{4R}2tLz=(1wUN^1k^PdOs7SZ{GiA%=~u91%LJmRVHn2$DnV8Ix%vG-`g<#J^k%i!LC}#| zB_dRMifLAJ|3d$Bs~VRU%_iv)SkORf1S#BRo*|(*5nRf>+O{*5aV}s&r{&si3v`4h zWcoRy75eYq#_3yB{uM(#dRzSon7=d%$DB4vngfXq698ZduC zMcv3%a1&N6V39#|ac%-=jF%{&lxkrmO#kAnq$FtIZ4YZHjntF=zEIYn-p@l6X>ko6 z;<2Sr=OXN>k2;HGF61vli}`d;IpyipED%Z zH&wNHbN@Sz!U3eV#n1;K@`^*@>FRtL% z{^jhKV^1oQ8_+p3)_r9!Hp!YhIjK_PYVIU)DzB8(MS};&rB5Q&-r8F+xAx>2QAN{% z*~!nO?H{+nKy=U28Da22b>vp;HQpiXT<9oW3Z0{ybWSIn>|d@95)Qc>c3|seG~c_l zFeBS~K{e_(S{M`J6)6j&$j>4|*0(Thka(+? z5_vin1IL%;Khc>|-iQLHPPB!IwRXOh=doh(Yx7WH5dm)z96)*z{rmypzyZSnI`@yj z0;uESSRlIj{muS?f4xjJnqX>x5f)y<4*TqcDx?aJ*BxLf4P$>hb(ormXY{_2L-WhSsVf{9z(FRBD8( zb3>M9%O1_fAMK2XKBkN%+E95n1nZHzc)=DvgoXT1XJ=A(H-~cVBK-xi$qB20R4e&; zD};R{uW|Qe@glXi2pG>5b%+| zHhs?zWVuK}c|qKAYB zdXAhT4LtCA#0bUWAjj0x_XdDF<2gCmy|rib0lCcrVJMzlA{A7SLnQp%+9!u-VfMrK z8Hp_OWenQ4-pB&75~26KMuLzh5JgSCkSPw?Le>ZVtdm7Lm>yWs=f*6anF5MH$MjIm zZt#F3698cM2wgb8C?>Om-5^XMU0}PJ=W#!Kh+0ZZ7m?GRS z`B-EFLo;{fgh)tdjn-~9K34HH-1`gfGQ(}4eUhV3ax9F+iY^0Ub7P`ra$qI-Q9NqO zI>69RkCBsFA|-g3EmITSOkzf-gcV8;&b2uwSfbu}I;e9P ziw^F?roP;Op!4BI6&skO?*mgdM*Bzmz2Rv)Ytx2$w2v3At{mWqEPY*<7n%bjcbTA| z9B@=R5uy&2NJS)CpL>dyJ_7*5Z*B0DDVm8EV@SV4{kE0Nqr#1}a|-1$^BL3rnK3-Z zc4trc|zuSPQt?hsMUH1AWWoR z)5byRMr&9s->fSJkKW`n4W-E!5N9bSm4{p@faln#xm!X2p4ARw93@${YM@WE6iB~N zC|n$*mwu)edgU5e=oUN+XH!c(hr1F9ZXTtD-KU&vRGvCb;ei4p11h~lHYf7Eo@7wQ zH+6;ZoX{Yjq4(f!ejM=N;9&%F^G3knsBU|g#GBL&a!tq2jLNqy*U|{srrD8Vh)W7J z+uTaUV#}8B-uJsJF1McFyaQc3PM_ED6>=R^@h}j*I+~vXXVA0(2RNfS*A9*sMoV== zzDXl7pax5D0Osc@X1Z=DpiYwB%3zLSOj(2cnbELJ4?&&s3Hdl68$o=%G@37w_i>^? zrwgMBK$u9MlAFiu(drc`Thm`i7wpZUQZC1D}x3a!2{-hCyTEXmzV z9fy|eN}n%NjZ-U&5ErN~#qP_=9;SsjfzR~=T#1jCXOC2BM^#xh-yex4b#a!T@(26; zL6@Y_{$P*CZ@h|qbp8NURG+Xv>4ZPPz^4cJERXvGqGk19k`M$Q7T;hB|0`F8d7qWY$ z-Rrarl)8okX2EAW>eILTmi+I#)4yQ4uv&zQ^TSYV;G&6| zM#zl!2l#Y}Far<4K|X>I`a@ulUZXATm&uVzPU`;n@&aUP=cpd> z>awoS2!#0-@Kz7ER^G*TE_-f{U$lY*rdVCKN57&g!`Y)URJ2$3hnDZ^jEUstbD$xp zkC?ukWp`70p%%=jtd6m4x!mb#`W?6WH4Orh;bsdCF)@J9&vO3CTrL)9O7frSs_bGOzEXjUMPVHO#yy%q@&pVSk zZ5jEfZ8W2b^ISztJ=?Fo>|epTgVN>Zm`F@elliLMwmmieDVWA}*~(lgZy{@y4l*tz zj&IJ;|LJVG*7$gdMi+Rvo>X@{yiw?pROolsf-SwGKlMc`cCL3q@33p?2pw5-$No+;9zgFY?mT<`ZvoTw#ph5`I^AkqOs0#)(p`HMa^)#lRv&t)^&EMdW_nR0SjP$%^6Xhr^k`k^5kyzLg#JwE*jqZa7i&Dzvv{Wj zaJ~fkp>F~<4}knj>f*Z4#l>4$eCTv?4-|MGFuF1r&MTP{-!imG6Nl>GQ*r`2l{K9%II9!;NE; z-Fo`jT38AcdzR$kLTh0(Xa9&2SGt@Ukd432+-N5MSa&AVKW_Ig?Q){a-l!N_EL`9P zDWR9?n-K7YNf%7?dS*)e{NR+~@s#A44V7P>lCqN@nsR&6!7163gae1B<`3M!Rt$ba z<%3g3WXhhDuhCG(CBb2;tls^IHY@f)uPlXOb5x9VcFH82SsF%JC=bS2?31=M2iH;% zxcjse|4PFA6+Z*C4^VqhIB54UV8{}5TL1N~bHhtEf;a4bWuLSwi_*9z_7hHO>P z9IpKVYD6*j{c41xBKg8$5K<$K(^ct6M|H)Zbxd79LD!{590hQ$Mx4Crj0K&7v&;*f z;)JGt6&PshWeePcIB5~wocWpCKwFxG;0o885~4<=9}VgP9z3ZF*MfaEmEW%IZZIpu zF-hHqmehpgy~u=#{>@Eck0G)iR&eW)&bUaK{#%;9V}*xSOC?3<6cBn+|Fct+U#!OJ zSUdkbYQ2-h11olQSNBPtryz+WPY0Y!WIxGgkUKDDB2 zpfP>n*%e&^SI>yEouR<8LIX$LHCDMD2DegsFe{O1v}e5*)fSfD*(;SF5*VYhK-Hp~t&+G*vhrEiV}IMel(cy)Y%Q!LmHELApYSm9O{Y%3Y4-GNbm-`sGDteb1_E z%{pg{4$Qh3kJa=NW?kRBlv)3^?{n72hn;n;uJ3Ese{KG(lj?c?tdF~>)thy|QOvrD zwVSf>-mI5DGbBm)$6786W_`sDc0d=ien_V7L#uWveSqkz=+U*fvdEy6&eMFWaQ#!N z1GVN^UC&swfW$0xv{ePCI=kwMvW03}NRN1Q#`qz6fviZ~Y=f%=Ff9=*d7KtoiqsY` z+&6C1!&jJAa4vN6`OxX-bOkmSS4ry4&sn#hqr?AY`PCUefV$b3D287VQ!)R}DmiUY zn{*-)7xU5U936t9*_#AW6v!m=A>f=!#%$=-s{@9I|UYlflTB1F%yGdUSxUTi5A{6RR&8puBW*!k2HfvT)j$h%W)+) zT9n~xK8g{N-VP~c<-8Gw@r@V8zhZpjMho&6rldBS*wDAyMWxks0jQ+%&})gc#xS6x z-8B86t$F80Wcgb?=-L_26AEN^p?OW~GFT-Qrn1%{m%s`L{C!LneE z>9e}JW13)K{4cDxwJgT$Wxf|ry|1P38<&$B&)KN<6A^q$=$A!nkLF)_>OC?C=@Ic| zHd>rg+_Awec%}BnM!XP~i&`unml?cgc!$wgsE6dlsGg1UGyc)Mk=Gy$IQSFP zyYrIXKl6(oTK59O5`RQ75T0hVj9XhHMSsw~6Qx?Wcj@M!!KcGmR zvU9?Tf0k%1VbQ#J9fEP0?b#TYh7m0y4=2bwESfPe>Fjr#Kj}xcF>4?&;YViD*?^bM z{-{p6ckYKh>2}1)nw}GDf9yU{qXWVT5-N`5%Vq5x(e@rF%ZAFO*wpHUG~w_<^qBq8 zMGrPRrXT)MMGx=X4--A4KWn!CC+S76>L8z6c(@n+G#lSqnNvXYZDzejan{Cpv}Ih>C}_+8o5EXtUV6*^C2}-Kcup+D ztm8krn01_S{rZn8W_jm+xR}NCzQ{)EGaQBKViFJbRCnd)cwl-3(reBx?0nC~z7p)v z&iC=4EOChk#TIrf6Z+^fkBUw3$c}oXz2N<>M}+{M5L?rGteu8@So97Z*(-vIrD zuE?PW1TNODiQ~YA)CSJi%#}D(7bVv)4zECI>g_qnFVjSwjVpqB zqJ?%s;yva5T&Y&T|NUzM#0E=JV());sxUEYbG z*`Y%pR*(s)SW0C`X&?qmHI#qN#=|@(euPigqI?wt73lFWN zDpREouC#_Rc**i)!{;lDCT!uV{(3@+a~%btN);T@>T66M*6T4y(FQ&M3b39)LKT6eZV1M76UXOqeh}xm#33fN_4E=2pK=JqTtuC>9_g-N7IzRY@WslGM>PpK zVM(gXdvAuT^i!Aw$^OTFdzDZ%m#rFX`NBUY}_JalkF}y^UaYI!=GUG~g*Vg2m#5o3glPnJ<54fE`=j zS}wp+Cr(Hiz`Pcf>@Ie87tdpNk*rTE$T=pellXyzS7&aPlx&t%`IXUSVv~4xSldUK zmY?e^$71Wmofn7dM&K0T2{WyWw#Xm`{j&8&nu3DIcnr&lI$Hoe20K4l6i3*r>&OdM z&NKc#*yyh{UG(kh{(K4eLvc5>0DT#@NsLUDp z8C-;%e5!RAyM^a8&0d#&8aa{UB1;l20qR6<>jaxoxd8TQ$Hi-r z=pbG){yl~VQ3UNEQ8pMEO#}k0`I$N=K7wV0YBWOgO-GgHJXA5sh=y%s2T6rgakdIs z6YuV_t5gB{?&t4pt(;d6kj{>ARYc@bU8iuh>I$~b>ixygommcHBQ+K^J>T#eF8Lec zi5l2KHQW~)9p#%g(xfFc-=3rq~BHteuzc7^+S18G?k%28<4Fgj`4*IcXpOg%$?i z?S$`ex!3rYBn14heEY=RYse6(F96$gJeoeYoHvSz$FqDb)U=`EPBKhbykjOE&Iu!o zZ_ z&Elo!IOOr7CjSz(vMTwj82Y2IETWuA&NL+XQ&02Dy)m6Y{=IA_Ze>I*$uzT@c{05;xkjO+|mL1Ry+a_^N@0CNc{{PwcBk=-?3i07uDnEPDdL7b7Y!YL4Rc>gM- z^?J4{!}$s#?o;%D2B%B{rFdTtD06C(!jPs7mAOeBPOdfUYN+S~u1A-1Fpw5&j^ zm(fg6yRJujkd~y59)q0cr_mX?&)HTHLds50s9ks<0lTQl6E_k+sNMJd5% zwsuYEDj0EXInso;iu;)@QdiS7d39BDQnM(4NzL3NJCv)LGyE(7vDeH~Z21w`p%NMd zSKs;7k0Oz%1EXVJPK!b^V(rQJ#CSs4gS zwmY-ZWV>=*Xcr*9b%;nA;R4UsX7k>nzk=Xk4hodzYmj%7eCz5 zU`Oq*M^R!&@sRVcR_2{)#M^0zW8Dflg!u}_Nm@e1Mlw`xznb;|G}2#Cf<21ZaUw1Z zD_zn4l#gnD!l+1K4G|YLjMQl9TS=~DSzmN2rfCmkFvcuOSWxc)M|r`z8n&~)n*Q#% z9L&dJb;VYNDn~)Xj$cvjK7Oy2jmYV{l)^@h9=9AjAB>_A4KyQMnQ>a2I>(rL8Uw}~ z%eP7XKw=6B+u)E76Y<6KO6f5?N2eWaJLI(Nh(!~2+%^hwLH z$$mywg(W}s7vzF#kP-Pe?Cn~AOZr8PMtR~=rIzfXt=%k&SJB2%<;0Hqa*(PzTbiNJ@KfvFb9Jru|_9=(-wv?ytF4h_C*@skwuzwcF zHr53;MiqF-BmcE*wtIp(a%MnUJmD;#M2z1)u_ICS33;a@qeAwL(b)vnpfA|urtx;@ ziBi7FH!t)^Mg}sT0IS&w2|>ubC27Qa$xmw59jWZGH&X z_T6;T*3PzK>D=js44PD+tYV8Um3zFLB_<2RSe@C)P_UPTC2^k>D#_Emye!e*@~!1_ zI*u?)+W(867^V5?1#=P#<1SQs3cu{288ozOsvT zL)kV50&$OZ9%5S_SMZ_tzAw$Q{2$))K0C(X$=JD}8XXZgbcYDn(l`Uv2OWx2q`*4N zDt08dCKrC;$Lo^jLP!JYF0aFKbCjf{9}3LC=owa_#dBa5yHvBG6K)x2=Ft@geB{f?U+*` z$^ke>$Kr+`z93%I6AEOC^7F)p1_wt;+u{M^1P-9m2acM9!!8$5F&!S15IkxQ54+2_ zGk9p6z@xSh9zc7Os%Nn>;D+EqscrM1MyW02nyxumOz|Q^Du~^MD&5I*;kG_UJGB>< ztLPqH;EqO({5tM^Igv*1?ne((^Ww z1Q#nmb~j|GsN`2eiegm@irS=+1Ji36*^$0wl$k=5x>wa9cY2FNk&AQdhAhmZR46%y z2CSD$wPOjDH(zx(Mbf*KIH9IttadSC;g zo=`!ku2;{)p&skZ67>PlEpaHhm?q3cNN1+@44g`g(v7G$V~1+1kB~=6a_Zb;-Eq#3 z)j-GxKnEJ3fT<&OYy^~Qb_!rK7=fx>-jmZYj_Ipx#8 zYdV1JJj79T(h>|?PH9-<_z_u(Ymxxy*b=*&hYdou6Lg+X_~`DRGu#lMv(}@)#3qfqoV52=)ojU!p zCQZ%j8{I*W@`EyRv!iSAh-5U4{30C#_{jQfFQ{c;-HgDu7kR3d&mg4O@j}3EpC2|2 zoc1c9ye5C*QHl~Wk{}N$1@kisZXqmEzX`muV;pL^L^GzFtgBxv4x481$CK`oUJglX zm?J}KcE&YG&o^M!8co`4aoF_u5vIrYb&dCONJ@wxZ2~7?YdBac5w~h`;vt!-+M+|& zxzJI%6go#Yy>s0*-4hlZ)^XEZIlVgMkYo|ZMKq1&kOcR857hWY%_N;O*Ws0po9@pc zNh%C>Ado6J$bT*<48|!78B9oMKjtFBCIm!@3~(nnd>L7i2*c&$45259&Y6#U7@H^n zh)E)BornBk0f7}2c|=ffN0Bb56k$TVn~vz%fdoc`{P1{Gl`feEDWOoV;Xo2TbaE`@ zg_ECrsR`b|ApLaE(sV>YrFUe;hKfBXbXxc{lU4ClS;~Zh7=fmbO+u`j#{YCQUfDYm z8D-W;KGG@p44ZwC)5`Nx=H`>Rg8-Mgm=MiMr|nXtc{?o0jm=pfKoG#uif?_h3 zj=Y%Q48q4BN!Ll`-qIbBf{vcOi4T~j2GEtP_xK}VGwt%P;WywSHIg$3gv?@QK@h5V z9;t5ZH+*T?Sg;U0U5x06w(3kX_Bk87MH#{NG=7~H#SY2cnkVJ+$wzl{CJx=+O&pl2 z))sXhc7Of60KxLBEu6nhcZZ2mBpWc8XsM^e_o^lO&Tgwhp@4jsZALUq+PdE zDx4KcKUO+~)R5#Pb7kUDsCQQ%!Pit#2ruEg`4b`yil0=Z?(TMX>=E?6)pz_jJC&yr zfRe?kvb*#yvL8Q6g0Ssa+DKDVdE{;`m7gKqVYY;?=@25Xel%quCE*c=5X&Z|TA>j! zx=*IM-H8@Dk|~BtjZ=uOkiLu(q1En~4drJvo%Xff(OKEqtbbt8qdLi{*Ss6Z$XllF zfE8d#b$zl)WXHlACV3->37nk%lV~>%e1HzNv?^WIc=K;n`opH0XPMi+FeO9G*_#^e*xZYJ!CZbb2y%mjh3Go z=|Dz5xGzO6Ezk=`By8ue>S}0=V2VzKDFd$ljF~jVtNCyCj%fhEZ))vi(gnt#HN->oK@CzE1`oG zjlG14oI23p}y)q0uhay zDl`U^5!?*Qt-GLOPKCype?!VvfHJ&IYmTw&hXTihWLqnDGJY&XV!_)%eL-1mnCb`4 zsiol92g){-X24)!d8p5pu)ALbB*9GxPjWW2bsc419{>VVQgC~4kqv$6yIDjVqsc)X zRD3kwuLvJXO>{}B2<=~Opo2~LiO=O2&`Ny_?OQ8Vj_|pc0b=mbmJ48v0@P^)zU;g? zQd|uq7^~b-A>P+eMfUO-K=dOMEi(~dsz1>4~A-8HZLO+1qp(9xW!&T!HGKL$2{-M=w zy~l7-;1G|sG$QCh-IroPZ?(vnKJ_AO6>ydte9B|$fR-l=71pAOFovqclIHmb;gp1I z6BqdEEwBbL)B}+YW-wHh8ERS#)r^)lA;{+}TNtYDoQjF4QN`5eWLk41G)CrMo*pBw zgJAEJD0WJOlT95FHx>0^LBz&Q8_rGr83f62CCn9(PVmSn*ZEwt< zO26CeRAo`5ISz3H3fy{O z3-1Nep^z|IZp*CN9HjJyf$coyq%lOpg|9e)V(lwH+Q&T`1E zjJzNoj?EU`jI2ZL^jqU7uVt!TJNlt8o*IxsdOp5r3IHt!00=&w`2O@zC9lsz&idOt zk7jrQY_+ZV&HMtdTj{%qgCXcMLOyN=!yR;iK5mR&M4Kk~hSwaTG?q2jC!BJ&lwvbj zhSXn-`*N*PbYEN)-5ZPMn>^pvwgzfipUlK0be0qDAYV3ZqkWXlQYAK=@TDAVp;A6L z7^ic5yD>Umyhf-wNez;xk0C#vP;Dph)3s%+YeIOL{A|?comb3xD{OdZfHyqBvMtJN zU{(qac_w6Y`yy5`wRDfv-*`1x9V@Z`t7Nk@M2mj7oe6# z;Q}-d&HI9#aZH|TrW_{&BZj%^P?;Kpg6iz38RA>30|I1PZ`H) zjf4GASV&GrVYZq&r)x3$sm~ELLZz5Z5Q1`V!|0&iozdxfhJlU@-)$;cm=?KXZayb} z{%-;EjZtQypfFZ}q(It9cr0IFq-l!B7VyW|Vq+@H$~GZA%@hRCidoo%kbKS-#+_YQ zZZ;wZP6o4?6y99Rks6x=d?Nk6rbVH zQ#8gnCQ#ngj%+DeFSSf$VQ#sNpPqx&y61|COcs5?D#qkGWB+Y`5{z78N!#k)uz&vc zw5u?<%H2;t-d%n#_1J*Z53%J)#o&DK7&Ep()1S_k|IgOcbI8H$n9fEm5n?l2MgmT) zVyONZb?q(RCepwT5mSi^0+Psz^)a1Q-EcMUv5&)g4dpHn^qe3N-SOS;eeZiLKOYJ9 z;r!=cx2CfM3CSubDrLY_CbF2MA3}YxDG>b3CxB#=jjh3f*~3m@B%Q)RV;D)7eVV<0 z-yoVfQ~}W8^%i>{l5_(M*$eyT0uLW<6w?mEY*^DT@Pv~+^OH{!N6ePg^zCUnW4Lo! zVBs;>kx9DyXj0noVAH>`N>u6ccbT z=`MBa{gV*HrTtj7)Um3K1eWdz36!v8h0;=ISQ1a_pw@JcpVZofh05T2pz2=fOBH9R zJs#&eX&+l<7caT}>5?(Wuba!wPG^Njh=n&jl@1Hc7OW^jdciWu2+DzvwBaMlMzqe0 zPn3lxc3q1>)AG8K_uwooDER;uu{f+^GSgA!Mb<9YRqnN}RQ-~Q5p8JH>!@lW)dbZWtCB>+$WD>2f{cOGHkTmf zadhst2mCAH5O*C!XDGDkXXwj311#!hHdo`ODp)5wFqO9VCzQ;_WlemT%;T%#Y=h!yFJ^i!4QlW{ICv zhlCD?P?Qd<@KFkL!m#z81Lw&E49ZHL;sXwT4gj#iOz^ub)|C1Za0J)VBhhWl(N zyrFU$8(rXW41TWKUDD6vLZ{`hTy)xPOspEIM+B^kwxN8irDdW~)i6k@7(NxF5ma};8{Es}o z(vXtRc1rRGR1eHA_Uib4NXTgVf%t!&;SaWJXj<#`}wgMcVY3)!veKQ?km-K?7>egwx zMRGMifmt&NDx`mJA6#7IgK18}wybP+0x8AMSu4-;*JzJ*iuluc<55eOXlX`PtGy>X^E@mw>3>wHHUl_gp%+F4&RwP0IV)z?rwgGNSX1(K zX5!+&AXQS;6StCF5_||8;4jev<+_-Gx*0DjGz)+z;^)*_REnKgae7et4K?jeq~D^wQVCnad;voE915@Qf=*FX4=Mi3av7^b#J#={`LDZXS~ zg^cmyQiO|z!tbgJu-JS1o_(xt?y1k$F{Q~P-6tG%VmLvsyKWsMyN#I0!oX3d4sE$=s7>>p|R~%f8qjO8Q?ON5( zvW~1}g_}HQEhF-0Z3R%#?n7!9&nPi2>Ms(^wg5Dk<74)vHA>s+2$2AfBf+aJ_4Q#) z*<2n&@wCt(IlU!mLTxp}R5)GUs}TzqNIVoO>19zUe`Y|7k?C}G8Vskaw~kPmhjz7k zpIZ2e;?(tMp?mqnVXL`qT@khqP;L;eG_IZ?$?U`u`6YwuW5NIdSNm|#{lFjO zFVJ?KWEKQC%=o)f#8c*PJ0T0;EB*`y%b|kA=1U^rU_mKtHapv74_xQJFJ_GgoL#8>wP^mqo;EON>!k0&>nASBEf)V28FP#xClN zhgj>h`1%&uEtuhaflV7tpp*Cb0&`3_%Z!6_Og>)<6PTI%_$dt0Zmlm17i3ynhzYd0 ziIUqK66N&E@K+IZw;?*)(t3cU1-u1dFeYnmw&rM6T>$g$vswJIA;C^xTK9qk7Ot)} z9+s9EJ+*jHA4?4qr_;Ig%ja&SH(}+^jAFL5%w;s08R2Rk;S*n4&G}19otK|2Q7EF@ zDt+>NR>7_!ULx-8CHTyDaroSn{~8xLd^S3}*v>j(_T95%#Mj&|AC&LhHWhH)z8gmM zvr(*=LXrBu{SJjk=NDt(2d-EXSY~kn7Taj|rwxRMkzMwqbp%9xmAYIh!-X(SK z=KOP^d;j+<+^955d+;-;4rqm(K}3Pkulz6nf%0j(p%6%l0#GKVBR{R36XOeCL&iY9 z{7>{cS@?Q7Z*;2pmp(O<3ZZ_~{^?X-(lhTK-&w)$RvoF;8_iaGbZmS{x^&s{i4`kX zO-`*|v-Y~{Z^$~`m#w?;rkkhNzx)-qZ1}N_n{IvOt8RPsYc_BB@vXOS`-z`??e_eR ze|6_wJMP}u&f5(53m?~jNAGUuUwD`O+R@JOwdJ4jySv)?IsbL1m;dv(Td9AglYp!F zfAYIK{M|SFE^p^6d3XAdmE7LWIk`SR`KxyKTE9E;X1n{zcD|Z-|Lp^I_Y>`WEqA|j z(C)Ui^Xs|$(!aC2+uJ#(kL3Sxuib5J=ht!fh0ojFkNe%}XYFo_-+k^6>~6E)J?VF^ z@w<1Qws)`gyRUxE?rv-6YpC-ppRl`EdFwAcX?L$|=PP*kkzcX9TYU_B-ez~3{M~2# zyNy1g5B<8m`!Rp_ex0Qpk8W_deBrp=-Qw;2g^%bJUh+E*>z8}UxBJ-F``x!^?7Qi9 zzMQ^%=6CJx=61e}yWe_`-QDExPVTq68~yG*ez(qh_A8&XcQ0$_8Q(p5#O`oyPI7nT zckHg?@815j-QkU2$GfNe?gpQSy*{_sI|MI#KdC~*Y^B%ow70&Zo!`K_?|s-xPI&8|^;(vD z3x^yo%e!0!wjr-jv9j`g%Mo{{--?a8d{oQ~6nBBGg z?zeq5TMqd@^BHS;3-5I7X?V$}eIDvQqQ7*)&W5~k z`ti08*&WXCG47u7StdY0cYEzl(mOmC=C+XBZQ>n)R-gTwUml=_A~SAXuB2~Y?G!dL z;?se*Sg?pTwQbL?{5sZaWC9pf`u~H78Ii+ z$94Ynm#ATKVGVe;6WQtV@BAe|=^OOmyf^yht2d6pGR+~%w1z0t9-@p1EDPW|*q^Z> z>KPxR%#tC>q(hXkjc?cJ^Rgl8Sw2LWi6P3Y7^2L|A8qRiwFWu}HGvwDa!YlbMZ zc8D_94N>O$A8=}mOLzKB`h%z@1QD%CGGV6yZ^YS6e zykdwlw+vBc!w_YDY=|-&hbXgYh%&bhQRbCHlzG(#IQk``YLi;DVJSIa4Y4qKU0(Kg-w=X*CK7Q zp|DT>E`U@@a#t7BP7MS8&kTSc0UCQz{@<kn`yFR96wxNyI(nfx3xsqC$lbYF?_(q~3834dg(1&e0rf{{Tr@{9#A~zM0E_Yyxevr>B4V8v*pWUGF%Q^87&*ikx z*vRDHOur%zg&ewUBYLpk{bvpHSVWP(1mc+Yk9P01;}J;!w-fIl+ek?hfr%Y2r~C*H zSdXny+Ezz!QIJ>)@84Hes;~FS0mpINh4)Vzk@~%VBN)Mpdj%p)x?j-TOQp+iIxBx> zK+0Sc!+QU8wj-NV=`I-;@lyDKh4xTBR~>F>zHH4bHl<4b4BmZE;x#_gm3*$e*M1Ky zA>h|qXgD6K-xGG-oWD<(cD|2G`fF>7mtWV@sr*@8$jYIY?^)BnjW6>jqu^|;Y^eMK z`-UFD&NnI#1-Q5u+*`Mya+b_lKZl><-}1KoV&p!L{rDgZY4L~@=k_RSML-1+%*_Mj zNT1-_`)wx@Tw7RzbI@k&VP2YJOra8#10fAh^ozM;zh!Yq&}Ktt9#7kbG(4m^Nxs-s zsEW2$-mZEHsQ%uP&A6fM(LUS!bbIs;UCAl_xVH?a(KmSW<%FxIzmSGmV0{RVOld8B zbE=83-Jv1d8ul9&XtjMN_KbvcVf6Hf-7uO_TwEbYf(1bLh4OOv+d?jU_2a%eK~Jqt zN+^T}4-u^zPFxDRXLxB&e-=wU{hHOKO;h-dy|C@=U_IPoxuyv$Q#2bcBxu33*1zK3 zSZ8=)mEMM(L7adC9Mqy<&I?k92~fwO1L{4fl>QRyXk&CD>W{53EYxNxL5cR1^LLoMQYoB9v}I)mW#Lli}I2GO%zAIFeRVVA%BE-h#5iJl_QQ@qkf1cA0vH( z6F^0xY8x3VqP{Vj=+=y?+GZ+F?JIf;2an zUl)?xBS@BNt|}t0RB8~Uh7lyi#5zH$2Z9vR?Lv@R5F|ad-E@{F%Lo#mh#;}ipr0Tq zgIHR!1AD2A5&%LOd1(!pE6N60M$LCyJesQ$xS=0!T|#3ukFBVQ`AvKE3aV-4?Kg6S z9}*zZgPi&JXg)LZ_@nIa<^%FfDu>28QhpMPqbxn8sA=rQ27Q|by^UfDkT%w3+=$}$ z405A*J6KTLP}wQc#;4>g?6x;2_wt*|{Rnk*m(U>3LX6vpo}a{%uN>Zk{H4q>i@YtI zfH_+dF31rQMa?2vG@JC{_5E87DQEF>1axWxTam4qv?9KhFi}0Qp)d|l{>tCN5KenvmK>Aa^3}2OX^h(6OJj zZ~LEt!*=DU9|L>-Xu>nh#raz`5XBey8e{5DTJ$kA0Q5Cs!~kKl2OwqwAlOnWxV%9X z38q|wWC9qT8DL~o)enY~Vq`X*mO1)g5EJ_9KU<*ISO4V&YJE|}cwRWI?MOxRfyqE% z`T}Z4LO`v#?=19{oINh*nFdVU;b2%EgrE$|vuFUs@G>k+G|SB3}u&B+HSa;5v=uVqwl7?GMu=I8V`;Vuv1in@4B9B@fS225$?`d%PE( z_cppCJWsvSxgdc_KLK}9UlQAI^%%{!nXO_mkay;`ZV1ooM#5TnUdZcVwr@8kZyXy+ zIg`1{D|Ph~?N}Y&Fg%Z-Vz|28CBi@V4bNYub;++2BcgmcW!kiMi+Kal>OAKkBQ^Ia=J0TnLnA*7Y zLmp+Rgv}Npugk~o7Ui0D$-1#a=h8EM1CG%^7mUn@;oW zk~(Z_$J6dmOC%sT@BAzAch#i#__;2RKB7DI$}$lBn?@l38kima=h= zin}0{zMuqj8n2~CQ<82w5&`(aHs6%#QvuxQ>pB(Tq0_1WNmRH1Ack*m&Na=C%Drvj z=|}frR{CFiaGUdj%U)Q1g6IkkQDL;XS4Y$|$A2wt6H7&ts7hGBHLZ0dwc@tjlt^E6q{PV$!xh~&M{5f^1u$FvUZqD9s+S%!qc z(9cA)$YB;;x54Z!R6FDhT~b3!G||gmVhJu8SUuxzd1Wu5@G^z(>t-*xl?0zDiCmTa zlgw)z-wJiimB2k<=Jc>(aRWS1tyCQ+=SW0K*;(>!s{P|UcP7UT#yLRdnh5b6KrQ${Vmr>8LDhA zHohf+qI8jD?+L$hI*HY9gIwZoGnw|}vLMY}PdZuIT^lRKwXtezgX6h$(=CMA0ZhXQ zr!s8;En6WS&P@|#40ZuAqOlr1{8c_q)MLWBbZCF}Kc+4{#;nw!3Q)-oD zeE4tRcr!Z#6^+DEg`jciUE3zDzde4tp;z9}9)S~ksGPhvui6X63WEG3DGF7 zv?Adf3g$1%nhu8mnAV3-AkY(&50J`D$Xft;BOEqWdCNhgCC0q5ZUR+lp(P*O3B93# zSea`eIgkQNEicA`OWsE@Za~xMl7n)CHA?{3uuej5Q@fhRx? z*+I)mmt1C2EGtmHQZ4|EF#xBpX7YcrLMEc=`fIqKK7Oq-OZS+DFd|kYwvn?Up#Wm& zvW@_!bC@{$u$F?ji8+fv+3~uS592l#Gn8E05oVIfH$-J~#%2H1(&bptypwXAeU)^t z!(1XG9x2|EqrqkhUsi9)0l9G`HUhb@v6TE|BIXPSx-N5;7Buus+UT8KzSR={ShB}# zxhJlbe}vxgAQpr*6UOwDy1FC<57(iI$MZsfHdpG|dHyyNviU+g6VXL;HR7zkD_U1s znCK-vwMKDwt(Bk+1^{QgobM%TX$0x3&XmER+wA{CO}pEx52E<+;6HW!6^M9pWVl?h z|00ygvbDECdt$L4jPqJ5eLBuYv@S{_!)zJ%A|PIsM^4asiiIT@R;B~{$VdL7ge9{G z^oi(Mc?OXFybL;{R0gp(gvWV388>;XTx~>|Rx*U-L#8$=c{@lz%}GAo(<7DMph^3G z12hl-{!2%TB@U3n6!5&zQ?%AYmA|zrm#Km@p=qfxu41jnFbu>`UU{k^Z|@Pw*z8<6 zml3f46CWfImN^rJSk0Yi&Z}=jo70Jj!I)B2Q`T4w~QOi6Wx+tlA`Vy6Mn1Ow#LlI zGz({@q0#;Eaurn`?F8U(*9{!JO?#d_oP2V0uvn`-4#pzun-T1qRLp16Sur_z zG(B9p5Y&Bl&-LcgJghHdE@{6omyS!H%Ubfsn#;!Z=8`KLm9@go#$JCe8!u=sfx_kz zoHCcg^c?2WlxyZv1R(nW^HZnZ^SLA`S~&IYbBWes!6huY!MSXR%M|7k(w1k$=aT+Y zlnXKn`1yAjLq3;z*pbg=x#ybgek53Fa4zMJ>YK~5?0?7y4aIq>Zf+4oFgt(2%)|EO z8~@a>elPcRgN@74j>;!7+1kd|%T+I&Ue-VFO&J1oK3;$RWe?qIj&5bwO18 z&5gc^=#tm4bY2>T5@S(&tsF){Qm=w|02>fI1}aS=eBCtyG)3I?MrKk};Wz>UtY49U zV~)wNgF}ms)FC-`+KQI+B4a~v9g(7qIXsM4kMZ28#N*;r`a-zSLwtgFJm7G@+TR}}3w%~$`}jfH zAiB?Hh+ChufeiRZiw-uyp|%KBc{8Qgth9!WJp$O~;54w`BA)}wuwziOq*%!0Ba-l% z<=MJCl+%?`Q-|;6p;RDR?s^Lj#17PQ11BYke#k2(o7hrlVtb)7%Gt`MI=@BamaAs3 zyepEAfkfzJrp(I9JB{L;8&P8;*;y_IP>fOjFRhP|{u%Hs%+b~SDkyIR<2(77F8Zxl zns5t|c#W0}DcrGAwHvK;F4!qrXuPqI%n}+-w+WC~&Q7d;Fv;flll-?4MHHpQNDEa{ z7}BnL;3Evhx?rl}aJgW#L}TeC(bGYE#fL(bV| zF>rJu`fepNXIuHM=r#VhpR$tYcST2dfzJuYTk(@`|ma~t(dye?@ z?0r0vr}pIUOWE%|#rv0Kzsw`~aQFT0?8|z;EqhMyDSzEGL?5oihvh$h!D)!T5Qm^i zvOapGuQoAX72m-SNsfb&Cz2wlai***O>o>nuD28+FX#%QLmvr? zTjpa1FnXt7L~ZYPl{fM6ex~)G$t8{oZ&+4i)1K-(O<4Bb&91 zQIB>n_o~1OU?#LDod{Agw?AzX(i)O35iPyv@odk(BwIbSg-ijRv*pM3sE>;LV8cA9 zOtd+WC;u&fubW74oRZV zM#QdEDUM_2Fdw-GQ2r+^V`W?oOgK5e-4o-eH}c~AX$XW3+gZ+h(W1eF+@$nqdsPj? zfhjn&Mfi+f)U?|K>9Dh9%1AfSb4@!KYzw@Hu+seEMg?Ju7! zV`@CNBApG*>(lqgL%!{~F*4a{c6BeMX@<*$P0yzEB$kq{@I<-Lt}9!i_7?x=PTp#} zQrxEHXIq-uwAR&pC|c5fSSHPhXg69|)3+$OAwfk`3hv!p@HXzu6k}D0BT!hUC_l;X zwbAjq*HeU+L2BE0Anbt80gPUbnf{@!kjitU8b=Yo|Zxt#~z1!-JpS8w!( z;N;s|c`%)C5#v&w@-X zYx}loTgI*AKhl&Mo56Q@ycBTR%#Kr}1p{YCy{(IOlIPmt)P_-uZ8oaSUEgIBSM=t}^ogtBZzb_c)100dtGa0xDBS;GTb0kA1;a#QEamXDUYtU-RZN`=n* zJ-8}15q$>NKzpF`?bbOztMe&xSIYZTzz!s?@4PRL-1OLC>Nd?GYn2L}pQsc^u3{6> zM{vlB_Y_CItrhNg)f{Bi$&qSQtyX1zHnWw`Eh{Yff)UedU#l9DNP7i!ojrPHsB+A> zZnjpa`4tRaHUax;3Le#5qvnQclDD;mZ`H4~+X9rUg$6&vdOA>=sul;BgL0JyXYj;i zGt~gfEUq;TMuYewogOI7_0`NlnXQt?S~c0mZ;=h2g{EM5Ei~Thxu9PctHlL}UyX@+ z7R^Nak5ReFRazMly@?c-)t~&Jp$G2jp^Ke` zE?9BfvfaAFYxs2;-oeMSPo|G?n;hyc+?$$O#^Su&llL3b-k@u5#yoUJy57TQGzNLb zq2+)vD&7}`D1)`HeJx7fWo?|V_5^)pm?o&h4l+WgJ9MMU3x)oxq5rkMx)gKfqb69( zRe9+QZC65F{GuSv$KvGwMWe$j11J>o{)SkJAzCUjwPZ7OvmxcwjTfj(7*5@D^&&}i z38M~SAhojjdLXHVLQSXc#lD&vf(Eoe%_Y@bs&7f%T~L+_4LWtN^fj1+vP^@kYH&3N zWR zx)|L|7v-`!-5AEuAYIH36~~;TbOx(q4i=Hk4F$TGFVu9pSm>*%k%}(nskx|{i$kId z6Mx2fOA+c}+=_&er9xv)6U%*#!O5+$B^p~%V=FlrtA(0Q6BqhwqD5HERcfxO=9<7T znt)%3CN_Ah=emB~7%I|)ILb9TDAL5WzUJAggeLyGT!RRuW{(NwG%?dG(ge^HX=17= znot|rY@u#W6LZbtR9LZ-q1gJ6(}b!OY2xIjDihJqacgI3fF?Xh%~+tuJ|z&QTE(%$ zrLyC#{;?l#4FWU~{RG!~zzh30k+qHzL>uDmvo=85>ggCaRDv{b*_`Tx@#RX;TuZir zA>$N3gSnPak!ygbwgB;$0*FObfYgd*qzFl6r*)2d&lq#;WPt=1N*3u@&jk}%^t1SU z1MqDcl>d5A;()(_&v=A84cT{w!nYX8k_|;an*@}n+f>7*RKtp^hRyr1Syt4-DlLd0 z7i`qa_E+ML#n9r~A{5R8r3;%zuO+zJ>M)Qs8X%OEkN2mf&u^f?jUzH;zbTuMA{8R`LLBhr2;XWZ5GcCs~BpB4ymDPP&`){^0m6s zw^jvx9wh)0mu;|!W3Z!j@|1|b+vT&`c-RAnOiBR@h{q*Oy# zQHZSxJ8Lvn#Ll|D4`63K$ByO*oJaAGN&RvbY`HIJiB#mu@P86jBRfe{mP|)!$ChfZ zsWWQ}{1omOnpdgQltMwUzYA95ldWX8rvFU4Q$la^R$mn_QF=UHY~xzzdAdC&?dGi2 zTe5opQ5!3`TgIwob0*78V~cKC{j6BYWtGI=_iG4fqWRPVI<&}orHv*o*kCbhs&Kij zQ$ygUugaBBCA-ScEbi_L&CVIq?(#UKd;tF{TC4M>hLbO0-d|!R#@Xzp+7H?W1vVSt5>_ z<}>zfW-ayajW3L}3aU4`W=D!^mIzjDcpK&y#V?tG1)+A)c)_pA9d4^^N#A)dqR$!l zlKJKdZ)s-dOrxPvVa=Z7tTT1-5{nb5*hKVcy@4PoKDcIA`*beWU2)B>n9gNgT`1Je z*X$ZmN!FG5M6B4QP;9|qVulRD-kQC%sR}l>!&_XlhA>;RkiIDw!p=I471!*Bz7Jq$ zqlcYq*0(Cb4DGMDb>O!jhkg!}ra7l;Be2*jMqvE*TG1y@X5e;4%H4vXBja|L|0+Jg z=5I=nGLKhfh)og5(}VPe!rD+bqdEhlnW>3Ci&WGkt1q|iY(7s=gN@#<>^?#4qm3p^ zea}|>h_;8?sw8C20ctj9AetrDw)^kQIBd9a*vO4TTNTR`&FLmL4p#_Ia<#~UgG|7k z>WyG4Tkv$Pi0oXrohocFxg_#nWbBJz&#C*Oj`l2F+c5L6Bq;ndzW-IEA!xa0xU8~g zP9v)}=zM(*%*!Sn1P}*`Na&hIu_hF*8(?bFfOR1GyT+S9X3jJ=YJ+;8*v5KIY6U^J zz<>zX-;jTdAdi>B<=+| z93;UDMuJA6iyBuLWiIoV`X*H?s37wfYtqjx@TTaAAReFzJ8XkZK2#KIV{|z$!6f?R zna#_I)7`9N1qY{2kri@99PP6Lr3lfI9EWOyWyryjAg;Rt`-mnl96y2nX%B{Le+}Kq zRl^mx#}%W7MA#;Bv^|25530bHvYrzE-3MKr}pmE3lKH_3Xk1X#Wgba@F% z@z_DJO$`4~PN&?(poj*ePhz_4NiYEtuG~+jYx>UnBAu?8?-w!`ozjx%RBb?~>uSSe zZ&}3Dg{|0M)&E5kQbgevR<8wn!4)j(HebCYrEg^9m?{XVI^Dqkq)oDQIa zz6wig3l``0O>T;5dD?w!gTuONX%@hWS!&)FLz*h*Y_mCNh|OrUvy4w{#KNGnseH7& znIQ_pS0UHr7JTu>AmEs@WpT`T8kvZW`|tf6b6$;&$1~-?F%4NoKdYuNJ8fMKb{{zA z-y40O>BBj-BDH(E7269VVdk{aZk$F56j?pf}mx*Ob!0g-!J`Wn{a~u>TRZ z%&+=6LaB^baW!?XVeBcf7Wk9jjILO2HfG$-P`RHoPx0a2zmy9U$*9Ef$B8JS1;W6{ zRv{$_f1KUUM+9U$&VKh#iM%8RBWoSO9yY!=s{{pUoYj+evlo7#bV6waP?*9*qLw{t zm0)ApXZ#a!39I%A7s5njicvE=W$pMR{UY1Q999@EvTN7}g%u0e6xTdO76Fbo3m%~5g_ahF?P7IWIy+oc?#1a+!U0!QiKdna%s;2kG`Oq=o}~ftwq+VP#S1(f zgP=6C^FD5A*6cm;JB~}F09E8*!0XqS=0JUp$LD3_<&gqKkB;W{qPpgJDS)!3@4xV5 z_VZ8nL@>vw^!9Q9aIFjAMqh857(9IR#)s?*rCZr~FrN6Hz_m^2$fj_=#M$SF)>F+Z z91@@(Oj)87jG)XIXAsP^k9exhjQ>SzQxJm&n$6Ifmn;(q+rl%MB@^|LL2S-}J;7Jr^qZFR9RqBx#sD;_jB)t7jY5WXA4O%q&65;G!P6lJLZ zpQ>^?=uim{@@y(vhp0-=ZehX61;qj2su|&T4T=yGxwlhRSP=1{mdb4$(?C(bguB`d z6RKI03$32DE#S!zV>uohL?lW}1ZCCicDcPmJ-?hYeDR1LJ07TB$L!)x*QKl#y$lT* zU<5u3_4Zp?XZQgB?xG2AY=L}@cLJ0Jwc4H0g;ce*Qw~}{QHWWbaV;7nhIUI@i6nT+wh^R97n0>pQ zN19I=L1u7XPW^svI|H$JV~5WYn%rWe%XVfzK24B!JNxg7pybNG?)#7FeJ%S19(wH04Uz0+#mh7HkGs42ABLp9TdPLf*~j49wCAIBXK`*K;vm`ubAVSpel*6HPdWj78j39tv z5IJz<-*Sim4TwZ0%DTnlA!tXzi`4JlGihOxI^Pr`=|KN}zh@GvP~PB5ene`#_c4WO zLtcuJBm`m?2|4H>w*5baEGjRRd@s<3>*qS@I3IXbOjuCuF4jdgwVA1D%`LK>vzM5Z{4vVoy5e+Q+fessC z4^mnOR5<-kA?8GjQgN4qY)i0cLGYJjA4mw|{fzTJq@$W|?a2%J1Yek13rufQtc9 z?ug_Zg1+2=03wBS**{JLHzS9<|qw(nwk6`P1Y>}sz~chFC*K12?d^N8}M zw8Uz5f-d#)Q|fn4{b%QXj!Y7?eWH|HK&~7p&2Q>N_?ROV<${`c*6`ZXj#y(gcB1kh zK1t~L>v42==I1bINP?{>+FmLZgF^AM8KxF#ds%Ixi)X63V3_*-?Y<>a&93OX)3b~P ziC&9Kg}{N0OO$0`5D&{KH$7Qxm-VE|x}JbfCe3&)l(|?E^E4qWQ>04Hg=5L*P1ZN5 zto^APtR&(eKQe2BFv$mA%}!!G1)!$*xCKxINg7adqFsuf&=X*$0Oq(p12Eo#92mkW zX$1=|`2zz6_ml}A%WB`7Ni_f6d7b2>3~idffNwd&I42ySh0O$Lr_04P zZ5ZDO&{|=KR#6$O$nuu6jDO3(JY^iqXZNH&1L_Z-`V}5W)Dq~1G)ANlOhK7WJL?1unB_ zu1RWfJwWNP?DqTd7}~Mz%N6%^!)3MYO|8o~S92a>yW3XoDxxeMGVln_1h14rpR>OT z#H=T_yA3r=6NiVjX|-mcr15yFItIAdvz4(Xm6T=)qUW!ewJ0^ksSiUTrHd4D8`vy0 zEgc7wppso;omcY`dE!vSXD;wb{FaDJXwsS{9OxcAKw}Dw%+01f~(_Qn|aati{~tk`^=D_uvoM73l(lO$q7xguj`C1hs>bv6M<%;%2% z%7WiV%aXJDmi6R%XuJfh4R;~w45^cVLhcbk7`u+ibA}$7xN$(uN?%YuLorM|8!&P{ zVB{PaS=GBu?l6M>QLpHmfF(YycJZ`E!`fKKW9+yxQnjrc`^1j%zC?f{{3S z0*LedY(u(L7jF|UoxusBI4%e*wcQPXa9LB(lC0!$E!>KUv<0o;z?X7~0Pz<@T1iY) z?MwQZNHdy3q-m5AQ7#RGNW-Q#1&qbl6=^1+#D!3l`70NQtH_A75;=VM=OS%IpIIcU zf(mY83r)hOR|TPFRZNg+jwH6U9)X17I#u;wa^d9#C03wDesJN1P|*)CvT-DWP^u*L z@Ts!2Vexl0J1D#mTI+%ikHw(yl7^6(0OHvbUJ3`1@G_rTQD|MY#d~E!|H5EnwERg)FiW?#q7UE3tBd5dJC;877$tL&Y5<43-rOjEKIMRt+u=V znKt2Zn8`{g&af}E5kYN<)T@-1NS#t5yLNVbge6L@5I*y5if?EzMCP@#D;DtA*8VXm zsDI)X1gyep+UU6>on5{BMh3&0YOe!Y+u{j#Nx%ZZhCx7`c)dL)=;>;D#B{y3MB6oW zd&?p3p5F{86n_9nSzrx+>dR}YGKO?lZ744`M3%Q!Ns+|$|n7>eWOL9l^oB3wS zJ>N|CV+slx>0V({;?p#lTb`zhyO(b1sR3Ek!ZQFSAtWINgeZrkE93Syh8mE(#_&xq zhsxXX9tI*H`AM5gd~|eZe>oK*(w(^0WlQZ%6HW_`j3rQ)WTF1$)p}<}!r$zNn(20b1@t|c0dLlaP zu-+M9-QloG^$d9ioDi-1Or^vVpHD`D6*-*E z-I2_K`vawS_E#3hC!&7^5bcZ{`@NdkI#3oXK2fZQVnMYZvud)Wg^Z?{Bm?=VqEWo`mDlpBjqE>|nB-FsL7D}7P^)cK2YiFm!$Xa1!i+v-r#^sp_ zBa>Uj?zXc5oC_mc*2q51$d!T27KjUPWl%4=9 z%;ezi?>}4yf+;g+aXPfb=&LRg~(#;oOvNOd8()$TkHiHaJDae2$tRD?sUPB z;LCP+rze9$OK1=vXA5(~5;OzzM>@GzJK~f_~QKMuUQa<30kW>S{bT;`A*q zuGB8BtwfOGxS$f2R#{2|ZKb=OwsdoW!e&W3HHF9(dbpWDA1z{2Tx1G&>@P!-`2Na8 zGG#c>GTmsXUR=1DV=opiZ&l=w0qXG>=grO9Ub8W6U<+KqW7hwV9*Ss`(W+Si zu{I~lF)IZS$F6Qu(=5Q-usH$Afya3pfIneLMx~eJk^4+1pp1IKo#~En9|TZORf)7DJ`9eDJExJC1Wd;G5+T}UFHbFpzM^vI&u}N9+76z%I{}_j9ZaPX)7#vR3{=uE^ z>)ER4$bzcaIsu5)9=VZ)zJLmqW_bxlL*!bqVz1JrzDmLXODYVEwdR!oYlOV+-BkvI z&~Xm*cgg4k5^b9&M|i^_As>V8sTA_a=TIOSmtsqHlE$PMd3fPH%W6Q58~G`?27-EQ zDQv2@+N-z1{>25=x(t1^*QJ7z8F zG%dA{a}h&-ZO*3GU=8?YBukyJ-k+F~N%U!k(RMK={EyKQ2nR#Sw$P!VfflIv<&j#^(1QW}1)79e1YVxTcq|eblTVM0J+#B)`>b{%h;9%iGkc>&Vmqy-JB6TG2tTbt`XXZ4Gl~hTyJ`eO4~j%v;mgY0=j#2Hz9nS(mkxny z5pqY(ICmvwS9@;KDef+Dv&S}4IRv))6@vZ~e>Bo<>2~A;I=Q?N@T)mYh-|J-hGr|# zU0GLaoK(_pTn^J|w2(MljdNFIO6g+#nDz!>@_H<&6bXt9A~c(z)SRmq*ImzT&4^hB z%XKXwt;D6ee7Gw#B5+pKm~s+nc+K>t+|KW7Od2e9ez%DW*2H>fVndtIQZ&tHaLw9+ zCD(m@uke&!7$n@azJ_H|ka?zVHBS=X8kX}3J_7105uyy*#1*L5ugCS|rwxAM;wJlT zssR8TILU))3mY~!at}6NJon%fcXl_DfBo%PtpEB&T&yDKt(R$W!)B8_GdiDV+Dqxp zK`NbY6baglOo(NnkrVPf*U6K(p+SmaEkNbNEA|7K zxWW&X7(sLo6_Sag(b<*W@}s(OOA1V1=Q2dGTN<*lvNf8K^KkF65S2#T>tkKG4LIy1UGJ;>msOG-$O*NJCYV4Nyu>NU{E)3a)Uy~zc zF8z`1rp0&$t0=wYo|x2FVGDppNs*PDzDe3Id(`dh96kA}R>@`6kOrZA(ccQ~^GOt9 zP2WGt9xEBWSh929jwL(y9k*m{$M{K23bH(N4kkH9hzFHqzPZ9Nb8U zR-SJoeWbUMF2j4vjr8kyet$;Os(ZIsBU2+>0QNQh8+Fewy{`4!72L>}Z=K7_*)qi< zY)bDcZc3X#H{Y*DlW(jGdAa`=wKMGNv&(-S|L@NXPCt<#gInyDGQPOQ4hHfqc8iBQ z*muQGzT2MS$t0pg_jubDdsUg_d`!W0YaHxScimif}>em}PxlPZaNG z_2fNy?VQC(pC-SZc16jg>_?dt%-Y=*wM|fZa>kM0KqG}9L){_VvzsrO*iXd}p!X;h z2x^99O7UV!{A@q6>Nzdv#k`b7qj@O~=J!gqiluBS@i8`)9UjQtp6Pj_PBc3;PrsQ5 z_7-CC;)!UgWU31p_Z)7^axYjQDkYO7A0Jna-4$KU@q%ImR=PpMCN}b>;r}E(inHhB z>Z~dz3{Ex;1pTGP$wzhHq)$wd$lU(0qXIBTnzWSgPmO`y98^Tx)DFsNm} z`5!)#WTMuY=CS10ZpuR_%xyjgW^}7@oDo0-SY?D|v+H{$Q=fG`Jk}K56Qv}+Zxxm6 z$w`3&l2K=SP%KaP4aZH*h2|JQA#s`}rq585{Sf)2lMm3>7NK?=y^UTwM5?Rkea=~VB2#d-ANt#8w zls#z!LK_u$_AbtzWWZPk3K}G0_yiCtVtAIP?L_K3H=6yeb{!i?q~Sep&z|z_M-`dp zAg8(LIgjca797tl%(6LEIgU$F*1{l7EvN}-YKbRXl;A!fnte$c+=8}fuS>St0kNIF zpW^gv*eX~yc(`Ph%UepxduSI2^B_b%ne@2KBHWV10zyEIPAlfK(6@7;^e( zej$&M?9)U=v9fUEhh2@CzLUh>;B;HtQn~@y<|4a*p^24^ zo73u zBj%2qoIA~2$PpIZ<$(kvOaWlZwM^Gk9}Qqe-v?QPMm<=gkS}XDPSX*SXW|=@#VLofw%OMdqUx&e#C@na@(I zGh|~P5-w@U>5p-r(Go$v4H>>&G+QD0X@nT%>AWHcuhFh1>k3bUGnio0eRnufjkSmv zr5Xh9amx_=Ee|15p{auUT5v0TQ*od|)i)Kh@UvSQB;WR!g`XYNS-*8*p+*k zvl(&nFx!@@5n`XQ3<+iJQTOkeiwB>DI5uoM{R-8QS68TrL6+Pu&r`ulkpISkJiQecd=>o7*t zGT2RFL3DLHA(=#(Sr)u`G=RWq_zd{em z%3QvO?y7)Jr2zQPy5x-$=SmrAVZ^k3_M@fv`@)&)i{Y}r;AQXJbEwR*#*_!!^g7}+ zb~9hE-(guDqC$1{Yf$XD2HVpRIetsj2u$o=6vO1M;2aHy`^H1_w z_aSO#s@XoB2iA{@9Olr>TZ)v(ywt`f)YzLPu{)LIi*}6Qk%8U-QD+4#T!$$j5db15 zeq0kV_7XIP@-bCMZ=|KSj=hwXLE;=gI^?CBp>*eaUKPKM@%vF8rkJBegsPSjZp;oA z2I~Yx@>rh%paIL$ccj^h`+)-jX#rA{2PG@Gp1|Rl z%PEtmTb(gHP@NWR*=Y#}I)@W8OMapua-60Mb{*-!{RfY6;99_ShJX*}{g8&miJyA* zl6UB?@NDlpSk&Bg&VQB1vfJL#vLq)%cSS#^lfoR;|2KM~*%J&5$`HAFa?WH{&k+FP zToNC%c?KKKGXOYRIq8W`=?8@u-^_7_v2ng|_ltA@24{YJwQqIySt+2!t=A?`8hoaJf-uOc8};^D0MK+37)l+)Z|Gq0KS`PZe_6|`}F2d z5TuW#&wekU?h)3vHOc^vfSW(h$MtIoaz636H-?#~y^7nK$X+ot!mSNRT2_EU}Duv-bPS{;@XNWOq_!~!YxbVDsl<}0M4{`j_9Tdg_ZJEvXUT7iA1olXuB;v@ag3EsM zkEtyA!odlj8=t@4-P)aI@=>8)xftw*ZBET=TSBG-vtOJNp_Dh8KxKRgBLumkEvC4h zd`UCXbh;rftk$`wclw0IqLY6eKfpEfCRz&9V}x-}Z+@Dhi6U;VX)XtG3j_ub_@wVq z`tD-TG0M%RP$GxZKm>V(IAz6|+hfTbm_ATiuDgZL!7GM+knLHzVBBO_5YOG31WG>t zrp+Tbse%$vSIELX|H4KZC(3nIGs#ci5oZ-ZY*s-dAT;QE)2tdF z=$lzP==v?6S+J5KF}9ppQ-83{hl`*m0G7E>K&Ht1y1X2r3$CdM8= zG83%0yQ>B0i%@wpjMs~)$CD#Bl_NH5qKLozSFJVl+3zV<5Qy&k4Zc%Wy509X4*^RQ zozatZz9_RAp>W!QLB3w8Fi$7nVzIy=7CFPZZo)yZegonGIk&ZVkOb^wO)r$~_n5xJ z*Qo=cNc%-${kn9%zG<6A=Z+NOePaqUiHGk^`c_uDUxGn2aS0A6npi74O?-zc3Jj32 z?c~ef!4v^}P{f!2=}`o_QMstWu9s24>*d1`L_OVyZ`W3g&gM^vfr!0x5>DoaY35y{ zN#@ox%%Nl^&$=Zmkom-G>9V)*BqTlgGca_ZG~@Rw>-e;Z>`z>uO9qi`1We{27Tlxy zLz*Zl{`xp=?mlTJCA7=O(fu)9xJLt{$SnqvZOE31$u-o{z!+LPeTf!<#(^%KkECJN zRD+h>5EOj5=4iHHrtU5@Dd2^xduy=iJZXHi;0aeFid4;CVB4|A~^e z7dvFd+oOvrR}G4NptI-kk&6%;04{1IOX3J_AI| z%j_!P(}33ZxqwfM3BzXtY?y&1v_cKvDEzn?XhCPh8;Nwv6Ul;|S^voWu8`~MA zOWJ~H=dhGm8-qkE1vgM_N=k(S(dHy8TGeR=DEAncbCTuEbRb#bqMu}kM6xoT%XXzF zm(MFst+&R9Od4qOX(6D=k}N?_^L)3Q-aWjG4pP*77bA;cL>}eQ8>56<(+W^RXO9cU zp7S9IR=rZu;hrDquH!N&0d!)+SPER)ailGyjmweG3Uu^4nWb6^X9ADHw5g+zYm&KF z*z{~o_A*AP&2}AZbf>tp-PqI_mh?9KAz!hHUU|4vXH-n#xrddmj=i#nJ=ad&#z?Aq z+sNnPHP%B7mA&+^4mVzuDV#h*`f@&S?BQWzjxfXAoSr3^P7C)UJLKCr!t|Hc?bMsp zEu0EX?Ws3up=L9fZ9LAF``jsKba+bExuOT%wgYQJMe{zzx14Oy>_l{~9$W!+9o8^} zyZ~2#n(irm8^XCl0-3{l?g^M`058bL>t4@20kZn!37E&=r|=>kv0xnFTrs!6B574+ z+$aB4qMdfxFn+i*=n0rthr#*4^^ZMI062OcPk<-DkO@R}7Im6%xP;t95>3fpIhHk5 zG8boqpMghFecm`q0O!%b7tGilN^eR2TfUxDwJVS6V)~sS)}iiQ*46STR$AixV0=`I z74HBG*gRKahPtAgwSay3rrZs2O5PEykSPW&H$<@69eDwhU<^H8xDy&dp1`>9f@*cSVZN*W{Q(x)CeyW-vN2Iz6hesL6e0>K-#Z;(iYg0qY8 zclV#krXtBVlawvP{&~qKWMy*2sAI)>{0r2siF*P1{Eor?xvC1 z=xXW9UMt3U-_%nxbIbGZdN;8-3rBUj6z^BM;|=(WYU$2nn(W#n(qac2IYWCUX|Ks( zcD~J&8obRFu3N5F%5e#retFh-ZF|VVK$yh^bN6LYR!WDHtJ`UVwVV;1l7Fd?@}m2t zmeqS-A~K40e<}6Xsr7zgtD^U%RIF3Y3dJHMM7Onaf1LsZaj{ORzfPew#r+goD>Ohx zTKi=H0eyhwWeghwP!`5qE~2JV1gsC8eHiS6zi-T?Vrx+mopJG(K1BBoGoLnzJ(((D zYWqgk2TR`s_6?>F{yuEUwHUP2{mljF^%IE8`FqQcjZD#szr!;DXJy6YsGW>`nw_`tsND{95$7w-bzoLdX9jq1emPkxuP(TG(mr zna(``!g{W2J!6>JdTu>~ijcl{nox21>hFdBXl*z4Ocs`Y%a^_v?Hs1?(oxz9OrTpZ zp|W_y5P!qZNuizO80^Ap@fs^=7#6VeZD^&PB-=^$tDKi~MxC!p1I7THM8m^|n53*_ zdUen4HgO$oW?ySY7(4pf*`|00|5?Y4RbZQb)*S3aGlnhh;z1nyj@J^?!>hOJRk~wx zY?qcPEZnPcI+_M20~p{>zYM8C^xEwMzpz=H!wacxhO`T##v(Aesa7_+Hirn`VQ>Z` z&a@_P7hQW=@`uU{Cx6Fv*(flnFu!;dVKj^$ZXsSZWRP;h)47xWl4_*t&}J}P2zF;mcvc(GjzY*)HlI+5`f=L37h z2YA!tC-!qo%7VXc!3TB&DDEcK0o~K_sGia+>SJxOF^Z1jI!i}=%as)(V^QH^T8=HZ zNXZOv zr>(KJ%!{BaZGVH!o{*k?mxG~AD2!;SW=g6Au|@i3OxH;{9%dvRl3@c&J>AYsJj1hd ztdj;(pL>`gC+YUFAp|Q(`7SVfQ+g|O$cho#d3O_S45i8B>#Z4jv5hJ^)lM8LqR1oTDOZL2=brd{?= z^U9`a_PJfwG&8psd~VG#fen(+?KPWQO+b5Ww8iS${#setwsyMHh@Giv#QmXZw4Fu1 zX-qJs`ZLpqn8wk38YNJ-Pco4{+D6)$1cwa&!lNyi;$Kq5=K4QpM4Z z{CI^tiQ#9Vo}Z*=3FW;XoH+LCM=*b@*#dYAj;3{|FO>W#kU<#a!;_f557TwGubX<* zbSp#YQ4@nTYGUkLQWL0wnjAC(%j|8$l3w+YFqVobHEeeA3c5$kmP*5x%BXHD0sRCw zA!d0*oto$j$}sD|qI_QuW7ta+IecBp3=3s1H$-W&Y&K~KwLwb5NOAqI`;Xnj3}j&k zW>JOlZn1)E`Zi*Ii8YalMDCiZ;XBa-87&b4tuS}T$WkMQUrTSA)VG?oll;SW@J0$P zUTB%)BcBA&Fv$^2nPS`Cz?#Jk17iyV8r$p4q@Dd(Z%C*s;uUjpI?c)_mGd>lfr1+6 zYv!#|Mo)tq4zF>Yq>c`>;1t4Vg?KVhH6Fzz@R-vB8YCV`LxQyd;$#OFGO0YO`5@Fq zpwpWWjF^h<^f&Q>ln{aZutwh&L+BhrLZtVtVJ z3e#JWB&NOAyK1Fmi^&`a<`sM-L4>3Z(!F82=w4%)`|&0N!|d)Zocf!;v;R_yAZSAt%5Sk5q;7pb+A@Oy3AwIb4$8*jj5C57>|cL zaMfdDDDBp$DW`MtR5l6kS4%_1S)SD|L&aJ4b3H_d0McY<8&ksx1a+6Btxo-ZLgQc| zxZ>)QY2%0U5p~*=#C2>6`~3Nd71}Dn0w+2|wq`E6O%)z!W2Cno$? z9-%-jcn0cwGaUDJ1oZz1ET<7PBs(x+)|7ZuJ%^IT0%pv`WQbv* z*WA0LdjLC$|0v{#Z}LASc?mpD!XT9F(_`K!;T`Pi0qg~~Cs}|VEpR!PZ_{oQ4#@y+ zEB)u`zmUE9T`bQAH~)!}_A>#zemzuhQ~G^kO#GtA4SM)~c@ht#2USNo0$#~BLa4@D zuky-n6=q6|I#6{J1yYMESdp|aN(bARfBt}A^(}+O#gX_xu9M3l*b!bS*x{)3qtN3v zbWBTzT}vBpkZkVaG_c%`NfSc|DBCTR?MZjTQo}dL6&Suv_`Wy2ji16d;d{jKy<3V) z#Et#Wj^Z$oH&Jb)^`X_8yD}>SVaVVMEp>bhcAs)=MM6`njGasm> z4Ibh0nX!9Rjw5bq!&{F~9Q(0{v6#_jwRzNyx2f%wxOP{G@M zGPXT~Nh)h}>>i;X+UU)IX*Zg>bCSjwl*@V&les%2Ea*ae4M-MNWI{<4 zK|TOcgq8I%^!kRh(_6`alivNhJyfHpY*49iE%;jtiXR;da*5d{0#=ia>17rWO>!Re zk}!^HycRHj!7+cqQNGrXc`Y%iNesv;UkQ~rLgjU@yzaF&{4tkP2OE6qahj-5^*E&` zBz4s*UG>to<2jr>wIjd{*JVs5Cs?{t!3jKp^k0S|N_`~InoL6M^sYzWt#oA6rC=$%ylha@sxiZ(76{C;E5@c#1JQQ}%T;Z^kK$t%T9$J6LHTAV!xl{|z)n%AKsBX-SI z?ASSYPkyN&uPuDv2^Lx89ucjsHR)sofcPUPdzY2w=yNZFc^zu3gk9zZOlxoN>}0>g zgtu?^XgzjW$TzlEW4wk<4d1KLH)H&oz{uncha_Nfwcg;mf@CYU_V@c6u{>?jt2}N*F6q{aG*Be{67u$jwghSjDbz*Qt5DX(~@@x9Nw&7>HX}OY= zOzMYM`A(oVyYEP*cfdD^RC*Tu(&A+71Uqpi^`42dV7|9yPV>s3k%_}j?h?CD^XeaI zNFcT7Sr&}#yZ?r5=E*eXVrMBioI}WxNj_WB9*Y4$8N!cXEfX1lFdt6dN7z9&Z{|TQ zdC!gzD8UjTY&Lms;k$QAtE@aS`PlwEHU-p1dwEN;Sr%9p*R;XR=S4=CML&2~MCu*% zV2ib=KgJTKb*i$_pL~k26pje>M?C<{XOhP(<>ZmMmn9 z`1NFF$C$j#H`>j$cv;d4j9E0JjBIaWAJ@`+9W4+KSulW|`!MSRVQ={jX_sOPx?z6o z_(@;z5cd=W5T3(st!AI)ugb-CKF6X;E|He{1F(9|6~}=$+-R5{v}uzx81uGa7no|g z`eNR$A3kK#^hJw$gX&p?%3W)>Y)vUDMeoqT5b6tr z9)k4FIMD;OeM8Fv8_kK@>R&(3?gbGaIcV*SpKZ_$-3QBZ7NGp(b`w?L@phi-oMsnB zyR0W7#8)4Rb=zP!^SB+$L9D=@IENx0qwvJ4avyV|j1Ri+FrYvApe>oTfhAMd zsUFqrJJEv&x&W;N{e{>~2MhWjjQ*0017nZ!8k)%we5pgp|E9Hhyz%v{Oo!(PUP5K z05=|+<+WiM8+Ikz;p8k`-H669j7IQ6d+aCW>Thy{ zjb3A%*TT$R)e~0@7cJl_4Wr7Za=W?n_#uz-Q2CIk7u|2%Pe|;QTQ^RG=yJ-1j89cei1R+p|wpy|HkuS z@*hTbvnG+v87;yXzcq`(%zk`_fq?MX$)Ld~W5FF$IzbG5J25c_7W1|F6Oe`-krBsY z%RpDKW~XDyM@}oq50VrXk2T6isdHmGW=vt71!R8wP#h~+moYBJG9!L+2OeDI<@IAM zedpSB%5}m5!&pxlFRaeI?+JB(##?xbZi-rAZ z%9*C*xe>*LYS+N7=LMZy?%qAxC|`s zrq(Mi~j8h|dLJV=G?_$|8iVbjpeFlTar_TAvUHN%@O}A5$HlNVEG2p%c zIwqpohi#9bsp@QJh~t#us9c{)E1m74_v}yDl-Gr|Ww|l&QHcMVq!cEzgED0G9V#Nr zNEwfTAW}fb=SbLNrj0lPkOl@(*4MJzx4uq#Gt%miiesm{|Fpz#8X)(|wkK-Fkgq8E z)4r(3QRjicvuKF37-_z;mLKk(RJCn6JL$}ZK;gjZJiBQ5Hq*S^7WoRB`JsG;P5n^5 z!p^BM*6^(RF>GP;h8S)18*Rsd0ysbbNzn1eK@xIj-z1^SntKzj8l z2DTLJ+$r^SNmyeUL^I_a*-o;*CiSE2cxS_9xZk1Y(~=MMGx@;)cH`~Fc%8TRA7w|4 z`<9(m1Ty0lFUIk7v9>KvB;J^}+2rFCaq2P6K&q6fGn>u_eI06>wTqXmnv(M30$eeL z$=H3W$V}a@n!c3mhI&rm4A+xYv#ck&&RIPXPUJ-|Wp{|p!dFYW2++=~)w7e&ajo9} zPHHlXRO&ZTuQz5cxbDk8pc_!L)z5!W+gcJgSjEJ2UEl@%nbMqbscbgAUMRtB;n{Is zbW3dT;>=%K2{NfzE8GvBo#mC-x?Eojg`r;zLtG0(v+GzH>J046QbFJ=6=yq14tB4V zJ9!!^_G?VP>wQ^wZUS$lCu&JC<3tUoSLG2P@uXnY*CDtvsD0Eh7Lo%orMW@)@X zzMZTY_I4tgA`AgLX~uq;h~DL2->#$HU|fKW$Bz(WVjmBboEgj8_S;YQl+n}W+$rBlMw=TQ8_l|$y%olxiAUvR1N_CzI@eo%<%=V%y1mi z&NGO#?fzHdCTbeFQd4NIQD0_BJw7k>99eF(se1(k9y$8?DG?84*OHt*|YU&ER`5{{MHwsHNTHu-`avey=)HXcxV+a6b-0lfPgkk;jtD zo|!6y5UqxYMj6#0lIU}e6E;P)IASD~{Cx^XAi9a@iCgEC~a zBIObbY7lRflPF)8^4BQo3yv8+;g;zLS;$9OpK@dBFD^}tm*l6+`EmKWcngO%yK<`~ z2U|T~zvln2smQNaFsPl4RA~PH9L_QIjj=Nr#72J06YPs1E#)H?*F$yOA&yHmY^!g6-i*2GhONS65tLJ0-=OzoDLaWQHo>Gc<(1^b z*Uu+y!gE}MiWNge35SXXMhw%wsP*Y`TzxXurQ2&HPpj;U;6LOl&aX$X;FJi1qtwCv zg-9@^EwfWCjrJ?ElM>osrjoajEX3rK;j+9#<&>A>N?De6@3O8ODBa$Pm4Um0D{%~! zNC|`XA(iwC=rpzWoQZj8i+?Co*IYUp=xZhVj z)Jry%Ma0>p0-op%03wfiY|PKzuyr6yA4;k)Ys_LAx9%TEvF8~RlCLN#uY91?m&X#r z0A~U*dXnmqrLmO!OhgYqRmE8u~r4E zlKpTI70c%lTCl8CGpr_2mE~PS>x6MJ(rMoEJFHK1Wr^6P`HZJ4J3Pt3-B09+GFd3I zC0ypp@i3~Zqu7MdmDHG6);~-%ZH1gvQ#i9#Vt@QjJg(+LBipb1^+pHW04qrJB*9)@FhxGip4BkOK2t|EX_)V(*V34T zS(p{D$@e>9E%~ItH#94nU!Rp~vJ@snfbB28voldRBEv2&i4FjuX5O0QJ1AA2^ZnYL4)X=52nb4(qV`5^p zh!Uj^5(|@A6-Houn-(8Z-`Xul*eL?sT2bzaH3%JToWH$6z2#N$TODbRILnQjD<2$O zCmlh#1YwjjLZfAxm;z$6Pg@XzHJkj*uyAM=huCIA)Y0t`PRVXg@>Ld#^a{;~p}U9p zP@Ld^k6J@E1LyQ%y;qbbIc}l2!6V}iNyyG>DLFn0)=i-aq7GHDsPyFm?sQy=Mf(%p=gK&kSi znzi;0y2Qu4>(={4)gzH_s3$(n=CtM|ug8xMNF9I&qYnHEIUPLXbg-F3+UT~G9}8M> zWI{hrf{VM#6kBmzaH&hRA{YAH^eQ07B@W$GLLA6YDoc3DPC_T!%1$a+NnIN$`5BH! z$^#~eaBDF!IDTI7D;5s)hnlr+V+>Z;mI`3RFw6S2vR~hPQFmfub`jnAWN+)6&G;_ zQS;1H$E2DnQA9_jXqj0-$*m`U35jtNk|j#FX{5j{K>Y+yoYA-BMHAhgZNp`|;Zr7t z%%L>ofQnR6hSH&l=oa~6tW5!|wa0pL7G?b4Nh>6NAVmv|ShxOBCw9%Am62e9Ori+F za+7DP;NLQcwM!bN8l>qVNi;g9ne4ZtO_y3Tjkxw?$-Hc3XF?R@Is$1) zS`#oHE~hf}ZCG{#28;jWciE=FM?Qj@6HCpB?pw`O!05jJY#+tOK{~7~RQb1cQ~TVz zUKUC8ie^`Tj`UA<7>4!wqYv7}0`UJ5 zcb>$DK^!La`C)t_7U%K)5t_n#Q>dYM^)>lJ&SG)V*&`+wjQnpVI_qMW^ z8yb0BAzqP7VbvoDx9|;xx9|<-p5wuS6&59n7?Qx5h%T415%mCfC#=5IX(k(f&^8|p zr*&;KZF4CCh*cj7fDqhg!*Q^mkWmMJVq9rcdrUf1v1yQX4U#gO2TAl9faHTb6Az4% zP?5s8wivV11OtYsXbKL6kZB};Nj%Ge(zUqg;ZY%6_PoYL*hI9lZ#L2>wY!nw-Fj~b5zBy=HI9j^_4JSbVY3BIlgY2Q zgAZBq9m$HupNS2;^X(=k=$9pm^fM3gD`}YZRYoi#2eeXT_ahiPNDA*aUs$-zT2m#I zX=9Bbq$WE)s4{*(N=?4&?gcvrz0UXqx`9F)NdKy~Xef!T;Q;32v=MWfsSL9dEQ|#{ zYxsaTYA|=EWG;5~5T%O#CZ< z*=KS5S0^W;DEpH5+-@^pkosxe*yEQX?Q=>zvgTU+sYp5lJ8A(xaQsVWb8LMMllU2E zIYb=TznwU(Nj1|@FuoNCK-GOzjnmphlxkxY7ml>b^0?Lf5`N8)GX*cNbb>}=G%WsR z7-9LpDo+@3_HLfIrnxY# zU2~!tMi!K$pC;^aOZXC6(AKI&@I}MKyZVo3dOwPm?ME_O>P|m|zQiV1OE$DzxSvcuda)Af;@9~u-a;8vHZMa^WkWttwPIjcnY}8b#bWKi*A2;NY-S;-WG&mC zJe34P#TFiXAR4B*C_CH3K2;m6G#34DvDum>$p^{y+o#V*!zzQtj;h=UdTVmcMpIA% zyp$Y?cVLrH9DNcSQGmdEFxDX3491gu=%!6DNh}p%LNJBfrsULWXmfzcVS%GehcyX^ zclY>7q*Sea(Y)iRtZ9}&-3D=6WpWTr54ln)T=rJzaaBICxjpPSHowqM|+ARkXoCDSH-` z4)6anFafD=QEsbg6cXuXR@=@RC8gO5FuNcNeZ^WhZ{PT6gi(Q8v#FyqqSz8Y))`KR z@4FN|^`rcGf)`UySF=(JB+8g@r<}QW*)9!NC$j~kMJ<;`*0`^frD^4VnSAEGPos+C z=6d}eZ01opMs)}Ueu+>ccJPVE5{7-CG|nhk2PkYQ&`0+4{fkgt zLHueDR~u|Ld_gWuH-rmYBqV#2YDdN`M#CVc?vW9t`CY~89T+rK*=mwYf|hZm@Esv9 zveG9B0uP+NJp#`U2vF%HDyEebCBKL7RSpbm9X2nK2`#EQkgst-pxz)$$q3XuTB|Gs zbRfiynK24>6m28d|g;3Lq_ULo(K}T0Gf=Dhy%N+?8VHX~omJ}To5_Bz_6WcO0#krwPR$>YF+hh}`6G&k=Rhk~NY z;9!#6NueUQL;2aAN+U?|yYNl0?HbHLHa_)g+FJVl2rocIjsdpc)XqC)c_VD06Y2`$ z$kwao@9-pS>d#6!I|+9pN+BAHolR7sTfW-_$614<6_{Ip&b3reqjhQvi(96d53;@5 z8i3{|Tb;&ZV@T@zzK`SsqF;E=F{l??4?-ac2~8@84%gh>&m;OlxU~B%BS`={PfM}| zVUu!$BlU$+#U6}RWk{$GSRX5k&w}mAJ}3viD}zDBEBt#LTg|viOzd zr;TL3cQ0SE@TS}sR%S#3mtyk5-7cM9y9q820J+t%@q(|iSq=OFe9@!k2B5pHcMCI- zJs3wnpTQi(G7@giY07+g=*dnR8`d;!@`tO_hWJImn-UP= z$}ibEGt8OLkoTtm3tfr!q)6Apa)!(CQvSZW41$`~wc`~O68H$k`UIEn8oz^1!W{Y8 z2wA%YQc7#dcccm@<1?!@+1R1VZ!T^p z8@k}5u%)^M-znn77$|gXCz7?L*nM#oP%7ea%$veOjM$AWy#?V@7lYt;0A-FiJ+MdP zINFJmPZZ9&$d|*h(88=5BPZFPZK*;niarJCA?=_FYtorC_;npy3>$adR%~T542c_* z075=QEFi_m0Qmy-k4dY95M-_ZCd!*H@WE|B_eNfy5K!NW3*2J-Xx~>jcfu;zpf1(N z*SMIpcjsGDgWcVT?m~Aqf+pj^*1_{5)U(8UTT*^lzA4D824knnFbl=1nB560HB1aL z7gupJT_&)NH&)90mI+Iq39xE1I0DFM=437LBx+oh;%ZI^MJ!VJDM zsXMMI&y+v-gG+Wz*+%1XQJ%QL!Vw^d5)=^FBn?rnM355&1av@w&P4$M3g}K8qJR@O z;1DHI5&;5)uZGO;|6gmLvrl*H#jJpeO3S6uXWYN@KiS?R zxxHCFb6FeJ-cT2@oZ(wJ`bbofxtP{f(@AB=#KS$voX8&?=0eK1)tw+D2GKB3)PULj zZ5cTwTD@22Tokoga<;YtnzG}COobNjfdywPL`|5DYEodfBn39Zc`@5;)0K80B?V@K z$8>ToLZ5$z2@qy^msiZ!f*5YLq)p{bv=Ad?tA`hOz5k%rWk|?jBw`OUi3}P4qfvyM zoATA}h!6RKu zOo^>lHzg|6i0CYx?g6(Ofe}~%K)?xbAx=lIG@ARMgIpd!#d3UTii{a0V5=!9(sc2i z0fZ>kn))G}W)Pgx|JY?wu%;0^Dl|czl#PL@11PPPJR+X-1=gj%4DeVaFilWtnwclQ z%Z^)2H1lOoF}E2U=9N@Nl6Lm{o^Q?egE(uguKpJ&C1{>cVulG(rFZdkn0C=sN3(}% z*OR4*eVFHlCzbvM3)_z3-dG}je`%ONutL+R2zI6zwygN8MjoO{6?hLV;DBX%*=!T2 z2n2;7BoTQDHibY^f4-%Mjkk;4qZCM5Og`^jTp(#_=@KRmxcW=$KvJpYK`?MK1?)DJ zNW(^}cWw`Eux=6S4Z3HN9~|tRLmNZTFceglsSwIT(3L!W+_6*XHkx3|R*OxW{lU^G zAKR+p+mW7yeN6Wv)RLPZ&7DuBNo~mBXq1^iR?$|%rpF(ARFA1OeS-VvLbJvXP#LsK z9GDog)?~HLGD8#t{kjcgcD9NqS=972i(j!ImyU~+KspK8e*0J|5s7yzMS%r6eZq)JLHSH#*U`d3?}@;k&RcMoCUA-eAa#K{E%eTz^2CdiV4?F2_`;1C%Vl;G@ggD~ns_6h6quZS zOQj7U2tt`=nNDH4fldWOjo6WbzO{jykvYiQX)3h}x(}(i z5fjk2mT7c1h(#ce3;hvTG;N|$Nu*IVc5a_WVP$7_*)XUhrcunQT+Q^d8r0)6frFw^ z3TcEv0EuEn^a+VYmo|?PxD*P%R0gb~|FO%@2HFw@fkjFb(quDUz}F|)oWng0pHEsG z?MxdHVJ=>r>+?^2a<>=f_anl|XPRjB07`-0U}%L{5ME}zj9QpMH|48*h8v5G_v5X^ zaHV%K8R7@kY{vT@m;l2*I=JlBQmM5{+RvV5&gm?Q=X(!_6a!O$Y-S>p*#0GQIc-S ztk=l@#5aD=Rzm3u&~&TPxDfc5f2y)&Lj_gmXf?=ua^_mr8_HAx<3pCF&Tg4Tmx86D zLm})@ESRGb_IL-(A^38Cxw%!)uBZIvnfTUMJbliOB$D#g_LCJMP+%R)jzUaBiff} zX;CB-@G22WZsbS$wWt!2tA?}}EeJb@4yan|YFA01bjg4W_CI!c4sy3jh-rygJ_^xZ zZ&vV7_=hT5#y?P2`BW&T7=I}5#8udh@Vm`3Xc8B2a8bcow1bErgR{WHL1mB;dx#Nn zQA9+H3Ms4=s2S;;>6%erOqctlZ%wAb z)x$Zx9C*B9ke;<^pK<~@#3}AFGhb#{MD<#&E>wx_0zC?nvkYp8h$!^09mk&j*Meg| zdPQ*TM=vXmK@~0@$4XonR?7fw_m5WCVf6@ORMH{k(^5s@r&L za$oF7E+z&3@g8&s3WN+o((Yial38A+6$8-4NR<7=NH)Vu8>$b|oPH*;G>{OCrvUUo z;H^k%W5j|ao9U3(^b05W>GBBF@)=IbL`mZ$-x?d*wDd_X{MuFSXy^^zi*^0o%h~5P z`7PSp8>P?=wrgsqV)7Eui@S>)t&%w^oF*0{T*$l#Nz>3}xuu%N_Rt^dC9CO&wpRhI zA-{d`*Z`;`Er6or4aD2{va{L;i>QJCmIMUxfx~(%06)V*sn`I5%tDMEVM$&{6L~Ex zs(nc;vYZ0r12E*2C>Fh_^>*{r{uRT4HlL(JiA7Nqf-T*YSlF;I6dBVA#s*si*dL38 z17gW5^TeawYW0|(-dz%pj#pKZ5?TBl;t?iji0`p57#O@{HL=@MnhiKs1jxWeKmjQN z2dfXj_3D79$va{BjVh2*&MqgD2edwumvB&5nSr>MF-dl{waiVxGPo!6AcSpUWR@b7 z{W#DeD^^K>s4y8i(X*Z1kOQr36<+`SgZ1AxK$CsU{7(pbd5iU1o9@Q@j4hlk?YTY> zdWw|b5VMU8;O#kWx>xihTL@?yztUR%yL2vCXJxP@lGWPSiu~t~{;ajJ5BDuN{j5qc z+<=dv^aYxN-B~OdLOENZ9_SYGk1JVh3OTi;*76<4nsm-v`~?ao8SM`4qgTt6_U9b( zFae2No8E;9rf>I?1SP3QO6kpMm*>~9*QDgMB=%q{xv^InLlQx|KzDTsi@UjiK>#8B zQytQ;fMAo|!Q7}b?Z?e*1TMFLDLB)m6?fU^!Q_X!6~!I8*xaiyB&=nuvDIn2IyVJ% z+MjPxj8B(G20F7qa)cDdB}q5XWSL#d3iLppw6d(o1Pv2;MWGFhqMvGLwc55dX~8nm zK$WEvc6LOinLr#xr(A?}2DZR36(yvAg&Cm2b|4{EMgZAXw9G`PZOOj8tZegxxq$Zy zgc0v^ydXI+NLLD&kj{$PZ|_Lb4)ztLp$CAdLd^yNGk9x(80$nQ&O!dIT>0Rc88y=a>Tzqe4WxWPXK;q2LeG%7HR;OdG@m0J$j%C07T?v&w&e5L zUD>ZQ)5=DdMP7V5T_YHra4^bf1UuPpURr^y+6jQn?!ri=Cl#H?F@r%`#tj!ir|o-$ zzxUGB33pnPsw#gx-92b~H`T_7u#y#C2=g!lW~v_PW71aOiFgAi7vhApOa)+{6K_P1 z@B+HFjoaI?k)+c)-Gf0Q?chcf_AcSjI6hl?#l4bsNN{m^fdi1qoBFb=Oqi2e3@_{r&lP zU@+ClXQgRi3=4o6wSCIo!=*m+WsD9_hii9dQros!e z!uB;;D<|~B`JhqOtfdVvmrdojbZN7Lhvw5py%-?@|V9s!B!HGcpPWzoae=m74L@NN;OU14e^Px7WY`M z?6>{i)V%l5|7EMBgWXlc?7HG%L1B+4PD~ijzUm;}CoaVP2qN)KY5)@ES{z|S*LLFYo4vj#gwb}ZB#kC259j^MUa0qH2LyimsHY31T z**Mon=f5CvI83$>0ML#=G``uNZe-(@7qj1mrW>0`I;*CUbNM^V-$wSir36-zOLn*pK*6B^yh`b=#Qt3s=q}bKB4U_= zUCCVdZ2v4F+fMBl&^S(kY(5?kaY}J2dWI*sb6V+vC|de_MxRfsA*oxRmmHf4zO_8u ziv~Oyk=@~}o;%?VNvK3A3PS8Dy0n%wwihBDjL2gpBeIryZE_;jp$;;Go>en&2kdxi zwgAOoMGyfdf(3wprSTk-2~^`s5Xl@dP|v5*Lg=)h!7d-%P^UYULdwJRcJ817JYxzP zunAPF?UHL~7chzf6DR;Hg^A=a0&dbr?fIoFXR;-4<#K7IkLJmpz0^l%T2w!%u@S&? zfNQ?{lapEg(sPq|)OcbV52Fy^;Y&dP;o<9u0RVddJUD(;;z1v{D~t_h|6&W++au}0 z$TE^e(whv@s7*$^8E2&bfKkF8r3I7HJb0NCC9}h94s65=zI=q2<#-dGZLDDDvN0W5 z<11rmEG{5=0F8whZ!jy6l8(ZTIANnBhmk@IvuD#Dva$}|SYP>08RrrOW=rnP_kE>b zdAyQO@g*p75T-=LibyrW0JM$ljn_w_oz&K|DO*vY)4fdeMM63`9R~-^jp#OdN+4z7 ziT$yIbY+m~5!59})u?a_fVDfb&#fpjF>9MsM+}l6_5A>g*0ZX|`H~MgL6m(aRi(uv z(w!5I+i53yp)I;c++$NGPD&S?Xlo1#rIj_22PFhDPxlg%L6+M@otMzneP)wf(WvY| z0?lCQ)SJS&c+MTOg51GI5$_VS3i;4HF;h*XE~Ns`TeRQB+*cq3?&ZwM2`DR>)uA}1mJB74SWn44oCzO3qwfWc%we>jUje760p1Aq zv}$kZz}@IBCpCDb42@VRSt?FJkGqJ6GpATGD2KUZz$t=QK$aHeI5iYm)T+n}ig#r- zrUb~6n+t#pTm%&1E&>Ob+2>biP{?jZktvn>a1?_BsiTp?4wwqem<-TJiZdIpMx+iv6M~_GQG^bPobKqznwUUIBmt7q z7Z$-)WCvzbA@+bQFvSJYM!d*~A`a!KDRr;_eo0Gd%3Qqguc!=7N9;?RLP#%;9ALRs zvIq+uFQP#A2r$)3_r|ghP;Qc4qdC2=NVUh!t~g?aTyRLaTxBEDL0XE5Vb(E3WnYjW zK>++Z5e!ZhNAVzQh;x6M>nm&Feauxyh0PW#DStsg+N3tnId9%y?ib_tdL80~T%j>S z-O%Q;_cjZvVfr+@mAX)`FmTW*#!DlUvM{S0i<~1Vqcy2yK-j*{<{t|oq8;dm;v86N zj$LArDeS2At#Nwqx(ZwPE&_kz$v9g5iI^7)!N5u%RChjc&MygNB0Zt5f7>KTK~Q5M zi3|B?5r$RD@q$ydtwAzP;tp||6gS+?-oGr4R3vdh6!2Ju0y0lGZ$^r76W%FI2qbSn2U*>F zptO>LZJ*K;@FY=R^@p7dM)&SkQ5ktBjINH-Z})CRuINf$=a{fx`um@9HbJ1oU|wAo z1$4rqeouxkDy>zLYKKss25;>18!V5%9Sq+vEn~{dKjv>zQRpCOey{=pmnfSxGU&o? z4%SlwNi+MaG%`wfiIR-0j9VEtCkd9+0JqbQ{B|{hnGD4V+meKnq)j8YNXVd!mFT(4 zA>YGIb|`G_G$^YCe& z|7z_z#qBxX?iYvLUGiL59S%4)basG78r)sAzPrm+E;og;)^|Z`oJSViUHT$-mz_^8 ztlY@{EI7L`7~fS69@SPaJG+#^&D-4=Jc=f*h=t4nPx;OYXP=<2da2Y)-H<-e)!vi!rbyJwdsOXHCfBQa1FKHcjx%WgG$rYSUC zUwJ^>I&q0}t?luO6PO@t593>KU5jAo9YcuH`cxPdY6omSnnP;il!URem6QK4ISDe2 zyF3t`>@6||>7$V!cSH(Ii`E~MBpv<>ibK`V8nTXx7DjV~WqvF^_>Z{HD*LY!-6SWNl(O<2!|xqP*4805h_|7@+*r(xR6lC?S-Yq%X&* z=z4FktmPAQn8wOXEvCv&fNjdWwi zvNqXDfiwbm^Am~Sl9hl-p}3a1eagA>03s#w#Sy)L8I5axd}K>Uq9x9Rltk_SnsM)- zOpnoFmgI-{hKO&^AE$rutyz5QF26aMWb%diXX(38d`|OOzwL^@?c`egww=$~rh62> z!86b4D)(29FMIT3!l5TbAnxZgAq@$#K(e8FlKTWYC|obeUtlrmQdovPF+W5WKVt|t zPIBXDIPEOlAoA_w8aY18ed-IP1G^>UjBpFCxA%aP`}!RtVuBW%9OarHq*d?Mb(sm^U6DJRmORL-UIZ!__?!|^-k+p#zsD;&1wcecgr?s(-KJio^Y zYDqp>FMwCKXY|wd{&;kYjp*sy-B7D!7V;LKp40HB^%>K|A+>abmg0$XVGZJmbT=n6 z`WYNN7@K%e-(Tp@gnBuuTeSY19^v4&qMU~Z^6T6TCIe1ua~m5g)4sl~`Ww1xmGuk_ z?dJ-HrN<(k^XoCrKOM=Q6hgfSA%O^7vlpI{8jGBfZfH$ovG-qijEk|4UGNJ5+{3)ef(hCLgF5bSbEHLmEnNQ9zMuw3@5%+o>OK)oiw?8AqTTeS_|c zbv>DevQyHVG?9LTl_xL_w6Du#s7MM1-ffdKOD$vO_yyWhGx>2IZ=s|@O*n-Y8iQ57 z(OZ&lQ~eEms#*`8WfoHe-M5dmc{15pd08NX3bR~uotA~_$){P4cRB@B`6SD!X0z@R zzHuB?Y-`&H-VrLAfxtXr3{{uM8!B2rU%OcQ+Gan&Ik>7PNDAI@*4-07=ipMOX)zRn-A`S{C`Za673OK+{Dj#cS8zL&1^m%a^LBz10qYDjd zx4QC?ydKu>kvJ@-l^>W?{_Y#W%qqX$|4`5_syP7;%yJj`&Imx~VqXAqhK(f<_;@-o zs!%H9A={MMkql+2G)CK#8rdfaQ4ox*CB|b$#T?MO0HpWqpG9jRYuPLM0IkcqLQQ&B z52|RXw~H00RbhqBGZ$w|VXr*VM~Lt-GPanty>m`Nc*)PIf!PrS0HvLuNPw#FfQvB70+f-Fy~K~0W>UBb!D>NkxdRNT6tr{%6*l^ajpISy(KJq4JQQc=d^ zoCiCKzol`6BCIaIlms<~;+%DxT!KOoD(o{QF@8=3^`TmdX;^QQl}MbhIVAT5tpI!U zZ*%0*hH96PH*f`^F=+fNZ6sJNN9#ExdtO@Ct1#c11WES7JhiZ<2iBlk>odi2=LE4q zA2pkdhxf1m2r8z7S4ze0yM$HsPYY9E06_N(@wjGwDX>j-EMt zbcQmCjlGO4cwQR=d%D+PE%gtiHZd7ebF??+&BB_&EHEK};W)EQVDzK-;^g#IpX&4E zmUct!|B>O^|FO_kC@z|>%-<)~<{2q49~h4%NAqj*uTOLLCI0B{KQ@v^h`l?;=4&&L z_Hz(@fteJQm0}fbsIqqBShua+$oVOVfTTf762u}44dM^;IjX}`+MGc?v54s#LwJ8S zfmgw<-~RlQy(Jux#Ttp~)UwZHDoFx5wPi+CKQNZI;%ijGfgrQu=k=8?*4Z{`#uH0< zc#R&0d?AE<2neOx&Ur!dKhGGD8weca!&)NVh_7oa$fhl;UNxJdO&#@9dKrq=w*548 zz+0OYZO&uwocov}-#X8Cm;CR*+Ex&H&KSFk?1XMBrtkhRIrsAGkNyKeKKp<8Ip%@i zAB;25;1>u}_9vbPca2c@M0jm0KVle+rMHNQ|HTyoW3t*??8#YNOpexr!t2|r3DYg5 zvE5yIbGn_;=i4Dwqx~AmZJAMUm9`xN_eu*W7~f8X`pQa9jPyUiPD^eu{{c zz1ILtRm}`pLjk~h;545?W4o)jnv((wjyh?ZZF#Zq5k%bJh^a8Mx&!a4WgpD&DMlX* zjTFaDv}Jl`iLu0wqiP1Cz@BYO?u8DwMWTbNObx1@k$g|zYz>U_P|`3*K+}r0;r=PC zU>D;xfFkIl`7~8qIV*nB2z3}wnP=H8Fv!ryh~|0*V?l+`IF>T|)1m~d<~>e{@fns2 zRLHczh2ELHTc^=5+eb9p#<8kM{5WrEa{1Hjss6^6=xM2pcfOE>;&C&5c8C;JW`_)G zm>J@9?XyFs4mV`>a|q*(ZPX%-vR2HV>g)ECNa02In-?K(Y>j!O_L&Sla_`^~z_nA- zl?&ljIH}+YFR5*Izl#?}y3hP0I~%>kGH3#ZSagg)Qm{db(XweU<1)2#zvBL4qRf7A zU138lS9n*sv+1DHYX;TXfugfwoN?4$C$`8u!CEuz|1*r$%(sh6?aJapAL$%zQn0{GNbV8EM4Eb13{~r;V?zJ%tGlx7y^F3x z2!l>i;4_SkzrB`D+x452*`2=YpY-bHj| z4^t*}$D=`3$KcVOt&d?uei9qD!ak&~vmtd<`E znYZ>pF1==bVAofs)DG*tv9iyzvaxb9f^x(I-B_8?cYu+Qh6KfulE^?hSkp#$!3C4e z0$iu7=aTY(>r{k`S(SLn%HQOkBA4-(%B+IA;mnIO;;@Bue(P4N&1%Mr*u}TALN!qlChx{+)teG80Y0^=J zI&oWMz9j=!8xO9AJ5)fyR91xG9<~*r zr$|KErT8oDh2YAZ!xb2pB@^0Mle_?Tz^>oQUvy8r4Zr{KwmQHO0_Vyn|B-~^3O;}Y+?Ej3e2nA$tTV#1#^&f#iUL5k()>kTcmniZ1cyBDf?a}-;DU5FQMY=qz zSAGP4t*&QbWFJK6=b*ZzH)d8j7R?nL=(sJJ;Aj~OPS}%Lh#I#M*!}J#**yFokqkg} zs9Uvy#-*`i%d1bQ7S$*UqjG~VSlJmAf(n;#OhCdtu9RkB4I@0;vHd@d+UFWWOAOBv z!P6$fZGGi^33u=fbUWktuoj08y0l!PsLk2(dkJO4L?h)?k|I6_u}6hMqYEl(u+_yN z^a^7KOq?BO2x`R#_qM8LR0jK^DxHh06v#@#e9MJq2`$TZj7%)|RPd;#mPw>_XP7Vl zp}o>ayUlluYYv+7VzeC8ycDC|vm?SZEhFg`t^7AUX5k*W42VwnX&Co!lyZq`^1!fg z>nqbba#WN5+qgvOP-ubYKff)%O+Wv3!jD)rv_J&_4Ewe_sh*_2K%#AKmR%Ruo#_8;7BF1usU)%)I3{c#43 za)u;4S0WRjl5USA5ziU@?%<&869GW8ouG_gLp2FYH5BA_WuX0f64r#gWPGWHg8HLdfdHeS=DRzSk?#f>Lqb(Txp?7)*sZ$Q<>ppS zr56&aO*OH46jcd%wHZ86j!&CYl@QbmM&pTgR|Oy-n{r>is;Y!ON!c-FLPy?4vx$`o zH33=+IDvDcb+if9Q@?p_As0+?xDG`kL0bfYio9b;1{e1q$Ujw4EQGTrg3*^j$N@?= z%H3i}i(BnZ(rTr(dSj&7YPHzl4%Zisz}itgX&WP=NntCdPNfnvMwilvJeS|4$bwL{IJWcii`C8}<#u>@fp#8LJ4>9` z6y_qdxa^@tP0mxP)v8Gf!|_liKUx~fnZZz&$KQ9Bf8XB!5(c2S&HgRg+ui@7QMmmB z{abwB*Z%@^nn0Y%d>x{+wGcn4VIPI0C{;sZ6&sJ0nW7wp^17hjg_T>wJ8E*t zbR)mys^|(Pxmm+e>R=C4Jn?Q*aZkiQ5GSMZ^oHvGWZ;e%H8hf>#EQKnC;gE^LoQT@ z37y1e3e{r8d%!N$A)=4064fNF2 zpwj%HV3pM$=nf~Q$7Iz(qOWHgJHPxI+FDBJO$UK77`MX zW?DLqur`Kl0o`MA>0R3{X6!hHtO1CaLyDf*kZ~r%G_rR6-?|8VVXpGG5G>*vbl5~R z6lfGo3cvMD$;-O3IcEhJz7c8!ruh^+Lsx z+kw<#gT66UGh8Ew!jco1A5*j=FhA=y#sW`~V0>$`y~Y&ve_3dX7V(_88XUEn{gf63 zD4t`X4jG-NYKC}*2Z#v~cZ|4qv=$iy2By(bwX(i)1UIJQJ@+`YN5;)GzYfbB271dQ z8v8DV1#vw_shY6FyE(+g6IH-Hk9@r~*;N-cP%pRvYpkb&WTJXhgsTy9$9=^m^7lD) z6G7cyFRw%Zbsxpvwb{F1rdng0Ox3Z@=`#yJXrMtR@Q@1K5#$5)0_4*}Ak*RkAfGbG zs5|q}2Yn*V&(Nr*`~ytJnq;z}X?4I6bS~i?jl75_w_Aln*OQ2~;CO{aM`={h?o{K1{TkYx z#GC~zA|A4YMGHfFybo=@(|u}I04zO0o4U@b?Q0-f+!wJrrSJO?J~T5#OU1tSlX5rM z+Fnkk_M~279`+$^9n@!lJ-{_T6B{^yOCSJywpj+21{RpwGm2W#QL6K1gvdZvFuVP! z+bimC6=Z7sKWnq8$4M3Chp-&db-LiL+w^UQZxA;$WPLjdrPr_~TLo0dunP}1qI#ac z;728VDe}-mrFi!XYU?;{!Cus2+;cAz4ltM^J-@y(+Y01?5W&y3`ho|$e3C{OjFJk%~jNy`gBIW1vP=esgJndy)koKa_@xw`hJ=CHo?r{<`> z?SKb+FSLuP+1a^pr#mFIx>I#a`I=qypYNtEsGeGkQ?sX2o*DtUzB1M6PtAV41(YXs zWoiy_)zs|n+?pKJXQ7pTI}@Qi&?%riI|L;yFEBM{45d!Vn!6))lFi(E3fP=`53zgR zJ;{!9pF^DJ(`c)#)XIh%&4o$)T6TeX?@P3v)24mgFPrU-Eb3d@8*IYEfU4WVafdN-$CZmyAXRfL|Q_N;U08M45d2}A;U z+R51g8Y+lOqkBO|dxV@Jql$P zrc86z%XJFJ^S}M%&$&+F$EqR3W~v;vp^yxkOyxJ#A+dNaY&zZuBt|^)XU-fRbldS{H4V&K0 zN}T@aH9R7V-;{mBw+E*e$0~$~P}Ty+l>!eah|y)6D(w{~9I5PhO;0o4JyxGhdqX~AXQ{}Wf6}C0mn?3ZdK$`aYh~ohDu`? zC(D&29MX76KxHcV!kK6n*DQ)U)`v;{oqEgD_n;}UL4qB5Z$`2MTgxG8m7J2W#05j( zIKV5LinZnSK@^+LjL@PBSi99Hh}VIQekGODmiFw-*a+ z?QqQ&2MtUm)tZiRB)-)9JC+c;P*Flp0V^1XuTaTaJ`#>k;j&3^1;>Ds^a|X^s?Ww& ztZ2H@yDq01clHjOvsp2OSs;Z>x7g-9#=fnP_vJ8!rATG-#0KrFhbhK zC2lhen^6Gx01{?HGeViZanV3$8e&vYgi#}VNi5h6Gg)pOOv`=@aZ>@In^16T61doA$=7^lgRljBot+4%8E9)hptqYqQFR2z#N{)fBi7M;^fW?G1)7RCzCSzz0w!gJM! z6bzDt9sU>95J19uxIUj9PrRZgz^{hwVX6zGQqlZD9t3QNP&dNC$93Zqq*Y`eN=V&# z%KL0<{?reKlGEvC850s=6Tt(I5?oS6ktO7}qCkqOELVJig6gP4iog^MRQODd0;#>i z;Y5WeY-AD*BuWFZTQO0q6F|gOv*r`K(-Nt$ut-VGW%jmdW*zBIeZN`LvbW zzpIeDz$G?iMWN;uGsb`}k_-qRuV){}L$RUS?2THU_o0WvCvh5|0*FfvM$9JE!_QNc zL=0d!Ac%)EL_aR0y(RdpMkgQu*oW((iV+RFz(!TBjtXgYA(z$dBiTgs+fWK(! ztE6YaX6R*2IUqZQhp3Vb$D0zh0_;3(bGBYoG!fl)xJ}P(8F$*4xA5Y%AiJUVhl83V z7>*J|;?9U4+jF=|4)M zI=T@N&67n9q7Bu1dd;x}3?Z0tO>#F-a=FX%A}{BNL`|(wNP5%E6gIkdYGg4}D|#fW zB6YZ?CzJ}*&+s#_f-_IFiEz7Od7#G3_l-j~0%lF%F(_`oV;pphx3#j0Ww-1lO!YD- zIunXE31TSZl)rL^bJ(O3hMBckb!k^W?U$k>JTQ3QrH)*nDK<4lQxeWJh53FriQMHT zDGZ|~W%Z5cL@GFSMAaZ8UG<5P#9EE$fy25Yoz3V>opR*!=Xw_ zd2v{L)x_ojEW%LL@1+O^pkpl!^{n-622bBF7&AD!qlrD9<=U^xd|Wxg1H`n6mSuu8 zusp$~LiiU1Rfo~B;y44Fig=b&tASGm9d@KUrmC?7t*fGM-3xCQwt*Zfdc|v@#MS!B z9)vH@#t?>+_GsUU4Ih{fphR?tqX&C1s-3y>WQ(HRF)N(5kjQ?OlXv1J8*oYE9**Iu_#WXPX;$xR*mn!dQfx(-I zm8Pe|IKdpE7X}N01~P9!(qchC*kVCIHZ2IeNRXt1?)x9t@Z+2wWA(7Xg7|P2oQfW7 zSdeO5kWg-;Aam@81r|gGN0s5=M`g-f+=6J=l^0~N0|yJjh;xW&_nZqdm|tUUoT!z2@(SW zeVrVhJf1+nwaY9e_piz%x@-7vkBEh9rGsC*Ayf>;F zS?^LgnQqegC;Xs&9o?F~+66o*1q7xf1QXFVxrxm=p%AEM9+=DlL1#c568y;Yn4?r^ zKw^NJl9nD)NHx8-7wltSFuYz<1SP@<0sxX$3v_TRZlTHVN+qs2d}p=9J{4B<1Hku* zu|X(Faqm-O8f|QeHU|sGvIW)UCu+sOQMXwr$qeDYKz70K94)F_ld@6Imk^I6;iL5f z<494QkC6hS$wzel3;7|{kwbftQwhu%4pv5GhmV9XjJq-b%utdvO^&-NB};SX7e%`PeU4|JamQ7TLmRSN}adLt-i)pKp@hFxhR#Hk2d`>(?l;@vlFA;O7bpo z7gZ*{U6jpskPMz~ux^o-^*uU%sF28#?gydkKUMqvfR~rj&(|*8PwITL zVmz!|u(PT^+ZBF3YS?jaVW~pmVh0G1v#+Gr2{FLuL%2-Q87QNf{SEsozYXaU>M9w! zp6yo}L9lV~#FN|=yVvtLy`*Ze5NYan#v=*DC_B{!^`yn5t|4)@Z z17N;ij##ERf6Jqa_*Ch>YF%31XrA3E2R-DNf}j|nx4C9a{?}FBn(|x!pVBMF6*uUI zCJFn=C;7$mll?`rH)hh;ZGGQZy?9>`$EIX|@{3fJX{tUpe^2qZogK!oO6XlWfgI>3 zwyWt~Zdw6T?d-qt1c7C>9${kNH-;xDK-ZC30%}XikiUdVq!3qzvIvTS7*`3qOgqXT z6E#34gbKII3=Ewqs=sO;MTEe<;T$^aO_y>VIb}a#ItFy1?>;R z(Kr#G5Xzgk!>y;da)%|rbrU`_v0AeJXi@r~Q57(-N|_N;HR}KR)EkuwcdwpxO-h)1 zYBP+h-<@O#+04IqFPkjLDvJlgqej?VD{sBVf{aadA!p@KT}aIq@EEoTC-Wa+)ABpt z=$Vxo*)F;4xjttM4FWy+)&R74+5}Z*>H|fgj-y8X`tgU7Vln|r<_b$ zGnWWNv42}tAsH%-f7LD`=J|JDt&3>buHYh?1|Zle?@S~MFURY%j@G^U8}hmf?MUgJ zgFUGbnPOKWlqn~U14FkjxTya{+udiwX-h4k`?B8a3LQV)F-<||2euvtZKwA)uRH=TUZ<4Bf|B6TBxnUx`Z zcX@z(0I~xkA}~-9^S4!dd?0oe*$OrfCwD#|WdO22Fc-jcYRT1lhWc4w`R=?S!&6fg zAjGd$7Kwv6KL^hm_n=#wcFsj6EhN|x|)B9D!X|n9DhSd_W|pW59-xAlQ@zudMHocAte~KMiatTlbZ?=9RrZSj+#_-?N{vD4>F?o zQZVAxx*Z?uC8U#ItuXl5=bp&kgIc&5i;BJb4+QT%h8eyi)hX`oet!YgiNJiA+u%h{ zwj9LRR`%aTZ5Wq4{cC!oK@1SFald!*m~hTf0o~E)>%Y(XC{D(AP6%2Sdz~hSk8H&U z{iZvmZvldN?P1h=^(9#EMOFBnI(-V{w9hXp{Up=#h{Fu2R!!ek)ZM<4tc z+zKl1gRh6D%DZZvT-mE3!nC=jIQE*8;e%nDEgJVz682M4SPR#5`yac|9wufbJtK3M zc4s0RQfYT4a$_+jY*1PfND$i10~5tMMMJ7=JaKU@WnEg?3m0A&8>-URx-J-&wJtBj zb%FSZSg|}>7jvWYuZzsVbsb24!F2&IyR^8_x@bZ*^(J@aH7TvsymgqnPV(%Uk(ag) zN<21FFAm(&Rze3eEzRGj+QM)@f4x5c`#&sw{g3(K-weF*XR#~DP)WFggEUxtIO93b z)D+tkQxgAlX3cUw0~CQ=k^nH9NGt%Ui$DyW1rv-bJi&lenmKzRPyjJQ7K1H<4KI6n zSr~@nYm&~F2XPcO_;su6E0a~pi`h}E!GEsWYZnT(q1~E#7tk_{D!j~mUtvEu(}84E z*sW88ux^F8i(cIs8DFj_9EfuL=ZIxusEVzqNaGCt2HimH(G3}gzf5IV*^zA|c3KT# zSA-v}ax@y;k;Q6szPb#{rfUQh=Mn}&h`;WvPMol3t7J5isKQNp$^L?12r`J_(Fh{> zhZ+JK>YGIV7upFn3GHANO9oy`BeLr%15P%~cy1MuMKf&Z{0O%>Ln)O+B1`g75(Q`# zf8mjox%Bx3C;3G-i8EZe<0HaOgwI%J;t^pdXyTLFWH8uBS9Fri%4^IxU12lSR(m8r)E)`+Ra407-1=@8daS7LZEkI#<~fKBXY(loszr zEuKP^SjqhNo_-I-$FsG%WpBF{^uu960nH1V267yYOs{o8*|e9mpugh;i)l_X=^LtKzv;+N;l#ldsw?rEKpE~LgyqLh z_7C188j3Gbk41#Xn4!=fIIZx=XJn1!p9nV=Kbkv55A~P)2%!$$I$IO-0jY(^n)ykB zHhfrT_6f2h?S3$)GrEzCXms1H>&T}NJ@Qju-VsZ?PF-y{NCJNLsjC$S18`Rc2gS`$ z*nOsuJlK;mx)CvcI_Z|m$^$ZA~uLJa;Qsb z^1_M5I+O&7%kiQ4XN%Lt^=NkxiW(jj%C2(Il%@pPk=IsBP(Sa<;c6TUsvai?d!duV zcm6bpGVkQ@@_FKzOJV~r>6G!&!O7u8y;9lniq^xas$1urgIzv3+#=>92CRQ_xB}FW z<&~4mva&UV7#<_gGx8_$7a+HTlf&mcFS)aSa`U!UlPlx-g->~~VLbb(hhq?_91}srq8z40iY`Hva0+a;aYP5_KR+Fx*He1o zKsBEojA>@x3mVfjQJ_cEuN5E$1zwmM&Fdh?R zFIMxD1IVc4Kiq{7n|E}kIclh5y&`Bo``?(d#qnTWDgyRHkmHmQ-Bq44iZ<0{jEkV1 z#Zm4##syQL0bDVlfshc;&Q$X=1JJh5JJ1_6pjH#jDhd^yl@3RAp1C>tZl!=ggwsff zVW!M6fuHG=cGG^pLeOA$fHFjjmS93v(ZUf z2$tCHA6mrUE~T1r?MyMXIaZOgs``<$=3YMBJc?E{v^LSXMB)WjuKN*>bNu`m(&qd5 zQK!t!e5_}{q_F!4o|V-1%4lEM!tfIcQ9yv2{q-%5eK)ha*!6{Gy`Jm)M_1?i{?Qd( zUskP=U%xe1E@17U{QCc!b6$&0df%mNQW3+~a~1#i>RiP?zS65$3EBIY+#pVYv2@vy zk*g3pT{V+%)eRQiL~`1(q2Yx0_=Mf@bQ6WMV&+R`=v|Oq9HE<_ zy;KFcH+;Jr*{3krL$$Jc2wv?FsFi+qwL#TDnY?v05Ct$ea68$o)K4sqEq)Q> z$J%AaHwizQ=Ie&)ZWuw}w7Zliipzw^+eC%UE3h#4TXR#o?4Q{B@6Cn#GaN2&d z$C}~153r3BBt!N3DtPZ89WWu{go?LZRh+|S9;yXukv+!{_0$}=dbj-kvG{F zcCJP``O&L$-9CDy*DbKIwk(10;jPT5}Z z{eKlignZ9mOxk_jt-fOng=dsB;A-}#zW4zEDgZzZjD#n8#C8H8n{shO3D;lY-{C z+}c|NWbKJYip0~EO@&EZ)9nzzBysKkw6oSX#ktew_3dwg>!+aU7?35QGtwO)69s1G-z#SwYS2p z6%Tj-JCwwvhcQ4dA-*pNd}}5s^G^|hi52|P)i2k?Use;0%r9MrHp2N=-_L4}bQfpqr`&qC?XBVxE`5RnL2K9hm#P>7x(}A6#`}Wp}ZZ9@$!ZEw<9g zL{nP{lxdbWlY@G$fgS{93FMSxjvXM0myH%te0u1_HVU>zZ-m;%dh7D^-b07L`Wf)j z9id{<){2nol(&jX@AdpJM0z=$B;i~*DH5A}F0Kvy8>&aDz2(XRuXLAd&rx`^uG#?c zofkOfI_fJ5j*jmf^E(Qg^gFHvTU@e3>1hgP0d%Z;ZJuu7;og!h*^ix}G1fB#+SI{R^zI&~q2tSj*H~4wXKQBA~&kkvfjl-=5Z>N5{2D6Y+=?Mkp z!zc4K8!H?`Q13!nIfj71A|F41ZpB!nshwnH@YpfyShN$5!|AXZhe-ZrvTEBTBHRSx zGM8tn@C{Y2uycanH-SVN6(*)@w_+~U^ z^O%+X&?RPy%1`QgQ|#Yw@coW%LQ#DApS@Y!rXwFKu{8$7(!gegbOJ=Mc~u36OcT~E zVevKRSf8&Om31Gr0YlZ$1FLHntj>ey2@S}@R{3qb9qw974%HAXA^BYPdFM&$5lzW3 zfFRXZKnR_i<9f40=9NjtaQ0d+pG~SBko86uZzo zq}?TIn!3tG1DYAcEv-X;RueJ?i{UQn4|h?VX;Cbmxa`ASq~R{=zFEV4vzH_U2V
    &B_Pr2D40rB?>ly=p?_iWtlR>(1cW3QZJ(F7HtkGVF5kXnleTm=LAiH|a(^UqaUW zG98c{1XWuem!mr-QeeT41$`WYR;##_}DUgh}v1U z9_FvI)inEfsX$QMDr6@)QLl7yoj`LW zVBlDn(}u}}RANBUNlO0OgP9Mk96M6|h!*j9PlgOO#ygnBdEE@PANnkB%{HJ1sthD4 zup!sBRa8%#ld4WClS_SAb$I0^JI3ATy#FHIfgb3&rm1%DV zK2V2OvSF34IDf-3ALpS=oHnJiuUH?4%&Mswzk;TQ=;pHKLj34bsVSUo_+OXgS z3X~crW0elep!-RI%0h@|W%L{kT zO{I~HXe4YZ+SVV9gWVCp4*Da$WQjoF+7Q_2Tsj^sY%3AXu&?wc`%3Rzcwd!PvZ(L6 zD6S+DmoV0=Joh(zdt%gV)d}VRAE-q;ga85-RVM?39TJ4~-g@^sA0p>S;cbjVXf>(v zu!T6j#GcG4-M5gZlZ8%%ZwNmM%Vf;PCQ1_6Pf3B~k7F2Ln@%OY>x-mF$WC|3KuneB z9Hi>&qf?Uu#F85bjiIr(23W{x=Gj&OM)n? z(Por=)0ShWgepo_g%@iN25;^XDQwvfNq~P2AnaMKgbGw_6pMko0e>SC9`G=n&STxPPlX(k`cPpL$wcmW5dBb5X7*qs+sbfh>XHG<^UU3n0 z>xHRh|3Wuf_R*WFUJZjB!)}-4pZty8S$Wgd#{1fz$jjhWhyYPcm@DraB?r*3$Tc&ajbjQN%rU;9~sY z1Nz|pwme`EN=?5l)pvl;w}bh%0#YP5%W<_U1V_~orL0OG!W(e zYKE;iC74KEjPMw?2qzFl*knYHuxTspR(KNEDFS=w48soey zHlC%&bJzQ1$<7z|p&=B(<~AY|H}s94$nrfe5Ippo{J5cdOW7abA*VMmVvz%_UElpT z_f$ze+GRTu>m)bW9ek_hU#&c}v2r(e6se~M*k=6`4DMk(f`=$=NZ>!!iZcw9E>VL{ z!A&A|l7*`OGzjI2IkvHsSuKNSJZ!03Kg?M<>*kyz@P6}xQ@X(VJK}}Y`*-B1%8WDF{n+0@8rv~a^Qzn zEmab3Jua&=QlL6a1gNgOjFIT;aR!%gMm7&m%4#k&)9tT)cT4u)uMNjLGCVQE&cD1X zSrj7tj!~3fW&cd@CS*1tN|?>K)ai%#!U&mR-WEDhJ=GEk1+y&StXJEZ6XspYpU|~1N6-496I1j>G5L?ah&K)4*np?lpG|Ct7_ zPCWSB)rkk6yYhH|VT9_(fhf$^1C+$Wu4WH14U7MnsO;%0au0jd|*oX$%pBaBH zg^Dl-3sVs>NpD9sW>st(BJi51N*~lnTVQ6UEz)K#A8kQQ5N&}!uLJ=&Bi^<+Gn}1R z+A(B8#Hw35M0lA(>=H5{Q4^4XJD^loh1*kBX>ms@0toC{N;LPQ-`iD%n?}ZwfRN%D zYRH;n`kWD5OU?W^Z@I8utbyLlIXjd)`)Wm1boid{a6ajpO68^s+(Sz@#qq31pt#IS z%^zW3K;Oj|U zLH!egMS3m&@!!+vt+w>d>h6xA4iMBG* zibOQ4Aga&K0R~b3U~``6SWe;r%*a6jiL+(G#-Wl-2M1(#oTMJUAcY~GbggLij|u4u zHr9qvgy!hW-9erNDHF2Bl?5Yf;$_jv`o%yI!Onv!qVn)_coMcpM_e!gH4jQA7h+d>SKosrrMDMII<>fW*BG3Z8H0Am3)bjlZ4j zy=@m6M@!Qa7JZR&_0%5y?v6nTy@9!=-tT;0y_dQ3EMlEI-$M<22TDlVW(YF4oBD7{ zv8mC1U0cuJtQg)Q5`;FmurwZl>LGkv78Y&~%jA+@BbG^W4Kn#b$>d&JgkTK^+~u!i zXbNU?Eb=$t_r&G}Ia&;`zJM5wy%}n*i7-9QkMU8^Yp$TJM>QILI-)DHdq~$&exH#a zeQ12IleVFeVaB>xZG)!|G4?OKW?6Hg$&yxA-qNpD=ja0`RAX~{_0T-zo0uaV*v3@e zV9Z0IdDwP#?)sr@I-;|k!6fM~N;nV#8lY1GPA|GC^e8eWF9e%VNJzT?dW&x9Y?+H7 z$f!Fdg3KWL1i6*{`FRO)YJwbG6t9&a1BD4Pgqi*u^sKdFjSw!pW-?ERAlnED35_

    pzCf1|?Yfwf(0D_YOQx<^_9*bBfi9Po&5{Z_ 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 {Pd74BfLTXaEJ*XoE7n(? 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

    ig=H8iyx#`L^5PpU5u|j+n$y~a?!FyjG2Z6 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

    |A9FZ9LDW#tGIe;izY^8b!QOq0=VRILhHenuiMD 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ℑnXdAsMIxktSSF$tda-5e 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


    euJS* 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

    MAB_(+x=^&L*O(;iRk0#vW1LCp1&u6T(+e zy&LjUaXVbKH6!msWmHND!Sg%6EL|iz3s~ZmE$2aGgcLMjEG1(7$}TL605Rif*BQSz z7Ej8k4LA4tDbgrc-NtFmL>yIkFRrq>up57OIkm5JO*t^a@(ZDx6p2YB0jKUoll^ZUBT|ItK*p zzFv80ecFeVFdcoE??lr)H~Vm5P;(P@W3*t-4Zv$lxbbye#|uVP7SaI1NUvx8L$18O zf|(_qC9}`D{m9Zs3V`QucU8}ZaU>#IjeID>GM8lQ142878TW(`aNt+V;nzDW9jC;^E0#1&92hsHmd?f0ou3KX{3v2iv2;<633A_yg&o!bajPOq}kL|RLc2_ zWTh28Xua9Qa|u9_>|y(ZZfACK!rFM#snJBIO4skHn3?{p3tkwy{j`zS<1?-_g>b`U z8NC5ibf(P0sQFv$aqI3pkt~y|j?QHiWsf%ukkPUs$$v z6?2xz))_RI3mMBjE_ptNR(y(n{iJE5jZZbV6zkeq)EtYRPoEK<8b85hWuCohHkV6T zYc`fM9w}f~i$LCWEiEp)HCePLFJP=qsoLx1>PLguy zD$PL(m8iqghK3<{6NF@=>2AeE=p@6T%fu2>vf+tcR)LHIi?S4rCla$4Gh7iFrD@ zJP;C0<9kKwLD!wj(B{nutl`D2mk)4S+j-Yi$p^(9nH|-eso(g0P9_bR^pwc*+0pS; zSH?V)RQUg}1CE-Mgr;Vt$n?u?5m#ISlv30r`rONe<{Zb8&i#YOc1hl<%7a`vr{bnI z8>4x@hjbR_AZ_GIvZ8fwq_9-x1)WDNYNXvk8@Ziwu!qTP(`i)goI@-t5%btHnI?tU4 Zx}?U|dHYYNC%m}Rcsf-2RW_

5 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