[dialyzer] crash when a bitstring segment size is 'undefined' (in an expression)
RobinMorisset opened this issue · 0 comments
RobinMorisset commented
Describe the bug
Running dialyzer on the following:
f() ->
<<0:(undefined)>>.
crashes it with
dialyzer: Analysis failed with error:
{{badmatch,"integer"},
[{cerl,bitstr_bitsize,1,[{file,"cerl.erl"},{line,2396}]},
{dialyzer_dataflow,handle_bitstr,3,
[{file,"dialyzer_dataflow.erl"},{line,779}]},
{dialyzer_dataflow,traverse_list,4,
[{file,"dialyzer_dataflow.erl"},{line,293}]},
{dialyzer_dataflow,traverse,3,[{file,"dialyzer_dataflow.erl"},{line,211}]},
{dialyzer_dataflow,do_clause,7,[{file,"dialyzer_dataflow.erl"},{line,1276}]},
{dialyzer_dataflow,handle_clauses,9,
[{file,"dialyzer_dataflow.erl"},{line,1199}]},
{dialyzer_dataflow,handle_case,3,
[{file,"dialyzer_dataflow.erl"},{line,932}]},
{dialyzer_dataflow,analyze_loop,1,
[{file,"dialyzer_dataflow.erl"},{line,186}]}]}
Affected versions
master
Additional context
The bug disappears if I replace undefined
by another atom.
This seems related to #7138 that was fixed in #7160.