Skip to content

x86: panic: storeRegs storing >256 bit vector from callconv(.c) function #25809

@xdBronch

Description

@xdBronch

Zig Version

0.16.0-dev.1230+459f3b7ed

Steps to Reproduce and Observed Behavior

fn foo() callconv(.c) @Vector(64, u8) {
    return undefined;
}
export fn bar() void {
    var a = foo();
    _ = &a;
}
Compiler crash context:
Generating function 'a.bar'

thread 30755 panic: storeRegs: @Vector(64, u8)

error return context:
/home/user/dev/zig/src/codegen/x86_64/CodeGen.zig:191107:5: 0x25cb385 in select (main.zig)
    return error.SelectFailed;
    ^

stack trace:
/home/user/dev/zig/src/codegen/x86_64/CodeGen.zig:183526:40: 0x2fb0276 in storeRegs (main.zig)
                else => std.debug.panic("{s}: {f}\n", .{ @src().fn_name, src_ty.fmt(cg.pt) }),
                                       ^
/home/user/dev/zig/src/codegen/x86_64/CodeGen.zig:183324:48: 0x2dfac29 in store (main.zig)
                => |val_regs| try ptr.storeRegs(val_ty, &val_regs, cg),
                                               ^
/home/user/dev/zig/src/codegen/x86_64/CodeGen.zig:89569:59: 0x2b67d65 in genBody (main.zig)
                    error.SelectFailed => try ops[0].store(&ops[1], .{
                                                          ^
/home/user/dev/zig/src/codegen/x86_64/CodeGen.zig:2269:19: 0x276216d in genMainBody (main.zig)
    try cg.genBody(main_body[air_arg_count..]);
                  ^

Expected Behavior

no crash please

Metadata

Metadata

Assignees

No one assigned

    Labels

    arch-x86_6464-bit x86backend-self-hostedbugObserved behavior contradicts documented or intended behavior

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions