[erlc] newly introduced internal error in beam_kernel_to_ssa (with feature maybe enabled)
RobinMorisset opened this issue · 0 comments
RobinMorisset commented
@jhogberg Sorry to bring bad news again, but the fuzzer finally found an issue with the recently merged #6631:
f() ->
case self() of
[_ | X] ->
ok;
false ->
{ok#{
(X = ok) :=
((ok /=
maybe
ok
end) =/= ok)
}}
end,
X.
crashes erlc with the following error message:
Function: f/0
minimized/kernel_to_ssa.erl: internal error in pass beam_kernel_to_ssa:
exception error: no function clause matching beam_kernel_to_ssa:cg({k_return,[],[{k_var,[],14},{k_var,[],19}]},
{cg,11,1,none,
#{7 => {b_var,7},
8 => {b_var,8},
14 => {b_var,14},
19 => {b_literal,unused},
20 => {b_var,20},
21 => {b_var,21},
22 => {b_var,22},
23 => {b_var,23},
'@ssa_bool' => {b_var,{'@ssa_bool',9}},
'@ssa_ret' => {b_var,'@ssa_ret'}},
3,0,1,#{},false})
in function beam_kernel_to_ssa:cg/2 (beam_kernel_to_ssa.erl, line 114)
in call from beam_kernel_to_ssa:select_val/4 (beam_kernel_to_ssa.erl, line 498)
in call from beam_kernel_to_ssa:'-select_cg/5-anonymous-0-'/4 (beam_kernel_to_ssa.erl, line 217)
in call from lists:mapfoldl_1/3 (lists.erl, line 1588)
in call from beam_kernel_to_ssa:select_cg/5 (beam_kernel_to_ssa.erl, line 216)
in call from beam_kernel_to_ssa:match_fmf/4 (beam_kernel_to_ssa.erl, line 639)
in call from beam_kernel_to_ssa:match_cg/3 (beam_kernel_to_ssa.erl, line 177)
The bug does not reproduce if I checkout a version of OTP one commit before #6631 was merged.