fix #15934 and #15620 (#15938) [backport:1.4]

* make workaround for #15934 and #15620
* add testcase for #9754
This commit is contained in:
Andreas Rumpf 2020-11-15 18:12:53 +01:00 • committed by GitHub
commit fc735e4b08
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 35 additions and 1 deletions

View file

@ -327,7 +327,10 @@ proc setPointer*(x: Any, y: pointer) =
## ``akString``, ``akCString``, ``akProc``, ``akRef``, ``akPtr``,
## ``akPointer``, ``akSequence``.
assert x.rawType.kind in pointerLike
genericAssign(x.value, y, x.rawType)
if y != nil:
genericAssign(x.value, y, x.rawType)
else:
cast[ppointer](x.value)[] = nil
proc fieldsAux(p: pointer, n: ptr TNimNode,
ret: var seq[tuple[name: cstring, any: Any]]) =