aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
author_ov4 <ov4@ov4.org>2026-10-13 08:43:17 +0000
committer_ov4 <ov4@ov4.org>2026-10-13 08:43:17 +0000
commitc6dbd14ec8ff94df47d3c2137cc5234203ec5e0c (patch)
tree6e07a8384d28c9a92ca56e9cb2dca2017b1817cb /include
parent56f17f199ee2bc0a77e090c43dd367f43c909f2c (diff)
fix: check division and modulo for zero divisors
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Diffstat (limited to 'include')
-rw-r--r--include/cps/ArithmeticHandler.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/include/cps/ArithmeticHandler.h b/include/cps/ArithmeticHandler.h
index ca6266d..af7394b 100644
--- a/include/cps/ArithmeticHandler.h
+++ b/include/cps/ArithmeticHandler.h
@@ -5,14 +5,18 @@
namespace cps {
+class RuntimeCheck;
+
class ArithmeticHandler {
llvm::LLVMContext &Context;
llvm::IRBuilder<> &Builder;
bool &HadError;
+ RuntimeCheck &RuntimeChecker;
public:
- ArithmeticHandler(llvm::LLVMContext &Ctx, llvm::IRBuilder<> &B, bool &HadErrorFlag)
- : Context(Ctx), Builder(B), HadError(HadErrorFlag) {}
+ ArithmeticHandler(llvm::LLVMContext &Ctx, llvm::IRBuilder<> &B, bool &HadErrorFlag,
+ RuntimeCheck &RC)
+ : Context(Ctx), Builder(B), HadError(HadErrorFlag), RuntimeChecker(RC) {}
llvm::Value *emitBinaryOp(int Op, llvm::Value *LHS, llvm::Value *RHS, int Line);
};