diff options
author | Michael Forney <mforney@mforney.org> | 2019-02-17 15:26:03 -0800 |
---|---|---|
committer | Quentin Carbonneaux <quentin@c9x.me> | 2019-02-21 09:30:40 +0100 |
commit | 44fbc6023793b2f7dd7af42a94a8e5c5a515537d (patch) | |
tree | 2e6ffdebe02f585cdd6a45ac5d7a0f5446b52498 /rega.c | |
parent | dad4550dfb735e8043d65d18edae52f4f7b2e21c (diff) | |
download | roux-44fbc6023793b2f7dd7af42a94a8e5c5a515537d.tar.gz |
Fix assertion failure if temporary was spilled in all predecessors
Since ce0ab53ed7, we skip over predecessors that spilled the temporary. However, if all predecessors spilled, then we might not have an entry in `rl`, triggering an assertion failure in the following loop.
Diffstat (limited to 'rega.c')
-rw-r--r-- | rega.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/rega.c b/rega.c index 9ceba70..6f1da50 100644 --- a/rega.c +++ b/rega.c @@ -591,6 +591,8 @@ rega(Fn *fn) continue; rl[r] = (!rl[r] || rl[r] == x) ? x : -1; } + if (rl[r] == 0) + rl[r] = -1; } npm = 0; |