diff options
author | Björn Gustavsson <[email protected]> | 2019-08-13 06:38:24 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2019-08-14 07:10:17 +0200 |
commit | c5e36feada9d0362108890f42c40dd2398b1b531 (patch) | |
tree | 802db75152357454c28ea42680ccfa8d45d0b355 /lib/compiler/test/compiler.cover | |
parent | d203e847548586f6ef80ac0e73a5f6f173efe1c6 (diff) | |
download | otp-c5e36feada9d0362108890f42c40dd2398b1b531.tar.gz otp-c5e36feada9d0362108890f42c40dd2398b1b531.tar.bz2 otp-c5e36feada9d0362108890f42c40dd2398b1b531.zip |
Fix compiler crash when compiling some receive statements
The compiler would crash when compiling the following code:
do(Acc) ->
receive
{Pid, abc} ->
ok;
{Pid, []} ->
ok;
{Pid, _Res} ->
exit(_Res)
end,
do([Pid | Acc]).
The last clause that always raises an exception would confuse the
compiler so that it would think that the `receive` statement was at the
end of the function and it would generate incorrect code for the `do/1`
call following the `receive`.
https://bugs.erlang.org/browse/ERL-1022
Diffstat (limited to 'lib/compiler/test/compiler.cover')
0 files changed, 0 insertions, 0 deletions