erlang/otp

erlc crash: internal error in sub pass ssa_opt_ranges

RobinMorisset opened this issue · 0 comments

On master with the following commit cherry-picked: 80fff40

-module(update_anno_types).
-compile([export_all]).

f(<<X>>) -> 
	<<(X = bnot X)>> .

when compiled with erlc results in the following error message:

Sub pass ssa_opt_ranges
Function: f/1
update_anno_types.erl: internal error in pass beam_ssa_opt:
exception error: no match of right hand side value false
  in function  beam_ssa_type:update_anno_types_1/4 (beam_ssa_type.erl, line 924)
  in call from beam_ssa_type:update_anno_types/2 (beam_ssa_type.erl, line 901)
  in call from beam_ssa_type:ranges_is/3 (beam_ssa_type.erl, line 850)
  in call from beam_ssa_type:ranges/3 (beam_ssa_type.erl, line 838)
  in call from beam_ssa_opt:ssa_opt_ranges/1 (beam_ssa_opt.erl, line 452)
  in call from compile:run_sub_passes_1/3 (compile.erl, line 422)
  in call from beam_ssa_opt:phase/4 (beam_ssa_opt.erl, line 114)
  in call from beam_ssa_opt:run_phases/3 (beam_ssa_opt.erl, line 77)