Skip to content

Advancing beyond end in AstGen.advanceSourceCursor #13714

@rened

Description

@rened

Zig Version

0.11.0-dev.386+deda6b514

Steps to Reproduce and Observed Behavior

Create main.zig containing

pub fn main() !void {
    var image: [1]u8 = undefined;
    _ = @shlExact(@as(u16, image[0]), 8);
}

and run zig2 build-exe main.zig. It panics in

thread 4551387 panic: reached unreachable code
/Users/rene/gex/zig/lib/std/debug.zig:278:14: 0x100b7748f in std.debug.assert (zig2)
    if (!ok) unreachable; // assertion failure
             ^
/Users/rene/gex/zig/src/AstGen.zig:12225:11: 0x10136caff in AstGen.advanceSourceCursor (zig2)
    assert(i <= end);
          ^
/Users/rene/gex/zig/src/AstGen.zig:12208:34: 0x1013971cf in AstGen.maybeAdvanceSourceCursorToMainToken (zig2)
    gz.astgen.advanceSourceCursor(node_start);
                                 ^
/Users/rene/gex/zig/src/AstGen.zig:8556:40: 0x101378693 in AstGen.shiftOp (zig2)
    maybeAdvanceSourceCursorToMainToken(gz, node);
                                       ^
/Users/rene/gex/zig/src/AstGen.zig:8120:37: 0x10138a14b in AstGen.builtinCall (zig2)
        .shl_exact => return shiftOp(gz, scope, ri, node, params[0], params[1], .shl_exact),
                                    ^

Expected Behavior

To compile without error. Works with zig 0.10 and 0.9.1.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugObserved behavior contradicts documented or intended behaviorfrontendTokenization, parsing, AstGen, Sema, and Liveness.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions