aboutsummaryrefslogtreecommitdiff
path: root/include/cps/CodeGen.h
diff options
context:
space:
mode:
author_ov4 <ov4@ov4.org>2026-10-27 13:27:14 +0000
committer_ov4 <ov4@ov4.org>2026-10-27 13:27:14 +0000
commit0dd0b0908300eee08a06ee51d9eb48b85fd97d74 (patch)
tree8e18df810a1d88f686f2b85ed2f05e3aa0985119 /include/cps/CodeGen.h
parent790e0fd7c5a81b9a27a6d84e0f3f4c7a0b17d04b (diff)
refactor(memory)!: move allocation functions into memory.cps
Route keyword NEW and DELETE through the same library runtime and retain allocation tracking, runtime diagnostics and exception behavior. BREAKING CHANGE: -no-std programs using NEW or DELETE must explicitly import memory.cps. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'include/cps/CodeGen.h')
-rw-r--r--include/cps/CodeGen.h4
1 files changed, 1 insertions, 3 deletions
diff --git a/include/cps/CodeGen.h b/include/cps/CodeGen.h
index 45660b8..0962753 100644
--- a/include/cps/CodeGen.h
+++ b/include/cps/CodeGen.h
@@ -21,7 +21,6 @@ namespace cps {
class ArrayHandler;
class FileHandler;
-class MemoryHandler;
class ExceptionHandler;
class CastExprAST;
class TemplateDeclAST;
@@ -157,7 +156,6 @@ class CodeGen {
std::unique_ptr<ArithmeticHandler> ArithHandler;
std::unique_ptr<FileHandler> Files;
- std::unique_ptr<MemoryHandler> Memory;
llvm::FunctionCallee PrintfFunc;
@@ -208,7 +206,7 @@ class CodeGen {
bool emitLValue(ExprAST *E, LValueInfo &Out);
// Read a value from resolved storage.
llvm::Value *loadFromLValue(const LValueInfo &LV);
- llvm::Value *emitAllocationSize(ExprAST *Expr);
+ llvm::Value *emitMemoryCall(const char *Name, llvm::Value *Argument, int Line);
static bool isLogicalOperand(const TypeInfo *T);
llvm::Value *emitShortCircuit(BinaryExprAST *Bin, const TypeInfo *LT, const TypeInfo *RT);
llvm::Value *emitIntBuiltin(ExprAST *Arg, int Line);