internal error in erlc, bad key in pass beam_ssa_bsm
RobinMorisset opened this issue · 0 comments
RobinMorisset commented
On master, running erlc on the following code:
-module(amb_get_alias).
f(<<_>>) ->
0;
f(X) ->
+(case X of
<<_>> ->
X;
[] ->
X
end).
results in the following error message:
Sub pass combine_matches
amb_get_alias.erl: internal error in pass beam_ssa_bsm:
exception error: bad key: 19
in function map_get/2
called as map_get(19,
#{0 => [0],
1 => [1,0],
3 => [3,8,0],
4 => [4,8,0],
6 => [6,4,8,0],
8 => [8,0],
9 => [9,17,3,8,0],
10 => [10,17,3,8,0],
13 => [13,17,3,8,0],
15 => [15,13,17,3,8,0],
17 => [17,3,8,0],
21 => [21,10,17,3,8,0],
23 => [23,9,17,3,8,0],
24 => [24,0],
25 => [25,24,0],
26 => [26,25,24,0],
27 => [27,26,25,24,0],
28 => [28,24,0],
29 => [29,28,24,0],
30 => [30,24,0],
31 => [31,30,24,0],
32 => [32,24,0],
33 => [33,32,24,0]})
*** argument 1: not present in map
in call from beam_ssa_bsm:amb_get_alias/3 (beam_ssa_bsm.erl, line 360)
in call from beam_ssa_bsm:'-amb_assign_set/3-anonymous-1-'/2 (beam_ssa_bsm.erl, line 335)
in call from lists:mapfoldl_1/3 (lists.erl, line 1462)
in call from lists:mapfoldl_1/3 (lists.erl, line 1463)
in call from beam_ssa_bsm:amb_assign_set/3 (beam_ssa_bsm.erl, line 334)
in call from lists:mapfoldl_1/3 (lists.erl, line 1462)
in call from beam_ssa_bsm:amb_1/3 (beam_ssa_bsm.erl, line 323)