| author | |
| committer | |
| log | 28729efe2998579fc36a35e5bdab12727ece1e7a |
| tree | 56339a095da516a56b72749d3272fadbeb5163eb |
| parent | 6b0f7de247f3c12281f47f38738e93651d6bf51b |
5 files changed, 78 insertions(+), 5 deletions(-)
lib/std/math/big/int.zig+2-2| ... | ... | @@ -62,6 +62,7 @@ pub const Int = struct { |
| 62 | 62 | |
| 63 | 63 | /// Hint: use `calcLimbLen` to figure out how big an array to allocate for `limbs`. |
| 64 | 64 | pub fn initSetFixed(limbs: []Limb, value: var) Int { |
| 65 | mem.set(Limb, limbs, 0); | |
| 65 | 66 | var s = Int.initFixed(limbs); |
| 66 | 67 | s.set(value) catch unreachable; |
| 67 | 68 | return s; |
| ... | ... | @@ -126,11 +127,10 @@ pub const Int = struct { |
| 126 | 127 | /// sufficient capacity, the exact amount will be allocated. This occurs even if the requested |
| 127 | 128 | /// capacity is only greater than the current capacity by one limb. |
| 128 | 129 | pub fn ensureCapacity(self: *Int, capacity: usize) !void { |
| 129 | self.assertWritable(); | |
| 130 | 130 | if (capacity <= self.limbs.len) { |
| 131 | 131 | return; |
| 132 | 132 | } |
| 133 | ||
| 133 | self.assertWritable(); | |
| 134 | 134 | self.limbs = try self.allocator.?.realloc(self.limbs, capacity); |
| 135 | 135 | } |
| 136 | 136 |
src-self-hosted/ir.zig+22| ... | ... | @@ -22,6 +22,7 @@ pub const Inst = struct { |
| 22 | 22 | |
| 23 | 23 | pub const Tag = enum { |
| 24 | 24 | unreach, |
| 25 | ret, | |
| 25 | 26 | constant, |
| 26 | 27 | assembly, |
| 27 | 28 | ptrtoint, |
| ... | ... | @@ -58,6 +59,12 @@ pub const Inst = struct { |
| 58 | 59 | args: void, |
| 59 | 60 | }; |
| 60 | 61 | |
| 62 | pub const Ret = struct { | |
| 63 | pub const base_tag = Tag.ret; | |
| 64 | base: Inst, | |
| 65 | args: void, | |
| 66 | }; | |
| 67 | ||
| 61 | 68 | pub const Constant = struct { |
| 62 | 69 | pub const base_tag = Tag.constant; |
| 63 | 70 | base: Inst, |
| ... | ... | @@ -491,6 +498,7 @@ const Analyze = struct { |
| 491 | 498 | .as => return self.analyzeInstAs(block, old_inst.cast(text.Inst.As).?), |
| 492 | 499 | .@"asm" => return self.analyzeInstAsm(block, old_inst.cast(text.Inst.Asm).?), |
| 493 | 500 | .@"unreachable" => return self.analyzeInstUnreachable(block, old_inst.cast(text.Inst.Unreachable).?), |
| 501 | .@"return" => return self.analyzeInstRet(block, old_inst.cast(text.Inst.Return).?), | |
| 494 | 502 | .@"fn" => return self.analyzeInstFn(block, old_inst.cast(text.Inst.Fn).?), |
| 495 | 503 | .@"export" => { |
| 496 | 504 | try self.analyzeExport(block, old_inst.cast(text.Inst.Export).?); |
| ... | ... | @@ -556,6 +564,13 @@ const Analyze = struct { |
| 556 | 564 | return self.constType(fntype.base.src, Type.initTag(.fn_naked_noreturn_no_args)); |
| 557 | 565 | } |
| 558 | 566 | |
| 567 | if (return_type.zigTypeTag() == .Void and | |
| 568 | fntype.positionals.param_types.len == 0 and | |
| 569 | fntype.kw_args.cc == .C) | |
| 570 | { | |
| 571 | return self.constType(fntype.base.src, Type.initTag(.fn_ccc_void_no_args)); | |
| 572 | } | |
| 573 | ||
| 559 | 574 | return self.fail(fntype.base.src, "TODO implement fntype instruction more", .{}); |
| 560 | 575 | } |
| 561 | 576 | |
| ... | ... | @@ -886,6 +901,11 @@ const Analyze = struct { |
| 886 | 901 | return self.addNewInstArgs(b, unreach.base.src, Type.initTag(.noreturn), Inst.Unreach, {}); |
| 887 | 902 | } |
| 888 | 903 | |
| 904 | fn analyzeInstRet(self: *Analyze, block: ?*Block, inst: *text.Inst.Return) InnerError!*Inst { | |
| 905 | const b = try self.requireRuntimeBlock(block, inst.base.src); | |
| 906 | return self.addNewInstArgs(b, inst.base.src, Type.initTag(.noreturn), Inst.Ret, {}); | |
| 907 | } | |
| 908 | ||
| 889 | 909 | fn analyzeBody(self: *Analyze, block: ?*Block, body: text.Module.Body) !void { |
| 890 | 910 | for (body.instructions) |src_inst| { |
| 891 | 911 | const new_inst = self.analyzeInst(block, src_inst) catch |err| { |
| ... | ... | @@ -1199,11 +1219,13 @@ pub fn main() anyerror!void { |
| 1199 | 1219 | const allocator = if (std.builtin.link_libc) std.heap.c_allocator else &arena.allocator; |
| 1200 | 1220 | |
| 1201 | 1221 | const args = try std.process.argsAlloc(allocator); |
| 1222 | defer std.process.argsFree(allocator, args); | |
| 1202 | 1223 | |
| 1203 | 1224 | const src_path = args[1]; |
| 1204 | 1225 | const debug_error_trace = true; |
| 1205 | 1226 | |
| 1206 | 1227 | const source = try std.fs.cwd().readFileAllocOptions(allocator, src_path, std.math.maxInt(u32), 1, 0); |
| 1228 | defer allocator.free(source); | |
| 1207 | 1229 | |
| 1208 | 1230 | var zir_module = try text.parse(allocator, source); |
| 1209 | 1231 | defer zir_module.deinit(allocator); |
src-self-hosted/ir/text.zig+24-3| ... | ... | @@ -26,6 +26,7 @@ pub const Inst = struct { |
| 26 | 26 | as, |
| 27 | 27 | @"asm", |
| 28 | 28 | @"unreachable", |
| 29 | @"return", | |
| 29 | 30 | @"fn", |
| 30 | 31 | @"export", |
| 31 | 32 | primitive, |
| ... | ... | @@ -50,6 +51,7 @@ pub const Inst = struct { |
| 50 | 51 | .as => As, |
| 51 | 52 | .@"asm" => Asm, |
| 52 | 53 | .@"unreachable" => Unreachable, |
| 54 | .@"return" => Return, | |
| 53 | 55 | .@"fn" => Fn, |
| 54 | 56 | .@"export" => Export, |
| 55 | 57 | .primitive => Primitive, |
| ... | ... | @@ -159,6 +161,14 @@ pub const Inst = struct { |
| 159 | 161 | kw_args: struct {}, |
| 160 | 162 | }; |
| 161 | 163 | |
| 164 | pub const Return = struct { | |
| 165 | pub const base_tag = Tag.@"return"; | |
| 166 | base: Inst, | |
| 167 | ||
| 168 | positionals: struct {}, | |
| 169 | kw_args: struct {}, | |
| 170 | }; | |
| 171 | ||
| 162 | 172 | pub const Fn = struct { |
| 163 | 173 | pub const base_tag = Tag.@"fn"; |
| 164 | 174 | base: Inst, |
| ... | ... | @@ -417,6 +427,7 @@ pub const Module = struct { |
| 417 | 427 | .as => return self.writeInstToStreamGeneric(stream, .as, decl, inst_table), |
| 418 | 428 | .@"asm" => return self.writeInstToStreamGeneric(stream, .@"asm", decl, inst_table), |
| 419 | 429 | .@"unreachable" => return self.writeInstToStreamGeneric(stream, .@"unreachable", decl, inst_table), |
| 430 | .@"return" => return self.writeInstToStreamGeneric(stream, .@"return", decl, inst_table), | |
| 420 | 431 | .@"fn" => return self.writeInstToStreamGeneric(stream, .@"fn", decl, inst_table), |
| 421 | 432 | .@"export" => return self.writeInstToStreamGeneric(stream, .@"export", decl, inst_table), |
| 422 | 433 | .primitive => return self.writeInstToStreamGeneric(stream, .primitive, decl, inst_table), |
| ... | ... | @@ -1000,14 +1011,15 @@ const EmitZIR = struct { |
| 1000 | 1011 | |
| 1001 | 1012 | const fn_type = try self.emitType(src, module_fn.fn_type); |
| 1002 | 1013 | |
| 1014 | const arena_instrs = try self.arena.allocator.alloc(*Inst, instructions.items.len); | |
| 1015 | mem.copy(*Inst, arena_instrs, instructions.items); | |
| 1016 | ||
| 1003 | 1017 | const fn_inst = try self.arena.allocator.create(Inst.Fn); |
| 1004 | 1018 | fn_inst.* = .{ |
| 1005 | 1019 | .base = .{ .src = src, .tag = Inst.Fn.base_tag }, |
| 1006 | 1020 | .positionals = .{ |
| 1007 | 1021 | .fn_type = fn_type, |
| 1008 | .body = .{ | |
| 1009 | .instructions = instructions.toOwnedSlice(), | |
| 1010 | }, | |
| 1022 | .body = .{ .instructions = arena_instrs }, | |
| 1011 | 1023 | }, |
| 1012 | 1024 | .kw_args = .{}, |
| 1013 | 1025 | }; |
| ... | ... | @@ -1035,6 +1047,15 @@ const EmitZIR = struct { |
| 1035 | 1047 | }; |
| 1036 | 1048 | break :blk &unreach_inst.base; |
| 1037 | 1049 | }, |
| 1050 | .ret => blk: { | |
| 1051 | const ret_inst = try self.arena.allocator.create(Inst.Return); | |
| 1052 | ret_inst.* = .{ | |
| 1053 | .base = .{ .src = inst.src, .tag = Inst.Return.base_tag }, | |
| 1054 | .positionals = .{}, | |
| 1055 | .kw_args = .{}, | |
| 1056 | }; | |
| 1057 | break :blk &ret_inst.base; | |
| 1058 | }, | |
| 1038 | 1059 | .constant => unreachable, // excluded from function bodies |
| 1039 | 1060 | .assembly => blk: { |
| 1040 | 1061 | const old_inst = inst.cast(ir.Inst.Assembly).?; |
src-self-hosted/type.zig+18| ... | ... | @@ -53,6 +53,7 @@ pub const Type = extern union { |
| 53 | 53 | .noreturn => return .NoReturn, |
| 54 | 54 | |
| 55 | 55 | .fn_naked_noreturn_no_args => return .Fn, |
| 56 | .fn_ccc_void_no_args => return .Fn, | |
| 56 | 57 | |
| 57 | 58 | .array, .array_u8_sentinel_0 => return .Array, |
| 58 | 59 | .single_const_pointer => return .Pointer, |
| ... | ... | @@ -184,6 +185,7 @@ pub const Type = extern union { |
| 184 | 185 | |
| 185 | 186 | .const_slice_u8 => return out_stream.writeAll("[]const u8"), |
| 186 | 187 | .fn_naked_noreturn_no_args => return out_stream.writeAll("fn() callconv(.Naked) noreturn"), |
| 188 | .fn_ccc_void_no_args => return out_stream.writeAll("fn() callconv(.C) void"), | |
| 187 | 189 | .single_const_pointer_to_comptime_int => return out_stream.writeAll("*const comptime_int"), |
| 188 | 190 | |
| 189 | 191 | .array_u8_sentinel_0 => { |
| ... | ... | @@ -243,6 +245,7 @@ pub const Type = extern union { |
| 243 | 245 | .comptime_float => return Value.initTag(.comptime_float_type), |
| 244 | 246 | .noreturn => return Value.initTag(.noreturn_type), |
| 245 | 247 | .fn_naked_noreturn_no_args => return Value.initTag(.fn_naked_noreturn_no_args_type), |
| 248 | .fn_ccc_void_no_args => return Value.initTag(.fn_ccc_void_no_args_type), | |
| 246 | 249 | .single_const_pointer_to_comptime_int => return Value.initTag(.single_const_pointer_to_comptime_int_type), |
| 247 | 250 | .const_slice_u8 => return Value.initTag(.const_slice_u8_type), |
| 248 | 251 | else => { |
| ... | ... | @@ -284,6 +287,7 @@ pub const Type = extern union { |
| 284 | 287 | .array_u8_sentinel_0, |
| 285 | 288 | .const_slice_u8, |
| 286 | 289 | .fn_naked_noreturn_no_args, |
| 290 | .fn_ccc_void_no_args, | |
| 287 | 291 | .int_unsigned, |
| 288 | 292 | .int_signed, |
| 289 | 293 | => false, |
| ... | ... | @@ -326,6 +330,7 @@ pub const Type = extern union { |
| 326 | 330 | .single_const_pointer, |
| 327 | 331 | .single_const_pointer_to_comptime_int, |
| 328 | 332 | .fn_naked_noreturn_no_args, |
| 333 | .fn_ccc_void_no_args, | |
| 329 | 334 | .int_unsigned, |
| 330 | 335 | .int_signed, |
| 331 | 336 | => false, |
| ... | ... | @@ -365,6 +370,7 @@ pub const Type = extern union { |
| 365 | 370 | .array, |
| 366 | 371 | .array_u8_sentinel_0, |
| 367 | 372 | .fn_naked_noreturn_no_args, |
| 373 | .fn_ccc_void_no_args, | |
| 368 | 374 | .int_unsigned, |
| 369 | 375 | .int_signed, |
| 370 | 376 | => unreachable, |
| ... | ... | @@ -405,6 +411,7 @@ pub const Type = extern union { |
| 405 | 411 | .comptime_float, |
| 406 | 412 | .noreturn, |
| 407 | 413 | .fn_naked_noreturn_no_args, |
| 414 | .fn_ccc_void_no_args, | |
| 408 | 415 | .int_unsigned, |
| 409 | 416 | .int_signed, |
| 410 | 417 | => unreachable, |
| ... | ... | @@ -445,6 +452,7 @@ pub const Type = extern union { |
| 445 | 452 | .comptime_float, |
| 446 | 453 | .noreturn, |
| 447 | 454 | .fn_naked_noreturn_no_args, |
| 455 | .fn_ccc_void_no_args, | |
| 448 | 456 | .single_const_pointer, |
| 449 | 457 | .single_const_pointer_to_comptime_int, |
| 450 | 458 | .const_slice_u8, |
| ... | ... | @@ -474,6 +482,7 @@ pub const Type = extern union { |
| 474 | 482 | .comptime_float, |
| 475 | 483 | .noreturn, |
| 476 | 484 | .fn_naked_noreturn_no_args, |
| 485 | .fn_ccc_void_no_args, | |
| 477 | 486 | .array, |
| 478 | 487 | .single_const_pointer, |
| 479 | 488 | .single_const_pointer_to_comptime_int, |
| ... | ... | @@ -516,6 +525,7 @@ pub const Type = extern union { |
| 516 | 525 | .comptime_float, |
| 517 | 526 | .noreturn, |
| 518 | 527 | .fn_naked_noreturn_no_args, |
| 528 | .fn_ccc_void_no_args, | |
| 519 | 529 | .array, |
| 520 | 530 | .single_const_pointer, |
| 521 | 531 | .single_const_pointer_to_comptime_int, |
| ... | ... | @@ -570,6 +580,7 @@ pub const Type = extern union { |
| 570 | 580 | pub fn fnParamLen(self: Type) usize { |
| 571 | 581 | return switch (self.tag()) { |
| 572 | 582 | .fn_naked_noreturn_no_args => 0, |
| 583 | .fn_ccc_void_no_args => 0, | |
| 573 | 584 | |
| 574 | 585 | .f16, |
| 575 | 586 | .f32, |
| ... | ... | @@ -612,6 +623,7 @@ pub const Type = extern union { |
| 612 | 623 | pub fn fnParamTypes(self: Type, types: []Type) void { |
| 613 | 624 | switch (self.tag()) { |
| 614 | 625 | .fn_naked_noreturn_no_args => return, |
| 626 | .fn_ccc_void_no_args => return, | |
| 615 | 627 | |
| 616 | 628 | .f16, |
| 617 | 629 | .f32, |
| ... | ... | @@ -653,6 +665,7 @@ pub const Type = extern union { |
| 653 | 665 | pub fn fnReturnType(self: Type) Type { |
| 654 | 666 | return switch (self.tag()) { |
| 655 | 667 | .fn_naked_noreturn_no_args => Type.initTag(.noreturn), |
| 668 | .fn_ccc_void_no_args => Type.initTag(.void), | |
| 656 | 669 | |
| 657 | 670 | .f16, |
| 658 | 671 | .f32, |
| ... | ... | @@ -694,6 +707,7 @@ pub const Type = extern union { |
| 694 | 707 | pub fn fnCallingConvention(self: Type) std.builtin.CallingConvention { |
| 695 | 708 | return switch (self.tag()) { |
| 696 | 709 | .fn_naked_noreturn_no_args => .Naked, |
| 710 | .fn_ccc_void_no_args => .C, | |
| 697 | 711 | |
| 698 | 712 | .f16, |
| 699 | 713 | .f32, |
| ... | ... | @@ -763,6 +777,7 @@ pub const Type = extern union { |
| 763 | 777 | .anyerror, |
| 764 | 778 | .noreturn, |
| 765 | 779 | .fn_naked_noreturn_no_args, |
| 780 | .fn_ccc_void_no_args, | |
| 766 | 781 | .array, |
| 767 | 782 | .single_const_pointer, |
| 768 | 783 | .single_const_pointer_to_comptime_int, |
| ... | ... | @@ -798,6 +813,7 @@ pub const Type = extern union { |
| 798 | 813 | .type, |
| 799 | 814 | .anyerror, |
| 800 | 815 | .fn_naked_noreturn_no_args, |
| 816 | .fn_ccc_void_no_args, | |
| 801 | 817 | .single_const_pointer_to_comptime_int, |
| 802 | 818 | .array_u8_sentinel_0, |
| 803 | 819 | .const_slice_u8, |
| ... | ... | @@ -850,6 +866,7 @@ pub const Type = extern union { |
| 850 | 866 | .type, |
| 851 | 867 | .anyerror, |
| 852 | 868 | .fn_naked_noreturn_no_args, |
| 869 | .fn_ccc_void_no_args, | |
| 853 | 870 | .single_const_pointer_to_comptime_int, |
| 854 | 871 | .array_u8_sentinel_0, |
| 855 | 872 | .const_slice_u8, |
| ... | ... | @@ -898,6 +915,7 @@ pub const Type = extern union { |
| 898 | 915 | comptime_float, |
| 899 | 916 | noreturn, |
| 900 | 917 | fn_naked_noreturn_no_args, |
| 918 | fn_ccc_void_no_args, | |
| 901 | 919 | single_const_pointer_to_comptime_int, |
| 902 | 920 | const_slice_u8, // See last_no_payload_tag below. |
| 903 | 921 | // After this, the tag requires a payload. |
src-self-hosted/value.zig+12| ... | ... | @@ -45,6 +45,7 @@ pub const Value = extern union { |
| 45 | 45 | comptime_float_type, |
| 46 | 46 | noreturn_type, |
| 47 | 47 | fn_naked_noreturn_no_args_type, |
| 48 | fn_ccc_void_no_args_type, | |
| 48 | 49 | single_const_pointer_to_comptime_int_type, |
| 49 | 50 | const_slice_u8_type, |
| 50 | 51 | |
| ... | ... | @@ -134,6 +135,7 @@ pub const Value = extern union { |
| 134 | 135 | .comptime_float_type => return out_stream.writeAll("comptime_float"), |
| 135 | 136 | .noreturn_type => return out_stream.writeAll("noreturn"), |
| 136 | 137 | .fn_naked_noreturn_no_args_type => return out_stream.writeAll("fn() callconv(.Naked) noreturn"), |
| 138 | .fn_ccc_void_no_args_type => return out_stream.writeAll("fn() callconv(.C) void"), | |
| 137 | 139 | .single_const_pointer_to_comptime_int_type => return out_stream.writeAll("*const comptime_int"), |
| 138 | 140 | .const_slice_u8_type => return out_stream.writeAll("[]const u8"), |
| 139 | 141 | |
| ... | ... | @@ -202,6 +204,7 @@ pub const Value = extern union { |
| 202 | 204 | .comptime_float_type => Type.initTag(.@"comptime_float"), |
| 203 | 205 | .noreturn_type => Type.initTag(.@"noreturn"), |
| 204 | 206 | .fn_naked_noreturn_no_args_type => Type.initTag(.fn_naked_noreturn_no_args), |
| 207 | .fn_ccc_void_no_args_type => Type.initTag(.fn_ccc_void_no_args), | |
| 205 | 208 | .single_const_pointer_to_comptime_int_type => Type.initTag(.single_const_pointer_to_comptime_int), |
| 206 | 209 | .const_slice_u8_type => Type.initTag(.const_slice_u8), |
| 207 | 210 | |
| ... | ... | @@ -253,6 +256,7 @@ pub const Value = extern union { |
| 253 | 256 | .comptime_float_type, |
| 254 | 257 | .noreturn_type, |
| 255 | 258 | .fn_naked_noreturn_no_args_type, |
| 259 | .fn_ccc_void_no_args_type, | |
| 256 | 260 | .single_const_pointer_to_comptime_int_type, |
| 257 | 261 | .const_slice_u8_type, |
| 258 | 262 | .bool_true, |
| ... | ... | @@ -306,6 +310,7 @@ pub const Value = extern union { |
| 306 | 310 | .comptime_float_type, |
| 307 | 311 | .noreturn_type, |
| 308 | 312 | .fn_naked_noreturn_no_args_type, |
| 313 | .fn_ccc_void_no_args_type, | |
| 309 | 314 | .single_const_pointer_to_comptime_int_type, |
| 310 | 315 | .const_slice_u8_type, |
| 311 | 316 | .bool_true, |
| ... | ... | @@ -360,6 +365,7 @@ pub const Value = extern union { |
| 360 | 365 | .comptime_float_type, |
| 361 | 366 | .noreturn_type, |
| 362 | 367 | .fn_naked_noreturn_no_args_type, |
| 368 | .fn_ccc_void_no_args_type, | |
| 363 | 369 | .single_const_pointer_to_comptime_int_type, |
| 364 | 370 | .const_slice_u8_type, |
| 365 | 371 | .bool_true, |
| ... | ... | @@ -419,6 +425,7 @@ pub const Value = extern union { |
| 419 | 425 | .comptime_float_type, |
| 420 | 426 | .noreturn_type, |
| 421 | 427 | .fn_naked_noreturn_no_args_type, |
| 428 | .fn_ccc_void_no_args_type, | |
| 422 | 429 | .single_const_pointer_to_comptime_int_type, |
| 423 | 430 | .const_slice_u8_type, |
| 424 | 431 | .bool_true, |
| ... | ... | @@ -500,6 +507,7 @@ pub const Value = extern union { |
| 500 | 507 | .comptime_float_type, |
| 501 | 508 | .noreturn_type, |
| 502 | 509 | .fn_naked_noreturn_no_args_type, |
| 510 | .fn_ccc_void_no_args_type, | |
| 503 | 511 | .single_const_pointer_to_comptime_int_type, |
| 504 | 512 | .const_slice_u8_type, |
| 505 | 513 | .bool_true, |
| ... | ... | @@ -550,6 +558,7 @@ pub const Value = extern union { |
| 550 | 558 | .comptime_float_type, |
| 551 | 559 | .noreturn_type, |
| 552 | 560 | .fn_naked_noreturn_no_args_type, |
| 561 | .fn_ccc_void_no_args_type, | |
| 553 | 562 | .single_const_pointer_to_comptime_int_type, |
| 554 | 563 | .const_slice_u8_type, |
| 555 | 564 | .bool_true, |
| ... | ... | @@ -639,6 +648,7 @@ pub const Value = extern union { |
| 639 | 648 | .comptime_float_type, |
| 640 | 649 | .noreturn_type, |
| 641 | 650 | .fn_naked_noreturn_no_args_type, |
| 651 | .fn_ccc_void_no_args_type, | |
| 642 | 652 | .single_const_pointer_to_comptime_int_type, |
| 643 | 653 | .const_slice_u8_type, |
| 644 | 654 | .zero, |
| ... | ... | @@ -691,6 +701,7 @@ pub const Value = extern union { |
| 691 | 701 | .comptime_float_type, |
| 692 | 702 | .noreturn_type, |
| 693 | 703 | .fn_naked_noreturn_no_args_type, |
| 704 | .fn_ccc_void_no_args_type, | |
| 694 | 705 | .single_const_pointer_to_comptime_int_type, |
| 695 | 706 | .const_slice_u8_type, |
| 696 | 707 | .zero, |
| ... | ... | @@ -754,6 +765,7 @@ pub const Value = extern union { |
| 754 | 765 | .comptime_float_type, |
| 755 | 766 | .noreturn_type, |
| 756 | 767 | .fn_naked_noreturn_no_args_type, |
| 768 | .fn_ccc_void_no_args_type, | |
| 757 | 769 | .single_const_pointer_to_comptime_int_type, |
| 758 | 770 | .const_slice_u8_type, |
| 759 | 771 | .zero, |