diff options
| author | _ov4 <ov4@ov4.org> | 2026-10-13 08:43:17 +0000 |
|---|---|---|
| committer | _ov4 <ov4@ov4.org> | 2026-10-13 08:43:17 +0000 |
| commit | c6dbd14ec8ff94df47d3c2137cc5234203ec5e0c (patch) | |
| tree | 6e07a8384d28c9a92ca56e9cb2dca2017b1817cb /include/cps/ArithmeticHandler.h | |
| parent | 56f17f199ee2bc0a77e090c43dd367f43c909f2c (diff) | |
fix: check division and modulo for zero divisors
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Diffstat (limited to 'include/cps/ArithmeticHandler.h')
| -rw-r--r-- | include/cps/ArithmeticHandler.h | 8 |
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); }; |
