Open
Description
Describe the bug
Running erlc
on the following:
-feature(maybe_expr, enable).
-module(test258136).
-export([f/0]).
f() ->
<<
(ok)
|| _ := {_V1} <- ok,
(maybe
{} ?= _V1
else
-0.0 ->
[];
0.0 ->
[]
end)
>>.
crashes with the following message:
Function: '-f/0-lbc$^0/2-0-'/2
Sub pass ssa_opt_type_start
/home/rmorisset/minimized/test258136.erl: internal error in pass beam_ssa_opt:
exception error: no case clause matching {{1,{t_float,{-0.0,-0.0}}},{1,{t_float,{0.0,0.0}}}}
in function beam_types:join/2 (beam_types.erl, line 256)
in call from beam_ssa_type:join_types_1/3 (beam_ssa_type.erl, line 2896)
in call from beam_ssa_type:update_successor/3 (beam_ssa_type.erl, line 2077)
in call from beam_ssa_type:update_switch/8 (beam_ssa_type.erl, line 2036)
in call from beam_ssa_type:update_successors/5 (beam_ssa_type.erl, line 2001)
in call from beam_ssa_type:sig_bs/8 (beam_ssa_type.erl, line 258)
in call from beam_ssa_type:sig_function_1/4 (beam_ssa_type.erl, line 221)
in call from beam_ssa_type:do_sig_function/4 (beam_ssa_type.erl, line 169)
Affected versions