diff options
| author | Veikka Tuominen <git@vexu.eu> | 2022-11-29 14:29:50 +0200 |
|---|---|---|
| committer | Veikka Tuominen <git@vexu.eu> | 2022-11-29 15:47:02 +0200 |
| commit | 6337c04244d9c27cc6535340347d4c127f4742eb (patch) | |
| tree | 3e70b1474b28a0f10428255648b59ab64a71b35d /lib/std | |
| parent | 6f9c7e33b956686ebfd4690c7f85a602d0ac9ffe (diff) | |
| download | zig-6337c04244d9c27cc6535340347d4c127f4742eb.tar.gz zig-6337c04244d9c27cc6535340347d4c127f4742eb.zip | |
Sema: improve panic for slice start index being greater than end index
Closes #13689
Diffstat (limited to 'lib/std')
| -rw-r--r-- | lib/std/builtin.zig | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/std/builtin.zig b/lib/std/builtin.zig index 1f7d48ccb9..09833988ae 100644 --- a/lib/std/builtin.zig +++ b/lib/std/builtin.zig @@ -863,10 +863,9 @@ pub fn panicOutOfBounds(index: usize, len: usize) noreturn { std.debug.panicExtra(null, @returnAddress(), "index out of bounds: index {d}, len {d}", .{ index, len }); } -pub noinline fn returnError(st: *StackTrace) void { +pub fn panicStartGreaterThanEnd(start: usize, end: usize) noreturn { @setCold(true); - @setRuntimeSafety(false); - addErrRetTraceAddr(st, @returnAddress()); + std.debug.panicExtra(null, @returnAddress(), "start index {d} is larger than end index {d}", .{ start, end }); } pub const panic_messages = struct { @@ -889,6 +888,12 @@ pub const panic_messages = struct { pub const invalid_enum_value = "invalid enum value"; }; +pub noinline fn returnError(st: *StackTrace) void { + @setCold(true); + @setRuntimeSafety(false); + addErrRetTraceAddr(st, @returnAddress()); +} + pub inline fn addErrRetTraceAddr(st: *StackTrace, addr: usize) void { if (st.index < st.instruction_addresses.len) st.instruction_addresses[st.index] = addr; |
