-
-
Notifications
You must be signed in to change notification settings - Fork 3k
Open
Labels
bugObserved behavior contradicts documented or intended behaviorObserved behavior contradicts documented or intended behavior
Milestone
Description
Zig Version
0.11.0-dev.1580+a5b34a61a and 0.11.0-dev.1571+c1f71963a
Steps to Reproduce and Observed Behavior
Run `zig test on the following:
const std = @import("std");
pub const Request = packed struct {
nr: u8,
io_type: u8,
size: u14,
dir: u2,
};
fn IOR(comptime T: type) u32 {
const request = Request{
.dir = 0,
.size = @sizeOf(T),
.io_type = 0,
.nr = 0,
};
return @bitCast(u32, request);
}
test {
_ = IOR(struct { x: u32 });
}
><> ~/play/zig/zig-master/stage3/bin/zig test rep.zig
thread 10620 panic: reached unreachable code
Analyzing rep.zig: rep.zig:IOR__anon_1022
%15 = dbg_block_begin()
%16 = dbg_stmt(2, 5)
%17 = alloc_inferred() node_offset:11:5 to :11:10
%18 = decl_val("Request") token_offset:11:21 to :11:28
%19 = validate_struct_init_ty(%18) node_offset:11:21 to :11:29
%20 = coerce_result_ptr(%18, %17) node_offset:11:21 to :11:29
%21 = field_ptr_init(%20, "dir") node_offset:12:16 to :12:17
%22 = store_node(%21, @Zir.Inst.Ref.zero) node_offset:12:16 to :12:17
%23 = field_ptr_init(%20, "size") node_offset:13:17 to :13:27
%24 = size_of(%13) node_offset:13:17 to :13:27
%25 = store_node(%23, %24) node_offset:13:17 to :13:27
%26 = field_ptr_init(%20, "io_type") node_offset:14:20 to :14:21
%27 = store_node(%26, @Zir.Inst.Ref.zero) node_offset:14:20 to :14:21
%28 = field_ptr_init(%20, "nr") node_offset:15:15 to :15:16
%29 = store_node(%28, @Zir.Inst.Ref.zero) node_offset:15:15 to :15:16
%30 = validate_struct_init({
%21 = field_ptr_init(%20, "dir") node_offset:12:16 to :12:17
%23 = field_ptr_init(%20, "size") node_offset:13:17 to :13:27
%26 = field_ptr_init(%20, "io_type") node_offset:14:20 to :14:21
%28 = field_ptr_init(%20, "nr") node_offset:15:15 to :15:16
}) node_offset:11:21 to :11:29
%31 = resolve_inferred_alloc(%17) node_offset:11:5 to :11:10
%32 = make_ptr_const(%17) node_offset:11:5 to :11:10
%33 = dbg_var_ptr(%32, "request")
%34 = dbg_stmt(8, 5)
%35 = ret_type() node_offset:17:5 to :17:34
%36 = load(%32) node_offset:17:26 to :17:33
> %37 = bitcast(@Zir.Inst.Ref.u32_type, %36) node_offset:17:12 to :17:34
%38 = as_node(%35, %37) node_offset:17:12 to :17:34
%39 = restore_err_ret_index(@Zir.Inst.Ref.none, @Zir.Inst.Ref.none)
%40 = dbg_stmt(8, 5)
%41 = ret_node(%38) node_offset:17:5 to :17:34
%42 = dbg_block_end()
%43 = restore_err_ret_index(%14, @Zir.Inst.Ref.none)
%44 = break(%14, @Zir.Inst.Ref.void_value)
For full context, use the command
zig ast-check -t rep.zig
in rep.zig: rep.zig:IOR__anon_1022
> %14 = block({%15..%44}) node_offset:10:30 to :10:31
/home/tom/play/zig/zig-master/src/value.zig:1386:33: 0xf062af in writeToPackedMemory (zig)
/home/tom/play/zig/zig-master/src/value.zig:1428:93: 0xf05e75 in writeToPackedMemory (zig)
/home/tom/play/zig/zig-master/src/value.zig:1334:61: 0x1600595 in writeToMemory (zig)
/home/tom/play/zig/zig-master/src/Sema.zig:27307:35: 0x1776aa2 in bitCastVal (zig)
/home/tom/play/zig/zig-master/src/Sema.zig:27283:47: 0x127dbd0 in bitCast (zig)
/home/tom/play/zig/zig-master/src/Sema.zig:9554:24: 0x11816dd in zirBitcast (zig)
/home/tom/play/zig/zig-master/src/Sema.zig:905:65: 0xeb6009 in analyzeBodyInner (zig)
/home/tom/play/zig/zig-master/src/Sema.zig:5312:34: 0x16f2689 in resolveBlockBody (zig)
/home/tom/play/zig/zig-master/src/Sema.zig:5295:85: 0x124c8b2 in zirBlock (zig)
/home/tom/play/zig/zig-master/src/Sema.zig:1448:69: 0xec75ad in analyzeBodyInner (zig)
/home/tom/play/zig/zig-master/src/Sema.zig:793:30: 0x1130e58 in analyzeBody (zig)
/home/tom/play/zig/zig-master/src/Module.zig:5511:43: 0xe9858a in analyzeFnBody (zig)
/home/tom/play/zig/zig-master/src/Module.zig:4204:40: 0xc55521 in ensureFuncBodyAnalyzed (zig)
/home/tom/play/zig/zig-master/src/Compilation.zig:3212:42: 0xc53125 in processOneJob (zig)
/home/tom/play/zig/zig-master/src/Compilation.zig:3150:30: 0xaa95c7 in performAllTheWork (zig)
/home/tom/play/zig/zig-master/src/Compilation.zig:2400:31: 0xaa426c in update (zig)
/home/tom/play/zig/zig-master/src/main.zig:3525:20: 0xacc9fd in updateModule (zig)
/home/tom/play/zig/zig-master/src/main.zig:3188:17: 0x9b0890 in buildOutputType (zig)
/home/tom/play/zig/zig-master/src/main.zig:269:31: 0x98a1b4 in mainArgs (zig)
/home/tom/play/zig/zig-master/src/main.zig:207:20: 0x989665 in main (zig)
/home/tom/play/zig/zig-master/lib/std/start.zig:616:37: 0x98bd47 in main (zig)
???:?:?: 0x7f6eda4617dc in ??? (???)
fish: Job 1, '~/play/zig/zig-master/stage3/bi…' terminated by signal SIGABRT (Abort)
Expected Behavior
Compiles successfully
Metadata
Metadata
Assignees
Labels
bugObserved behavior contradicts documented or intended behaviorObserved behavior contradicts documented or intended behavior