mirror of
https://github.com/nim-lang/Nim.git
synced 2026-08-28 01:21:40 +00:00
tests sink string in refc
This commit is contained in:
@@ -368,14 +368,17 @@ proc genAssignment(p: BProc, dest, src: TLoc, flags: TAssignmentFlags) =
|
||||
elif dest.storage == OnHeap:
|
||||
let rd = rdLoc(dest)
|
||||
let rs = rdLoc(src)
|
||||
# we use a temporary to care for the dreaded self assignment:
|
||||
var tmp: TLoc = getTemp(p, ty)
|
||||
let rtmp = rdLoc(tmp)
|
||||
p.s(cpsStmts).addAssignment(rtmp, rd)
|
||||
p.s(cpsStmts).addAssignmentWithValue(rd):
|
||||
p.s(cpsStmts).addCall(cgsymValue(p.module, "copyStringRC1"), rs)
|
||||
p.s(cpsStmts).addSingleIfStmt(rtmp):
|
||||
p.s(cpsStmts).addCallStmt(cgsymValue(p.module, "nimGCunrefNoCycle"), rtmp)
|
||||
if dest.lode.typ.kind == tySink:
|
||||
p.s(cpsStmts).addAssignment(rd, rs)
|
||||
else:
|
||||
# we use a temporary to care for the dreaded self assignment:
|
||||
var tmp: TLoc = getTemp(p, ty)
|
||||
let rtmp = rdLoc(tmp)
|
||||
p.s(cpsStmts).addAssignment(rtmp, rd)
|
||||
p.s(cpsStmts).addAssignmentWithValue(rd):
|
||||
p.s(cpsStmts).addCall(cgsymValue(p.module, "copyStringRC1"), rs)
|
||||
p.s(cpsStmts).addSingleIfStmt(rtmp):
|
||||
p.s(cpsStmts).addCallStmt(cgsymValue(p.module, "nimGCunrefNoCycle"), rtmp)
|
||||
else:
|
||||
let rad = addrLoc(p.config, dest)
|
||||
let rs = rdLoc(src)
|
||||
|
||||
@@ -51,7 +51,7 @@ pkg "cello", url = "https://github.com/nim-lang/cello", useHead = true
|
||||
pkg "checksums"
|
||||
pkg "chroma"
|
||||
pkg "chronicles", "nim c -o:chr -r chronicles.nim"
|
||||
pkg "chronos", "nim c -r -d:release tests/testall"
|
||||
pkg "chronos", "nim c -r -d:release --mm:refc tests/testall"
|
||||
pkg "cligen", "nim c --path:. -r cligen.nim"
|
||||
pkg "combparser", "nimble test --mm:orc"
|
||||
pkg "compactdict"
|
||||
|
||||
Reference in New Issue
Block a user