| author | |
| committer | |
| log | 65a87ff299a364e7d8bab6256e0b05022f1a2620 |
| tree | abcf162300432c9b8f8c1c8ffe692f7877ce71fa |
| parent | 97290e0bfc38e75fb0e19f382a2187801bf4a458 |
Resolves: #190122 files changed, 24 insertions(+), 3 deletions(-)
src/Air.zig+3-3| ... | ... | @@ -1646,20 +1646,20 @@ pub fn mustLower(air: Air, inst: Air.Inst.Index, ip: *const InternPool) bool { |
| 1646 | 1646 | .c_va_copy, |
| 1647 | 1647 | .c_va_end, |
| 1648 | 1648 | .c_va_start, |
| 1649 | .add_safe, | |
| 1650 | .sub_safe, | |
| 1651 | .mul_safe, | |
| 1649 | 1652 | => true, |
| 1650 | 1653 | |
| 1651 | 1654 | .add, |
| 1652 | .add_safe, | |
| 1653 | 1655 | .add_optimized, |
| 1654 | 1656 | .add_wrap, |
| 1655 | 1657 | .add_sat, |
| 1656 | 1658 | .sub, |
| 1657 | .sub_safe, | |
| 1658 | 1659 | .sub_optimized, |
| 1659 | 1660 | .sub_wrap, |
| 1660 | 1661 | .sub_sat, |
| 1661 | 1662 | .mul, |
| 1662 | .mul_safe, | |
| 1663 | 1663 | .mul_optimized, |
| 1664 | 1664 | .mul_wrap, |
| 1665 | 1665 | .mul_sat, |
test/cases/safety/ignored expression integer overflow.zig	 created+21| ... | ... | @@ -0,0 +1,21 @@ |
| 1 | const std = @import("std"); | |
| 2 | ||
| 3 | pub fn panic(message: []const u8, stack_trace: ?*std.builtin.StackTrace, _: ?usize) noreturn { | |
| 4 | _ = stack_trace; | |
| 5 | if (std.mem.eql(u8, message, "integer overflow")) { | |
| 6 | std.process.exit(0); | |
| 7 | } | |
| 8 | std.process.exit(1); | |
| 9 | } | |
| 10 | ||
| 11 | pub fn main() !void { | |
| 12 | var x: usize = undefined; | |
| 13 | x = 0; | |
| 14 | // We ignore this result but it should still trigger a safety panic! | |
| 15 | _ = x - 1; | |
| 16 | return error.TestFailed; | |
| 17 | } | |
| 18 | ||
| 19 | // run | |
| 20 | // backend=llvm | |
| 21 | // target=native |