mirror of
https://github.com/nim-lang/Nim.git
synced 2026-01-22 12:30:46 +00:00
fixed merge conflict
This commit is contained in:
@@ -31,7 +31,10 @@ const
|
||||
|
||||
{.push checks: off, stackTrace: off.}
|
||||
|
||||
proc utoa2Digits*(buf: var openArray[char]; pos: int; digits: uint32) {.inline.} =
|
||||
when not defined(nimHasEnforceNoRaises):
|
||||
{.pragma: enforceNoRaises.}
|
||||
|
||||
proc utoa2Digits*(buf: var openArray[char]; pos: int; digits: uint32) {.inline, enforceNoRaises.} =
|
||||
buf[pos] = digits100[2 * digits]
|
||||
buf[pos+1] = digits100[2 * digits + 1]
|
||||
#copyMem(buf, unsafeAddr(digits100[2 * digits]), 2 * sizeof((char)))
|
||||
|
||||
@@ -62,22 +62,23 @@ when defined(nimStackTraceOverride):
|
||||
let programCounters = stackTraceOverrideGetProgramCounters(maxStackTraceLines)
|
||||
if s.len == 0:
|
||||
s = newSeqOfCap[StackTraceEntry](programCounters.len)
|
||||
for programCounter in programCounters:
|
||||
s.add(StackTraceEntry(programCounter: cast[uint](programCounter)))
|
||||
for i in 0..<programCounters.len:
|
||||
s.add(StackTraceEntry(programCounter: cast[uint](programCounters[i])))
|
||||
|
||||
# We may have more stack trace lines in the output, due to inlined procedures.
|
||||
proc addDebuggingInfo*(s: seq[StackTraceEntry]): seq[StackTraceEntry] =
|
||||
var programCounters: seq[cuintptr_t]
|
||||
# We process program counters in groups from complete stack traces, because
|
||||
# we have logic that keeps track of certain functions being inlined or not.
|
||||
for entry in s:
|
||||
for i in 0..<s.len:
|
||||
let entry = addr s[i]
|
||||
if entry.procname.isNil and entry.programCounter != 0:
|
||||
programCounters.add(cast[cuintptr_t](entry.programCounter))
|
||||
elif entry.procname.isNil and (entry.line == reraisedFromBegin or entry.line == reraisedFromEnd):
|
||||
result.add(stackTraceOverrideGetDebuggingInfo(programCounters, maxStackTraceLines))
|
||||
programCounters = @[]
|
||||
result.add(entry)
|
||||
result.add(entry[])
|
||||
else:
|
||||
result.add(entry)
|
||||
result.add(entry[])
|
||||
if programCounters.len > 0:
|
||||
result.add(stackTraceOverrideGetDebuggingInfo(programCounters, maxStackTraceLines))
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
|
||||
{.push overflowChecks: off, rangeChecks: off.}
|
||||
|
||||
{.push overflowChecks: off, rangeChecks: off.}
|
||||
|
||||
template isLiteral(s): bool = (s.p == nil) or (s.p.cap and strlitFlag) == strlitFlag
|
||||
|
||||
template contentSize(cap): int = cap + 1 + sizeof(NimStrPayloadBase)
|
||||
|
||||
@@ -6,8 +6,8 @@ const expected = """
|
||||
wrong trace:
|
||||
t23536.nim(22) t23536
|
||||
t23536.nim(17) foo
|
||||
assertions.nim(41) failedAssertImpl
|
||||
assertions.nim(36) raiseAssert
|
||||
assertions.nim(45) failedAssertImpl
|
||||
assertions.nim(40) raiseAssert
|
||||
fatal.nim(53) sysFatal
|
||||
"""
|
||||
|
||||
|
||||
@@ -4,8 +4,8 @@ discard """
|
||||
t24974.nim(22) t24974
|
||||
t24974.nim(19) d
|
||||
t24974.nim(16) s
|
||||
assertions.nim(41) failedAssertImpl
|
||||
assertions.nim(36) raiseAssert
|
||||
assertions.nim(45) failedAssertImpl
|
||||
assertions.nim(40) raiseAssert
|
||||
fatal.nim(53) sysFatal
|
||||
Error: unhandled exception: t24974.nim(16, 26) `false` [AssertionDefect]
|
||||
'''
|
||||
@@ -19,4 +19,4 @@ proc d(): B =
|
||||
if s(k): discard
|
||||
quit 0
|
||||
k
|
||||
for _ in [0]: discard d()
|
||||
for _ in [0]: discard d()
|
||||
|
||||
Reference in New Issue
Block a user