diff --git a/lib/system/excpt.nim b/lib/system/excpt.nim index ea0eb13c81..c5d82a2788 100644 --- a/lib/system/excpt.nim +++ b/lib/system/excpt.nim @@ -597,6 +597,8 @@ proc callDepthLimitReached() {.noinline.} = showErrorMessage2(msg) rawQuit(1) +{.push overflowChecks: off.} + proc nimFrame(s: PFrame) {.compilerRtl, inl, raises: [].} = if framePtr == nil: s.calldepth = 0 @@ -608,6 +610,8 @@ proc nimFrame(s: PFrame) {.compilerRtl, inl, raises: [].} = framePtr = s if s.calldepth == nimCallDepthLimit: callDepthLimitReached() +{.pop.} + when defined(cpp) and appType != "lib" and not gotoBasedExceptions and not defined(js) and not defined(nimscript) and hostOS != "standalone" and hostOS != "any" and not defined(noCppExceptions) and @@ -634,7 +638,7 @@ when defined(cpp) and appType != "lib" and not gotoBasedExceptions and msg = currException.getStackTrace() & "Error: unhandled exception: " & currException.msg & " [" & cstrToStrBuiltin(currException.name) & "]" except StdException as e: - msg = "Error: unhandled cpp exception: " & $e.what() + msg = "Error: unhandled cpp exception: " & cstrToStrBuiltin(e.what()) except: msg = "Error: unhandled unknown cpp exception"