From 927e3fc0384c941f9ad313a28768660c3cdb1777 Mon Sep 17 00:00:00 2001 From: _ov4 Date: Sun, 18 Oct 2026 08:04:15 +0000 Subject: feat(driver): add #LIB directive hiding library lines in runtime errors Co-Authored-By: Claude Opus 5.5 --- include/cps/RuntimeCheck.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'include/cps/RuntimeCheck.h') diff --git a/include/cps/RuntimeCheck.h b/include/cps/RuntimeCheck.h index 30a1910..d2ee1ea 100644 --- a/include/cps/RuntimeCheck.h +++ b/include/cps/RuntimeCheck.h @@ -18,6 +18,8 @@ class RuntimeCheck { llvm::FunctionCallee StderrFunc; // Windows: __acrt_iob_func(2) llvm::GlobalVariable *StderrVar; // elsewhere: the C library's stderr ExceptionHandler &Exceptions; + bool LibraryMode = false; + llvm::GlobalVariable *UserLine; llvm::Value *DivZeroMsg; llvm::Value *OutOfBoundsMsg; llvm::Value *EnumRangeMsg; @@ -31,6 +33,10 @@ public: RuntimeCheck(llvm::Module &M, llvm::LLVMContext &C, llvm::IRBuilder<> &B, ExceptionHandler &EH); + void setLibraryMode(bool Enabled) { LibraryMode = Enabled; } + llvm::Value *lineValue(int Line); + void setUserLine(int Line); + // Format a runtime diagnostic (printf-style) and write it to stderr. void emitStderr(llvm::Value *Msg, llvm::ArrayRef FmtArgs = {}); -- cgit v1.3.1-4-g156e