authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-11-16 10:38:44-05:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2022-11-16 10:38:44-05:00
log07671838b0cbf96c787fa94653bd5ceacdd47701
tree25036dfb6fa5280c632a92e0b74afc16ce43dbde
parent684264908e50bc8537fc10859e93ccdf8d94509e
parent3ae04ed949a68189950ae46f714a135b471f0bca
signaturebadge-question-mark Signed by PGP key 4AEE18F83AFDEB23

Merge pull request #13561 from jacobly0/gcc-warnings


2 files changed, 49 insertions(+), 33 deletions(-)

lib/zig.h+24-24
...@@ -929,8 +929,8 @@ typedef signed __int128 zig_i128;...@@ -929,8 +929,8 @@ typedef signed __int128 zig_i128;
929#define zig_bitcast_u128(val) ((zig_u128)(val))929#define zig_bitcast_u128(val) ((zig_u128)(val))
930#define zig_bitcast_i128(val) ((zig_i128)(val))930#define zig_bitcast_i128(val) ((zig_i128)(val))
931#define zig_cmp_int128(Type) \931#define zig_cmp_int128(Type) \
932 static inline zig_i8 zig_cmp_##Type(zig_##Type lhs, zig_##Type rhs) { \932 static inline zig_i32 zig_cmp_##Type(zig_##Type lhs, zig_##Type rhs) { \
933 return (zig_i8)((lhs > rhs) - (lhs < rhs)); \933 return (lhs > rhs) - (lhs < rhs); \
934 }934 }
935#define zig_bit_int128(Type, operation, operator) \935#define zig_bit_int128(Type, operation, operator) \
936 static inline zig_##Type zig_##operation##_##Type(zig_##Type lhs, zig_##Type rhs) { \936 static inline zig_##Type zig_##operation##_##Type(zig_##Type lhs, zig_##Type rhs) { \
...@@ -956,7 +956,7 @@ typedef struct { zig_align(16) zig_i64 hi; zig_u64 lo; } zig_i128;...@@ -956,7 +956,7 @@ typedef struct { zig_align(16) zig_i64 hi; zig_u64 lo; } zig_i128;
956#define zig_bitcast_u128(val) zig_as_u128((zig_u64)(val).hi, (val).lo)956#define zig_bitcast_u128(val) zig_as_u128((zig_u64)(val).hi, (val).lo)
957#define zig_bitcast_i128(val) zig_as_i128((zig_i64)(val).hi, (val).lo)957#define zig_bitcast_i128(val) zig_as_i128((zig_i64)(val).hi, (val).lo)
958#define zig_cmp_int128(Type) \958#define zig_cmp_int128(Type) \
959 static inline zig_i8 zig_cmp_##Type(zig_##Type lhs, zig_##Type rhs) { \959 static inline zig_i32 zig_cmp_##Type(zig_##Type lhs, zig_##Type rhs) { \
960 return (lhs.hi == rhs.hi) \960 return (lhs.hi == rhs.hi) \
961 ? (lhs.lo > rhs.lo) - (lhs.lo < rhs.lo) \961 ? (lhs.lo > rhs.lo) - (lhs.lo < rhs.lo) \
962 : (lhs.hi > rhs.hi) - (lhs.hi < rhs.hi); \962 : (lhs.hi > rhs.hi) - (lhs.hi < rhs.hi); \
...@@ -1123,23 +1123,23 @@ static inline zig_i128 zig_mod_i128(zig_i128 lhs, zig_i128 rhs) {...@@ -1123,23 +1123,23 @@ static inline zig_i128 zig_mod_i128(zig_i128 lhs, zig_i128 rhs) {
1123#define zig_mod_u128 zig_rem_u1281123#define zig_mod_u128 zig_rem_u128
11241124
1125static inline zig_u128 zig_min_u128(zig_u128 lhs, zig_u128 rhs) {1125static inline zig_u128 zig_min_u128(zig_u128 lhs, zig_u128 rhs) {
1126 return zig_cmp_u128(lhs, rhs) < 0 ? lhs : rhs;1126 return zig_cmp_u128(lhs, rhs) < zig_as_i32(0) ? lhs : rhs;
1127}1127}
11281128
1129static inline zig_i128 zig_min_i128(zig_i128 lhs, zig_i128 rhs) {1129static inline zig_i128 zig_min_i128(zig_i128 lhs, zig_i128 rhs) {
1130 return zig_cmp_i128(lhs, rhs) < 0 ? lhs : rhs;1130 return zig_cmp_i128(lhs, rhs) < zig_as_i32(0) ? lhs : rhs;
1131}1131}
11321132
1133static inline zig_u128 zig_max_u128(zig_u128 lhs, zig_u128 rhs) {1133static inline zig_u128 zig_max_u128(zig_u128 lhs, zig_u128 rhs) {
1134 return zig_cmp_u128(lhs, rhs) > 0 ? lhs : rhs;1134 return zig_cmp_u128(lhs, rhs) > zig_as_i32(0) ? lhs : rhs;
1135}1135}
11361136
1137static inline zig_i128 zig_max_i128(zig_i128 lhs, zig_i128 rhs) {1137static inline zig_i128 zig_max_i128(zig_i128 lhs, zig_i128 rhs) {
1138 return zig_cmp_i128(lhs, rhs) > 0 ? lhs : rhs;1138 return zig_cmp_i128(lhs, rhs) > zig_as_i32(0) ? lhs : rhs;
1139}1139}
11401140
1141static inline zig_i128 zig_shr_i128(zig_i128 lhs, zig_u8 rhs) {1141static inline zig_i128 zig_shr_i128(zig_i128 lhs, zig_u8 rhs) {
1142 zig_i128 sign_mask = zig_cmp_i128(lhs, zig_as_i128(0, 0)) < zig_as_i8(0) ? -zig_as_i128(0, 1) : zig_as_i128(0, 0);1142 zig_i128 sign_mask = zig_cmp_i128(lhs, zig_as_i128(0, 0)) < zig_as_i32(0) ? -zig_as_i128(0, 1) : zig_as_i128(0, 0);
1143 return zig_xor_i128(zig_bitcast_i128(zig_shr_u128(zig_bitcast_u128(zig_xor_i128(lhs, sign_mask)), rhs)), sign_mask);1143 return zig_xor_i128(zig_bitcast_i128(zig_shr_u128(zig_bitcast_u128(zig_xor_i128(lhs, sign_mask)), rhs)), sign_mask);
1144}1144}
11451145
...@@ -1193,8 +1193,8 @@ static inline zig_bool zig_shlo_u128(zig_u128 *res, zig_u128 lhs, zig_u8 rhs, zi...@@ -1193,8 +1193,8 @@ static inline zig_bool zig_shlo_u128(zig_u128 *res, zig_u128 lhs, zig_u8 rhs, zi
1193static inline zig_bool zig_shlo_i128(zig_i128 *res, zig_i128 lhs, zig_u8 rhs, zig_u8 bits) {1193static inline zig_bool zig_shlo_i128(zig_i128 *res, zig_i128 lhs, zig_u8 rhs, zig_u8 bits) {
1194 *res = zig_shlw_i128(lhs, rhs, bits);1194 *res = zig_shlw_i128(lhs, rhs, bits);
1195 zig_i128 mask = zig_bitcast_i128(zig_shl_u128(zig_maxInt_u128, bits - rhs - zig_as_u8(1)));1195 zig_i128 mask = zig_bitcast_i128(zig_shl_u128(zig_maxInt_u128, bits - rhs - zig_as_u8(1)));
1196 return zig_cmp_i128(zig_and_i128(lhs, mask), zig_as_i128(0, 0)) != zig_as_i8(0) &&1196 return zig_cmp_i128(zig_and_i128(lhs, mask), zig_as_i128(0, 0)) != zig_as_i32(0) &&
1197 zig_cmp_i128(zig_and_i128(lhs, mask), mask) != zig_as_i8(0);1197 zig_cmp_i128(zig_and_i128(lhs, mask), mask) != zig_as_i32(0);
1198}1198}
11991199
1200static inline zig_bool zig_addo_u128(zig_u128 *res, zig_u128 lhs, zig_u128 rhs, zig_u8 bits) {1200static inline zig_bool zig_addo_u128(zig_u128 *res, zig_u128 lhs, zig_u128 rhs, zig_u8 bits) {
...@@ -1291,15 +1291,15 @@ static inline zig_bool zig_subo_u128(zig_u128 *res, zig_u128 lhs, zig_u128 rhs)...@@ -1291,15 +1291,15 @@ static inline zig_bool zig_subo_u128(zig_u128 *res, zig_u128 lhs, zig_u128 rhs)
12911291
1292static inline zig_u128 zig_shls_u128(zig_u128 lhs, zig_u128 rhs, zig_u8 bits) {1292static inline zig_u128 zig_shls_u128(zig_u128 lhs, zig_u128 rhs, zig_u8 bits) {
1293 zig_u128 res;1293 zig_u128 res;
1294 if (zig_cmp_u128(rhs, zig_as_u128(0, bits)) >= zig_as_i8(0))1294 if (zig_cmp_u128(rhs, zig_as_u128(0, bits)) >= zig_as_i32(0))
1295 return zig_cmp_u128(lhs, zig_as_u128(0, 0)) != zig_as_i8(0) ? zig_maxInt(u128, bits) : lhs;1295 return zig_cmp_u128(lhs, zig_as_u128(0, 0)) != zig_as_i32(0) ? zig_maxInt(u128, bits) : lhs;
1296 return zig_shlo_u128(&res, lhs, (zig_u8)rhs, bits) ? zig_maxInt(u128, bits) : res;1296 return zig_shlo_u128(&res, lhs, (zig_u8)rhs, bits) ? zig_maxInt(u128, bits) : res;
1297}1297}
12981298
1299static inline zig_i128 zig_shls_i128(zig_i128 lhs, zig_i128 rhs, zig_u8 bits) {1299static inline zig_i128 zig_shls_i128(zig_i128 lhs, zig_i128 rhs, zig_u8 bits) {
1300 zig_i128 res;1300 zig_i128 res;
1301 if (zig_cmp_u128(zig_bitcast_u128(rhs), zig_as_u128(0, bits)) < zig_as_i8(0) && !zig_shlo_i128(&res, lhs, rhs, bits)) return res;1301 if (zig_cmp_u128(zig_bitcast_u128(rhs), zig_as_u128(0, bits)) < zig_as_i32(0) && !zig_shlo_i128(&res, lhs, rhs, bits)) return res;
1302 return zig_cmp_i128(lhs, zig_as_i128(0, 0)) < zig_as_i8(0) ? zig_minInt(i128, bits) : zig_maxInt(i128, bits);1302 return zig_cmp_i128(lhs, zig_as_i128(0, 0)) < zig_as_i32(0) ? zig_minInt(i128, bits) : zig_maxInt(i128, bits);
1303}1303}
13041304
1305static inline zig_u128 zig_adds_u128(zig_u128 lhs, zig_u128 rhs, zig_u8 bits) {1305static inline zig_u128 zig_adds_u128(zig_u128 lhs, zig_u128 rhs, zig_u8 bits) {
...@@ -1310,7 +1310,7 @@ static inline zig_u128 zig_adds_u128(zig_u128 lhs, zig_u128 rhs, zig_u8 bits) {...@@ -1310,7 +1310,7 @@ static inline zig_u128 zig_adds_u128(zig_u128 lhs, zig_u128 rhs, zig_u8 bits) {
1310static inline zig_i128 zig_adds_i128(zig_i128 lhs, zig_i128 rhs, zig_u8 bits) {1310static inline zig_i128 zig_adds_i128(zig_i128 lhs, zig_i128 rhs, zig_u8 bits) {
1311 zig_i128 res;1311 zig_i128 res;
1312 if (!zig_addo_i128(&res, lhs, rhs, bits)) return res;1312 if (!zig_addo_i128(&res, lhs, rhs, bits)) return res;
1313 return zig_cmp_i128(res, zig_as_i128(0, 0)) >= zig_as_i8(0) ? zig_minInt(i128, bits) : zig_maxInt(i128, bits);1313 return zig_cmp_i128(res, zig_as_i128(0, 0)) >= zig_as_i32(0) ? zig_minInt(i128, bits) : zig_maxInt(i128, bits);
1314}1314}
13151315
1316static inline zig_u128 zig_subs_u128(zig_u128 lhs, zig_u128 rhs, zig_u8 bits) {1316static inline zig_u128 zig_subs_u128(zig_u128 lhs, zig_u128 rhs, zig_u8 bits) {
...@@ -1321,7 +1321,7 @@ static inline zig_u128 zig_subs_u128(zig_u128 lhs, zig_u128 rhs, zig_u8 bits) {...@@ -1321,7 +1321,7 @@ static inline zig_u128 zig_subs_u128(zig_u128 lhs, zig_u128 rhs, zig_u8 bits) {
1321static inline zig_i128 zig_subs_i128(zig_i128 lhs, zig_i128 rhs, zig_u8 bits) {1321static inline zig_i128 zig_subs_i128(zig_i128 lhs, zig_i128 rhs, zig_u8 bits) {
1322 zig_i128 res;1322 zig_i128 res;
1323 if (!zig_subo_i128(&res, lhs, rhs, bits)) return res;1323 if (!zig_subo_i128(&res, lhs, rhs, bits)) return res;
1324 return zig_cmp_i128(res, zig_as_i128(0, 0)) >= zig_as_i8(0) ? zig_minInt(i128, bits) : zig_maxInt(i128, bits);1324 return zig_cmp_i128(res, zig_as_i128(0, 0)) >= zig_as_i32(0) ? zig_minInt(i128, bits) : zig_maxInt(i128, bits);
1325}1325}
13261326
1327static inline zig_u128 zig_muls_u128(zig_u128 lhs, zig_u128 rhs, zig_u8 bits) {1327static inline zig_u128 zig_muls_u128(zig_u128 lhs, zig_u128 rhs, zig_u8 bits) {
...@@ -1332,7 +1332,7 @@ static inline zig_u128 zig_muls_u128(zig_u128 lhs, zig_u128 rhs, zig_u8 bits) {...@@ -1332,7 +1332,7 @@ static inline zig_u128 zig_muls_u128(zig_u128 lhs, zig_u128 rhs, zig_u8 bits) {
1332static inline zig_i128 zig_muls_i128(zig_i128 lhs, zig_i128 rhs, zig_u8 bits) {1332static inline zig_i128 zig_muls_i128(zig_i128 lhs, zig_i128 rhs, zig_u8 bits) {
1333 zig_i128 res;1333 zig_i128 res;
1334 if (!zig_mulo_i128(&res, lhs, rhs, bits)) return res;1334 if (!zig_mulo_i128(&res, lhs, rhs, bits)) return res;
1335 return zig_cmp_i128(zig_xor_i128(lhs, rhs), zig_as_i128(0, 0)) < zig_as_i8(0) ? zig_minInt(i128, bits) : zig_maxInt(i128, bits);1335 return zig_cmp_i128(zig_xor_i128(lhs, rhs), zig_as_i128(0, 0)) < zig_as_i32(0) ? zig_minInt(i128, bits) : zig_maxInt(i128, bits);
1336}1336}
13371337
1338static inline zig_u8 zig_clz_u128(zig_u128 val, zig_u8 bits) {1338static inline zig_u8 zig_clz_u128(zig_u128 val, zig_u8 bits) {
...@@ -1584,21 +1584,21 @@ zig_convert_builtin(f128, extend, f80, 2)...@@ -1584,21 +1584,21 @@ zig_convert_builtin(f128, extend, f80, 2)
1584 }1584 }
15851585
1586#define zig_float_less_builtin_0(Type, operation) \1586#define zig_float_less_builtin_0(Type, operation) \
1587 zig_extern zig_i8 zig_expand_concat(zig_expand_concat(__##operation, \1587 zig_extern zig_i32 zig_expand_concat(zig_expand_concat(__##operation, \
1588 zig_compiler_rt_abbrev_##Type), 2)(zig_##Type, zig_##Type); \1588 zig_compiler_rt_abbrev_##Type), 2)(zig_##Type, zig_##Type); \
1589 static inline zig_i8 zig_##operation##_##Type(zig_##Type lhs, zig_##Type rhs) { \1589 static inline zig_i32 zig_##operation##_##Type(zig_##Type lhs, zig_##Type rhs) { \
1590 return (zig_i8)zig_expand_concat(zig_expand_concat(__##operation, zig_compiler_rt_abbrev_##Type), 2)(lhs, rhs); \1590 return zig_expand_concat(zig_expand_concat(__##operation, zig_compiler_rt_abbrev_##Type), 2)(lhs, rhs); \
1591 }1591 }
1592#define zig_float_less_builtin_1(Type, operation) \1592#define zig_float_less_builtin_1(Type, operation) \
1593 static inline zig_i8 zig_##operation##_##Type(zig_##Type lhs, zig_##Type rhs) { \1593 static inline zig_i32 zig_##operation##_##Type(zig_##Type lhs, zig_##Type rhs) { \
1594 return (zig_i8)(!(lhs <= rhs) - (lhs < rhs)); \1594 return (!(lhs <= rhs) - (lhs < rhs)); \
1595 }1595 }
15961596
1597#define zig_float_greater_builtin_0(Type, operation) \1597#define zig_float_greater_builtin_0(Type, operation) \
1598 zig_float_less_builtin_0(Type, operation)1598 zig_float_less_builtin_0(Type, operation)
1599#define zig_float_greater_builtin_1(Type, operation) \1599#define zig_float_greater_builtin_1(Type, operation) \
1600 static inline zig_i8 zig_##operation##_##Type(zig_##Type lhs, zig_##Type rhs) { \1600 static inline zig_i32 zig_##operation##_##Type(zig_##Type lhs, zig_##Type rhs) { \
1601 return (zig_i8)((lhs > rhs) - !(lhs >= rhs)); \1601 return ((lhs > rhs) - !(lhs >= rhs)); \
1602 }1602 }
16031603
1604#define zig_float_binary_builtin_0(Type, operation, operator) \1604#define zig_float_binary_builtin_0(Type, operation, operator) \
src/codegen/c.zig+25-9
...@@ -176,7 +176,7 @@ const reserved_idents = std.ComptimeStringMap(void, .{...@@ -176,7 +176,7 @@ const reserved_idents = std.ComptimeStringMap(void, .{
176 .{ "register", {} },176 .{ "register", {} },
177 .{ "restrict", {} },177 .{ "restrict", {} },
178 .{ "return", {} },178 .{ "return", {} },
179 .{ "short ", {} },179 .{ "short", {} },
180 .{ "signed", {} },180 .{ "signed", {} },
181 .{ "size_t", {} },181 .{ "size_t", {} },
182 .{ "sizeof", {} },182 .{ "sizeof", {} },
...@@ -1140,10 +1140,16 @@ pub const DeclGen = struct {...@@ -1140,10 +1140,16 @@ pub const DeclGen = struct {
1140 const index = ty.unionTagFieldIndex(union_obj.tag, dg.module).?;1140 const index = ty.unionTagFieldIndex(union_obj.tag, dg.module).?;
1141 const field_ty = ty.unionFields().values()[index].ty;1141 const field_ty = ty.unionFields().values()[index].ty;
1142 const field_name = ty.unionFields().keys()[index];1142 const field_name = ty.unionFields().keys()[index];
1143 var it = ty.unionFields().iterator();
1143 if (field_ty.hasRuntimeBits()) {1144 if (field_ty.hasRuntimeBits()) {
1144 try writer.print(".{ } = ", .{fmtIdent(field_name)});1145 try writer.print(".{ } = ", .{fmtIdent(field_name)});
1145 try dg.renderValue(writer, field_ty, union_obj.val, .Initializer);1146 try dg.renderValue(writer, field_ty, union_obj.val, .Initializer);
1146 } else try writer.writeByte('0');1147 } else while (it.next()) |field| {
1148 if (!field.value_ptr.ty.hasRuntimeBits()) continue;
1149 try writer.print(".{ } = ", .{fmtIdent(field.key_ptr.*)});
1150 try dg.renderValue(writer, field.value_ptr.ty, Value.undef, .Initializer);
1151 break;
1152 } else try writer.writeAll(".empty_union = 0");
1147 if (ty.unionTagTypeSafety()) |_| try writer.writeByte('}');1153 if (ty.unionTagTypeSafety()) |_| try writer.writeByte('}');
1148 try writer.writeByte('}');1154 try writer.writeByte('}');
1149 },1155 },
...@@ -2658,12 +2664,14 @@ fn airPtrElemPtr(f: *Function, inst: Air.Inst.Index) !CValue {...@@ -2658,12 +2664,14 @@ fn airPtrElemPtr(f: *Function, inst: Air.Inst.Index) !CValue {
2658 const ty_pl = f.air.instructions.items(.data)[inst].ty_pl;2664 const ty_pl = f.air.instructions.items(.data)[inst].ty_pl;
2659 const bin_op = f.air.extraData(Air.Bin, ty_pl.payload).data;2665 const bin_op = f.air.extraData(Air.Bin, ty_pl.payload).data;
2660 const ptr_ty = f.air.typeOf(bin_op.lhs);2666 const ptr_ty = f.air.typeOf(bin_op.lhs);
2667 const child_ty = ptr_ty.childType();
26612668
2662 const ptr = try f.resolveInst(bin_op.lhs);2669 const ptr = try f.resolveInst(bin_op.lhs);
2670 if (!child_ty.hasRuntimeBitsIgnoreComptime()) return ptr;
2663 const index = try f.resolveInst(bin_op.rhs);2671 const index = try f.resolveInst(bin_op.rhs);
2672
2664 const writer = f.object.writer();2673 const writer = f.object.writer();
2665 const local = try f.allocLocal(f.air.typeOfIndex(inst), .Const);2674 const local = try f.allocLocal(f.air.typeOfIndex(inst), .Const);
2666
2667 try writer.writeAll(" = &(");2675 try writer.writeAll(" = &(");
2668 if (ptr_ty.ptrSize() == .One) {2676 if (ptr_ty.ptrSize() == .One) {
2669 // It's a pointer to an array, so we need to de-reference.2677 // It's a pointer to an array, so we need to de-reference.
...@@ -2717,15 +2725,23 @@ fn airSliceElemPtr(f: *Function, inst: Air.Inst.Index) !CValue {...@@ -2717,15 +2725,23 @@ fn airSliceElemPtr(f: *Function, inst: Air.Inst.Index) !CValue {
2717 const ty_pl = f.air.instructions.items(.data)[inst].ty_pl;2725 const ty_pl = f.air.instructions.items(.data)[inst].ty_pl;
2718 const bin_op = f.air.extraData(Air.Bin, ty_pl.payload).data;2726 const bin_op = f.air.extraData(Air.Bin, ty_pl.payload).data;
27192727
2728 const slice_ty = f.air.typeOf(bin_op.lhs);
2729 const child_ty = slice_ty.elemType2();
2720 const slice = try f.resolveInst(bin_op.lhs);2730 const slice = try f.resolveInst(bin_op.lhs);
2721 const index = try f.resolveInst(bin_op.rhs);2731
2722 const writer = f.object.writer();2732 const writer = f.object.writer();
2723 const local = try f.allocLocal(f.air.typeOfIndex(inst), .Const);2733 const local = try f.allocLocal(f.air.typeOfIndex(inst), .Const);
2724 try writer.writeAll(" = &");2734 try writer.writeAll(" = ");
2735 if (child_ty.hasRuntimeBitsIgnoreComptime()) try writer.writeByte('&');
2725 try f.writeCValue(writer, slice, .Other);2736 try f.writeCValue(writer, slice, .Other);
2726 try writer.writeAll(".ptr[");2737 try writer.writeAll(".ptr");
2727 try f.writeCValue(writer, index, .Other);2738 if (child_ty.hasRuntimeBitsIgnoreComptime()) {
2728 try writer.writeAll("];\n");2739 const index = try f.resolveInst(bin_op.rhs);
2740 try writer.writeByte('[');
2741 try f.writeCValue(writer, index, .Other);
2742 try writer.writeByte(']');
2743 }
2744 try writer.writeAll(";\n");
2729 return local;2745 return local;
2730}2746}
27312747
...@@ -4825,7 +4841,7 @@ fn airCmpBuiltinCall(...@@ -4825,7 +4841,7 @@ fn airCmpBuiltinCall(
4825 try f.writeCValue(writer, try f.resolveInst(bin_op.lhs), .FunctionArgument);4841 try f.writeCValue(writer, try f.resolveInst(bin_op.lhs), .FunctionArgument);
4826 try writer.writeAll(", ");4842 try writer.writeAll(", ");
4827 try f.writeCValue(writer, try f.resolveInst(bin_op.rhs), .FunctionArgument);4843 try f.writeCValue(writer, try f.resolveInst(bin_op.rhs), .FunctionArgument);
4828 try writer.print(") {s} {};\n", .{ operator, try f.fmtIntLiteral(Type.initTag(.i8), Value.zero) });4844 try writer.print(") {s} {};\n", .{ operator, try f.fmtIntLiteral(Type.initTag(.i32), Value.zero) });
4829 return local;4845 return local;
4830}4846}
48314847