diff options
author | flywind <43030857+xflywind@users.noreply.github.com> | 2020-11-17 18:47:01 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-17 10:47:01 +0000 |
commit | fec19c980e36e62747eb119f0740cb785e858ac3 (patch) | |
tree | 373e56a6d724f7a8ff7022d748edc2a20c317739 /compiler | |
parent | 50d035b7896b85184fc6e97e22f32a189d76b81b (diff) | |
download | Nim-fec19c980e36e62747eb119f0740cb785e858ac3.tar.gz |
follow #16009 VM supports cast nil to ptr (#16012)
* follow #16009 VM supports cast nil to ptr * more testcase
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/vmgen.nim | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/compiler/vmgen.nim b/compiler/vmgen.nim index bcb7faa47..069b8cbf5 100644 --- a/compiler/vmgen.nim +++ b/compiler/vmgen.nim @@ -901,6 +901,9 @@ proc genCastIntFloat(c: PCtx; n: PNode; dest: var TDest) = c.gABx(n, opcSetType, dest, c.genType(dst)) c.gABC(n, opcCastIntToPtr, dest, tmp) c.freeTemp(tmp) + elif src.kind == tyNil and dst.kind in PtrLikeKinds: + if dest < 0: dest = c.getTemp(n[0].typ) + genLit(c, n[1], dest) else: # todo: support cast from tyInt to tyRef globalError(c.config, n.info, "VM does not support 'cast' from " & $src.kind & " to " & $dst.kind) |