fixes #23556; typeinfo.extendSeq generates random values in ORC (#23557)

fixes #23556

It should somehow handle default fields in the future
This commit is contained in:
ringabout
2024-05-03 22:29:56 +08:00
committed by GitHub
parent d772186b2d
commit 36bf3fa47b
3 changed files with 28 additions and 2 deletions

View File

@@ -90,6 +90,12 @@ proc prepareSeqAdd(len: int; p: pointer; addlen, elemSize, elemAlign: int): poin
q.cap = newCap
result = q
proc zeroNewElements(len: int; q: pointer; addlen, elemSize, elemAlign: int) {.
noSideEffect, tags: [], raises: [], compilerRtl.} =
{.noSideEffect.}:
let headerSize = align(sizeof(NimSeqPayloadBase), elemAlign)
zeroMem(q +! headerSize +! len * elemSize, addlen * elemSize)
proc prepareSeqAddUninit(len: int; p: pointer; addlen, elemSize, elemAlign: int): pointer {.
noSideEffect, tags: [], raises: [], compilerRtl.} =
{.noSideEffect.}: