Skip to content

x86_64: crash lowering field access through a pointer passed in memory #23448

@Rexicon226

Description

@Rexicon226

Zig Version

0.15.0-dev.184+9dfdf3503

Steps to Reproduce and Observed Behavior

export fn a(
    _: usize,
    _: usize,
    _: usize,
    _: usize,
    _: usize,
    _: usize,
    b: *struct { c: []u64 },
) usize {
    return b.c.len;
}
thread 45459174 panic: reached unreachable code
/Users/david/Code/zig/src/arch/x86_64/CodeGen.zig:99181:12: 0x10aa7681f in genSetReg (zig)
        => unreachable,
           ^
/Users/david/Code/zig/src/arch/x86_64/CodeGen.zig:99006:50: 0x10aa7ca8f in genCopy (zig)
        .register => |dst_reg| try self.genSetReg(dst_reg, ty, src_mcv, opts),
                                                 ^
/Users/david/Code/zig/src/arch/x86_64/CodeGen.zig:109609:31: 0x10b79a3bf in finish (zig)
                try cg.genCopy(cg.typeOfIndex(inst), result, temp.tracking(cg).short, .{});
                              ^
/Users/david/Code/zig/src/arch/x86_64/CodeGen.zig:65222:34: 0x10b4cdc6b in genBody (zig)
                try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg);
                                 ^
/Users/david/Code/zig/src/arch/x86_64/CodeGen.zig:2254:25: 0x10b1a3623 in gen (zig)
        try self.genBody(self.air.getMainBody());
                        ^

Expected Behavior

No crash!

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

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions