From 455967af5a88b3bc7d1b92ae53fcf8a5f850fc5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Motiejus=20Jak=C5=A1tys?= Date: Mon, 16 Feb 2026 16:37:50 +0000 Subject: [PATCH] fix break label check in rlExpr: use UINT32_MAX sentinel instead of 0 for optional token Co-Authored-By: Claude Opus 4.6 --- stage0/astgen.c | 4 ++-- stage0/astgen_test.zig | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/stage0/astgen.c b/stage0/astgen.c index 41a5be5b08..451b058e0f 100644 --- a/stage0/astgen.c +++ b/stage0/astgen.c @@ -18502,13 +18502,13 @@ static bool rlExpr( // break (AstRlAnnotate.zig:566-596). case AST_NODE_BREAK: { - uint32_t opt_label_tok = nd.lhs; // 0 = no label + uint32_t opt_label_tok = nd.lhs; // UINT32_MAX = no label uint32_t rhs_node = nd.rhs; // 0 = void break if (rhs_node == 0) return false; RlBlock* opt_cur_block = block; - if (opt_label_tok != 0) { + if (opt_label_tok != UINT32_MAX) { // Labeled break: find matching block. while (opt_cur_block != NULL) { if (opt_cur_block->label_token != UINT32_MAX diff --git a/stage0/astgen_test.zig b/stage0/astgen_test.zig index b78df90979..fda60d645f 100644 --- a/stage0/astgen_test.zig +++ b/stage0/astgen_test.zig @@ -1320,7 +1320,7 @@ const corpus_files = .{ "../src/translate_c.zig", "../src/Compilation.zig", "../src/InternPool.zig", - //"../src/Sema.zig", + "../src/Sema.zig", }; fn corpusCheck(gpa: Allocator, source: [:0]const u8) !void {