parent
8b00586488
commit
675ca997fb
2 changed files with 21 additions and 2 deletions
|
|
@ -1890,6 +1890,15 @@ proc genReset(p: PProc, n: PNode) =
|
||||||
lineF(p, "$1 = genericReset($3, $2);$n", [a,
|
lineF(p, "$1 = genericReset($3, $2);$n", [a,
|
||||||
genTypeInfo(p, n[1].typ), tmp])
|
genTypeInfo(p, n[1].typ), tmp])
|
||||||
|
|
||||||
|
proc genMove(p: PProc; n: PNode; r: var TCompRes) =
|
||||||
|
var a: TCompRes
|
||||||
|
r.kind = resVal
|
||||||
|
r.res = p.getTemp()
|
||||||
|
gen(p, n[1], a)
|
||||||
|
lineF(p, "$1 = $2;$n", [r.rdLoc, a.rdLoc])
|
||||||
|
genReset(p, n)
|
||||||
|
#lineF(p, "$1 = $2;$n", [dest.rdLoc, src.rdLoc])
|
||||||
|
|
||||||
proc genMagic(p: PProc, n: PNode, r: var TCompRes) =
|
proc genMagic(p: PProc, n: PNode, r: var TCompRes) =
|
||||||
var
|
var
|
||||||
a: TCompRes
|
a: TCompRes
|
||||||
|
|
@ -2014,7 +2023,7 @@ proc genMagic(p: PProc, n: PNode, r: var TCompRes) =
|
||||||
of mNewSeqOfCap: unaryExpr(p, n, r, "", "[]")
|
of mNewSeqOfCap: unaryExpr(p, n, r, "", "[]")
|
||||||
of mOf: genOf(p, n, r)
|
of mOf: genOf(p, n, r)
|
||||||
of mDefault: genDefault(p, n, r)
|
of mDefault: genDefault(p, n, r)
|
||||||
of mReset: genReset(p, n)
|
of mReset, mWasMoved: genReset(p, n)
|
||||||
of mEcho: genEcho(p, n, r)
|
of mEcho: genEcho(p, n, r)
|
||||||
of mNLen..mNError, mSlurp, mStaticExec:
|
of mNLen..mNError, mSlurp, mStaticExec:
|
||||||
localError(p.config, n.info, errXMustBeCompileTime % n[0].sym.name.s)
|
localError(p.config, n.info, errXMustBeCompileTime % n[0].sym.name.s)
|
||||||
|
|
@ -2037,6 +2046,8 @@ proc genMagic(p: PProc, n: PNode, r: var TCompRes) =
|
||||||
gen(p, n[3], z)
|
gen(p, n[3], z)
|
||||||
r.res = "($1.slice($2, $3+1))" % [x.rdLoc, y.rdLoc, z.rdLoc]
|
r.res = "($1.slice($2, $3+1))" % [x.rdLoc, y.rdLoc, z.rdLoc]
|
||||||
r.kind = resExpr
|
r.kind = resExpr
|
||||||
|
of mMove:
|
||||||
|
genMove(p, n, r)
|
||||||
else:
|
else:
|
||||||
genCall(p, n, r)
|
genCall(p, n, r)
|
||||||
#else internalError(p.config, e.info, 'genMagic: ' + magicToStr[op]);
|
#else internalError(p.config, e.info, 'genMagic: ' + magicToStr[op]);
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ discard """
|
||||||
true false
|
true false
|
||||||
100 300 100
|
100 300 100
|
||||||
1
|
1
|
||||||
|
1
|
||||||
'''
|
'''
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
@ -69,4 +70,11 @@ block:
|
||||||
|
|
||||||
var nums = [1, 2]
|
var nums = [1, 2]
|
||||||
foo(nums)
|
foo(nums)
|
||||||
echo nums[0]
|
echo nums[0]
|
||||||
|
|
||||||
|
proc bug9674 =
|
||||||
|
var b = @[1,2,3]
|
||||||
|
var a = move(b)
|
||||||
|
echo a[0]
|
||||||
|
|
||||||
|
bug9674()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue