mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-28 17:04:41 +00:00
fixes #11614
This commit is contained in:
@@ -498,7 +498,7 @@ proc pArg(arg: PNode; c: var Con; isSink: bool): PNode =
|
||||
# to disable the destructor which we have not elided
|
||||
sinkParamIsLastReadCheck(c, arg)
|
||||
result = destructiveMoveVar(arg, c)
|
||||
elif arg.kind == nkSym and arg.sym.kind in InterestingSyms and isLastRead(arg, c):
|
||||
elif isAnalysableFieldAccess(arg, c.owner) and isLastRead(arg, c):
|
||||
# it is the last read, can be sinked. We need to reset the memory
|
||||
# to disable the destructor which we have not elided
|
||||
result = destructiveMoveVar(arg, c)
|
||||
|
||||
@@ -9,6 +9,7 @@ ha
|
||||
a: @[4, 2, 3]
|
||||
0
|
||||
30
|
||||
true
|
||||
41 41'''
|
||||
"""
|
||||
|
||||
@@ -190,6 +191,17 @@ proc mainSeqOfCap =
|
||||
|
||||
mainSeqOfCap()
|
||||
|
||||
# bug #11614
|
||||
|
||||
let ga = "foo"
|
||||
|
||||
proc takeAinArray =
|
||||
let b = [ga]
|
||||
|
||||
takeAinArray()
|
||||
echo ga == "foo"
|
||||
|
||||
|
||||
#echo s
|
||||
let (a, d) = allocCounters()
|
||||
discard cprintf("%ld %ld\n", a, d)
|
||||
|
||||
Reference in New Issue
Block a user