init checks and 'out' parameters (#14521)
* I don't care about observable stores * enforce explicit initializations * cleaner code for the stdlib * stdlib: use explicit initializations * make tests green * algorithm.nim: set result explicitly * remove out parameters and bring the PR into a mergable state * updated the changelog
This commit is contained in:
parent
a9eee6db65
commit
da29222f86
53 changed files with 355 additions and 257 deletions
|
|
@ -217,7 +217,7 @@ proc stackSize(stack: ptr GcStack): int {.noinline.} =
|
|||
when nimCoroutines:
|
||||
var pos = stack.pos
|
||||
else:
|
||||
var pos {.volatile.}: pointer
|
||||
var pos {.volatile, noinit.}: pointer
|
||||
pos = addr(pos)
|
||||
|
||||
if pos != nil:
|
||||
|
|
@ -229,6 +229,7 @@ proc stackSize(stack: ptr GcStack): int {.noinline.} =
|
|||
result = 0
|
||||
|
||||
proc stackSize(): int {.noinline.} =
|
||||
result = 0
|
||||
for stack in gch.stack.items():
|
||||
result = result + stack.stackSize()
|
||||
|
||||
|
|
@ -303,7 +304,7 @@ when not defined(useNimRtl):
|
|||
{.pop.}
|
||||
|
||||
proc isOnStack(p: pointer): bool =
|
||||
var stackTop {.volatile.}: pointer
|
||||
var stackTop {.volatile, noinit.}: pointer
|
||||
stackTop = addr(stackTop)
|
||||
var a = cast[ByteAddress](gch.getActiveStack().bottom)
|
||||
var b = cast[ByteAddress](stackTop)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue