authorgravatar for david@vortan.devDavid Rubin <david@vortan.dev> 2024-04-22 07:14:02-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-04-23 17:16:54-07:00
logeb28c8aa352b251528947364f59eafab280dff59
treece63452c03cf228a6b13f92a9dac07ff067e93cb
parentf6773232ac738ff16c5e3572e3678019ba2a4b88

error on `undefined` end index


2 files changed, 11 insertions(+), 1 deletions(-)

src/Sema.zig+1-1
......@@ -32507,7 +32507,7 @@ fn analyzeSlice(
3250732507 const uncasted_end = try sema.analyzeArithmetic(block, .add, start, len, src, start_src, end_src, false);
3250832508 break :end try sema.coerce(block, Type.usize, uncasted_end, end_src);
3250932509 } else try sema.coerce(block, Type.usize, uncasted_end_opt, end_src);
32510 if (try sema.resolveValue(end)) |end_val| {
32510 if (try sema.resolveDefinedValue(block, end_src, end)) |end_val| {
3251132511 const len_s_val = try mod.intValue(
3251232512 Type.usize,
3251332513 array_ty.arrayLenIncludingSentinel(mod),
test/cases/compile_errors/slice_end_index_undefined.zig created+10
......@@ -0,0 +1,10 @@
1export fn a() void {
2 var array: [0]void = undefined;
3 _ = array[0..undefined];
4}
5
6// error
7// backend=stage2
8// target=native
9//
10// :3:18: error: use of undefined value here causes undefined behavior