diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2023-07-02 20:57:10 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-02 20:57:10 +0200 |
commit | 83a5865024cf391137fcbd4e5ed195cda969ed88 (patch) | |
tree | 20f325252487aa62f54b24cb2eaf0493807c06c1 | |
parent | aedb4c26deb91b1f9e3839475386c8e173e3598e (diff) | |
download | Nim-83a5865024cf391137fcbd4e5ed195cda969ed88.tar.gz |
fixes #22200 (#22206)
* fixes #22200 * typo
-rw-r--r-- | compiler/varpartitions.nim | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/compiler/varpartitions.nim b/compiler/varpartitions.nim index ad8dd245c..6598ef508 100644 --- a/compiler/varpartitions.nim +++ b/compiler/varpartitions.nim @@ -824,6 +824,10 @@ proc computeLiveRanges(c: var Partitions; n: PNode) = if vid >= 0: if n[1].kind == nkSym and (c.s[vid].reassignedTo == 0 or c.s[vid].reassignedTo == n[1].sym.id): c.s[vid].reassignedTo = n[1].sym.id + if c.inConditional > 0 and c.inLoop > 0: + # bug #22200: live ranges with loops and conditionals are too + # complex for our current analysis, so we prevent the cursorfication. + c.s[vid].flags.incl isConditionallyReassigned else: markAsReassigned(c, vid) |