summary refs log tree commit diff stats
path: root/lib/system/fatal.nim
diff options
context:
space:
mode:
authorflywind <43030857+xflywind@users.noreply.github.com>2021-01-04 11:27:58 -0600
committerGitHub <noreply@github.com>2021-01-04 18:27:58 +0100
commit9531afac48aff3d5f0a6093742f60c95b043b08f (patch)
treef84da49fadbe91533b5cf70535fff28b5329fbf4 /lib/system/fatal.nim
parent0d67ad0bf38a69d110558a6eaa525e25cbf90648 (diff)
downloadNim-9531afac48aff3d5f0a6093742f60c95b043b08f.tar.gz
fix #16499 (#16514)
Diffstat (limited to 'lib/system/fatal.nim')
-rw-r--r--lib/system/fatal.nim24
1 files changed, 14 insertions, 10 deletions
diff --git a/lib/system/fatal.nim b/lib/system/fatal.nim
index 761e0dd69..64ec9cda3 100644
--- a/lib/system/fatal.nim
+++ b/lib/system/fatal.nim
@@ -30,16 +30,20 @@ elif (defined(nimQuirky) or defined(nimPanics)) and not defined(nimscript):
   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
+    when nimvm:
+      # TODO when doAssertRaises works in CT, add a test for it
+      raise (ref exceptn)(msg: message & arg)
+    else:
+      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, "")