diff options
Diffstat (limited to 'lib/system/excpt.nim')
-rw-r--r-- | lib/system/excpt.nim | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/system/excpt.nim b/lib/system/excpt.nim index 612a9e729..2dc134eaf 100644 --- a/lib/system/excpt.nim +++ b/lib/system/excpt.nim @@ -44,9 +44,15 @@ var # a global variable for the root of all try blocks currException {.rtlThreadVar.}: ref E_Base -proc pushFrame(s: PFrame) {.compilerRtl, inl, exportc: "nimFrame".} = - s.prev = framePtr - framePtr = s +when defined(nimRequiresNimFrame): + proc nimFrame(s: PFrame) {.compilerRtl, inl, exportc: "nimFrame".} = + s.prev = framePtr + framePtr = s +else: + proc pushFrame(s: PFrame) {.compilerRtl, inl, exportc: "nimFrame".} = + # XXX only for backwards compatibility + s.prev = framePtr + framePtr = s proc popFrame {.compilerRtl, inl.} = framePtr = framePtr.prev @@ -71,7 +77,7 @@ proc popCurrentException {.compilerRtl, inl.} = # some platforms have native support for stack traces: const - nativeStackTraceSupported = (defined(macosx) or defined(linux)) and + nativeStackTraceSupported* = (defined(macosx) or defined(linux)) and not nimrodStackTrace hasSomeStackTrace = nimrodStackTrace or defined(nativeStackTrace) and nativeStackTraceSupported |