Open tw4452852 opened 3 weeks ago
0.14.0-dev.1292+3fb6e46f6e
zig build, then crash:
error: thread 10593 panic: index out of bounds: index 2, len 2 /home/tw/code/zig/src/codegen/llvm.zig:8836:34: 0x5ff99e9 in airArg (zig) const arg_val = self.args[self.arg_index]; ^ /home/tw/code/zig/src/codegen/llvm.zig:4964:51: 0x5b03158 in genBody (zig) .arg => try self.airArg(inst), ^ /home/tw/code/zig/src/codegen/llvm.zig:1682:19: 0x5afe20c in updateFunc (zig) fg.genBody(air.getMainBody()) catch |err| switch (err) { ^ /home/tw/code/zig/src/link/Elf.zig:2916:70: 0x5fbf235 in updateFunc (zig) if (self.llvm_object) |llvm_object| return llvm_object.updateFunc(pt, func_index, air, liveness); ^ /home/tw/code/zig/src/link.zig:426:82: 0x5b08c85 in updateFunc (zig) return @as(*tag.Type(), @fieldParentPtr("base", base)).updateFunc(pt, func_index, air, liveness); ^ /home/tw/code/zig/src/Zcu/PerThread.zig:876:22: 0x5700c5e in linkerUpdateFunc (zig) lf.updateFunc(pt, func_index, air, liveness) catch |err| switch (err) { ^ /home/tw/code/zig/src/Compilation.zig:3975:36: 0x528298e in processOneCodegenJob (zig) try pt.linkerUpdateFunc(func.func, func.air); ^ /home/tw/code/zig/src/Compilation.zig:3928:36: 0x52825d1 in queueCodegenJob (zig) return processOneCodegenJob(tid, comp, codegen_job); ^ /home/tw/code/zig/src/Compilation.zig:3682:37: 0x4fa5b8f in processOneJob (zig) try comp.queueCodegenJob(tid, .{ .func = .{ ^ /home/tw/code/zig/src/Compilation.zig:3638:30: 0x4d27871 in performAllTheWorkInner (zig) try processOneJob(@intFromEnum(Zcu.PerThread.Id.main), comp, job, main_progress_node); ^ /home/tw/code/zig/src/Compilation.zig:3508:36: 0x4bbefb0 in performAllTheWork (zig) try comp.performAllTheWorkInner(main_progress_node); ^ /home/tw/code/zig/src/Compilation.zig:2269:31: 0x4bba759 in update (zig) try comp.performAllTheWork(main_progress_node); ^ /home/tw/code/zig/src/main.zig:4156:32: 0x4c09501 in serve (zig) try comp.update(main_progress_node); ^ /home/tw/code/zig/src/main.zig:3453:22: 0x4c28f32 in buildOutputType (zig) try serve( ^ /home/tw/code/zig/src/main.zig:258:31: 0x4a71ba6 in mainArgs (zig) return buildOutputType(gpa, arena, args, .{ .build = .Exe }); ^ /home/tw/code/zig/src/main.zig:199:20: 0x4a6eb75 in main (zig) return mainArgs(gpa, arena, args); ^ /home/tw/code/zig/lib/std/start.zig:614:37: 0x4a6e69e in main (zig) const result = root.main() catch |err| { ^ ../sysdeps/nptl/libc_start_call_main.h:58:16: 0x7f3e375d0c4b in __libc_start_call_main (../sysdeps/x86/libc-start.c) ../csu/libc-start.c:360:3: 0x7f3e375d0d04 in __libc_start_main_impl (../sysdeps/x86/libc-start.c) ../sysdeps/x86_64/start.S:115:0: 0x4a6e2e0 in _start (../sysdeps/x86_64/start.S)
no crash
I did a little test here, this issue only happens when passing struct argument.
Please also share the input program / the reduced test case that triggered the crash for you.
Zig Version
0.14.0-dev.1292+3fb6e46f6e
Steps to Reproduce and Observed Behavior
zig build, then crash:
Expected Behavior
no crash