fixes a C code generator regression, no need to backport, only the 1.4 line is affected (#15569)

This commit is contained in:
Andreas Rumpf 2020-10-14 13:58:36 +02:00 • committed by GitHub
commit 8978112457
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 1 deletions

View file

@ -249,7 +249,7 @@ proc openArrayLoc(p: BProc, formalType: PType, n: PNode): Rope =
else: internalError(p.config, "openArrayLoc: " & typeToString(a.t)) else: internalError(p.config, "openArrayLoc: " & typeToString(a.t))
proc withTmpIfNeeded(p: BProc, a: TLoc, needsTmp: bool): TLoc = proc withTmpIfNeeded(p: BProc, a: TLoc, needsTmp: bool): TLoc =
if needsTmp: if needsTmp and a.lode.typ != nil:
var tmp: TLoc var tmp: TLoc
getTemp(p, a.lode.typ, tmp, needsInit=false) getTemp(p, a.lode.typ, tmp, needsInit=false)
genAssignment(p, tmp, a, {}) genAssignment(p, tmp, a, {})

18
tests/ccgbugs/t2procs.nim Normal file
View file

@ -0,0 +1,18 @@
discard """
output: '''before
1
before
2'''
"""
proc fn[T1, T2](a: T1, b: T2) =
a(1)
b(2)
fn( (proc(x: int) =
echo "before" # example block, can span multiple lines
echo x),
(proc (y: int) =
echo "before"
echo y)
)