| ... | @@ -16019,9 +16019,12 @@ fn analyzeArithmetic( | ... | @@ -16019,9 +16019,12 @@ fn analyzeArithmetic( |
| 16019 | }; | 16019 | }; |
| 16020 | | 16020 | |
| 16021 | try sema.requireRuntimeBlock(block, src, runtime_src); | 16021 | try sema.requireRuntimeBlock(block, src, runtime_src); |
| | 16022 | |
| 16022 | if (block.wantSafety() and want_safety and scalar_tag == .Int) { | 16023 | if (block.wantSafety() and want_safety and scalar_tag == .Int) { |
| 16023 | if (mod.backendSupportsFeature(.safety_checked_instructions)) { | 16024 | if (mod.backendSupportsFeature(.safety_checked_instructions)) { |
| 16024 | _ = try sema.preparePanicId(block, .integer_overflow); | 16025 | if (air_tag != air_tag_safe) { |
| | 16026 | _ = try sema.preparePanicId(block, .integer_overflow); |
| | 16027 | } |
| 16025 | return block.addBinOp(air_tag_safe, casted_lhs, casted_rhs); | 16028 | return block.addBinOp(air_tag_safe, casted_lhs, casted_rhs); |
| 16026 | } else { | 16029 | } else { |
| 16027 | const maybe_op_ov: ?Air.Inst.Tag = switch (air_tag) { | 16030 | const maybe_op_ov: ?Air.Inst.Tag = switch (air_tag) { |