aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler/src
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2018-08-14 16:06:52 +0200
committerBjörn Gustavsson <[email protected]>2018-08-14 16:24:30 +0200
commitec8ae4b539bcb4b4eedf8dd3eb1e7bcdfe558580 (patch)
tree9e5b28477fb01ddbad9e71297e45e94a7af2512d /lib/compiler/src
parent4fc61aa178faa80290356a63d8e38d93697b9669 (diff)
downloadotp-ec8ae4b539bcb4b4eedf8dd3eb1e7bcdfe558580.tar.gz
otp-ec8ae4b539bcb4b4eedf8dd3eb1e7bcdfe558580.tar.bz2
otp-ec8ae4b539bcb4b4eedf8dd3eb1e7bcdfe558580.zip
Fix compiler crash when compiling double receives
The compiler would crash when compiling a function with two receive statements. https://bugs.erlang.org/browse/ERL-703
Diffstat (limited to 'lib/compiler/src')
-rw-r--r--lib/compiler/src/beam_utils.erl2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/compiler/src/beam_utils.erl b/lib/compiler/src/beam_utils.erl
index 3bb671f034..5580d2f123 100644
--- a/lib/compiler/src/beam_utils.erl
+++ b/lib/compiler/src/beam_utils.erl
@@ -1164,7 +1164,7 @@ defs([{loop_rec,{f,L},{x,0}}=I|Is], _Regs, D0) ->
D = update_regs(L, RegsAtLabel, D0),
[I|defs(Is, init_def_regs(1), D)];
defs([{loop_rec_end,_}=I|Is], _Regs, D) ->
- [I|defs(Is, 0, D)];
+ [I|defs_unreachable(Is, D)];
defs([{make_fun2,_,_,_,_}=I|Is], _Regs, D) ->
[I|defs(Is, 1, D)];
defs([{move,_,Dst}=I|Is], Regs0, D) ->