12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- #
- #
- # Nim's Runtime Library
- # (c) Copyright 2019 Andreas Rumpf
- #
- # See the file "copying.txt", included in this
- # distribution, for details about the copyright.
- #
- {.push profiler: off.}
- when defined(nimHasExceptionsQuery):
- const gotoBasedExceptions = compileOption("exceptions", "goto")
- else:
- const gotoBasedExceptions = false
- when hostOS == "standalone":
- include "$projectpath/panicoverride"
- proc sysFatal(exceptn: typedesc, message: string) {.inline.} =
- panic(message)
- proc sysFatal(exceptn: typedesc, message, arg: string) {.inline.} =
- rawoutput(message)
- panic(arg)
- elif (defined(nimQuirky) or defined(nimPanics)) and not defined(nimscript):
- import ansi_c
- proc name(t: typedesc): string {.magic: "TypeTrait".}
- proc sysFatal(exceptn: typedesc, message, arg: string) {.inline, noreturn.} =
- writeStackTrace()
- var buf = newStringOfCap(200)
- add(buf, "Error: unhandled exception: ")
- add(buf, message)
- add(buf, arg)
- add(buf, " [")
- add(buf, name exceptn)
- add(buf, "]\n")
- cstderr.rawWrite buf
- quit 1
- proc sysFatal(exceptn: typedesc, message: string) {.inline, noreturn.} =
- sysFatal(exceptn, message, "")
- else:
- proc sysFatal(exceptn: typedesc, message: string) {.inline, noreturn.} =
- raise (ref exceptn)(msg: message)
- proc sysFatal(exceptn: typedesc, message, arg: string) {.inline, noreturn.} =
- raise (ref exceptn)(msg: message & arg)
- {.pop.}
|